82638f3da7cd187b2a1c7363e39477f1e360ad87
[platform/upstream/dbus.git] / ChangeLog
1 2007-05-25  Ralf Habacker  <ralf.habacker@freenet.de>
2
3         * dbus/dbus-sysdeps-win.c (_dbus_full_duplex_pipe): fixed assertation.
4
5 2007-05-24  Simon McVittie  <simon.mcvittie@collabora.co.uk>
6
7         * bus/config-parser.c (test_service_dir_matches): fixed ordering for unix.
8
9         * bus/config-parser.c (test_default_session_servicedirs): made allocation 
10         of _progs platform independent.
11
12 2007-05-23  Havoc Pennington  <hp@redhat.com>
13
14         * bus/Makefile.am (install-data-hook): create session.d
15
16         * bus/session.conf.in: add session.d for the session bus, so
17         security policy can be extended
18
19 2007-05-22 Ralf.Habacker <ralf.habacker@freenet.de>
20
21         * cmake/CMakeLists.txt: fixed creating of TEST_..._BINARY to make 
22         bus-test able to find the binaries.
23
24 2007-05-21 Simon McVittie  <simon.mcvittie@collabora.co.uk>
25
26         * acinclude.m4, configure.in: In recent autotools, ${datadir} is
27         defined in terms of ${datarootdir}, so EXPANDED_DATADIR needs to be
28         expanded recursively. Rather than fixing configure.in to do this, I
29         grabbed the AS_AC_EXPAND macro from autostars.sf.net, which seems to be
30         commonly used.
31
32 2007-05-21 Simon McVittie  <simon.mcvittie@collabora.co.uk>
33
34         * update-dbus-docs.sh: Assorted improvements:
35         - Default user if $FDUSER is not set is the ssh default
36           (set in ~/.ssh/config or based on the local username), not a
37           hard-coded "johnp"
38         - Temporary checkout directory is created securely (preventing symlink
39           attacks), if mktemp(1) is available
40         - Use make -C rather than cd && make && cd ..
41
42 2007-05-21 Simon McVittie  <simon.mcvittie@collabora.co.uk>
43
44         * HACKING: Point to correct mailing list
45
46 2007-05-21 Simon McVittie  <simon.mcvittie@collabora.co.uk>
47
48         * doc/dbus-specification.xml: explicitly specify that STRING cannot
49         contain embedded NULs.
50
51 2007-05-20 Ralf.Habacker  <ralf.habacker@freenet.de>
52
53         * dbus/dbus-internal.c: fix inline problem on win32.
54
55 2007-05-20 Ralf.Habacker  <ralf.habacker@freenet.de>
56
57         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir): not reaching 
58         domain controller isn't an error, converted error message to verbose 
59         message.
60
61 2007-05-19 Ralf.Habacker  <ralf.habacker@freenet.de>
62
63         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): disabled 
64         tests not running on wince.
65
66 2007-05-19 Ralf.Habacker  <ralf.habacker@freenet.de>
67
68         * dbus/dbus-internals.c (_dbus_verbose_init): win32 requires 'varname=' 
69         to unset a environment variable. 
70
71 2007-05-19 Ralf.Habacker  <ralf.habacker@freenet.de>
72
73         * dbus/dbus-sysdeps.c (_dbus_setenv): win32 requires 'varname=' 
74         to unset a environment variable. 
75
76 2007-05-19 Ralf.Habacker  <ralf.habacker@freenet.de>
77
78         * bus/policy.c (bus_policy_create_client_policy): 
79         win32 temporary fix until the userdb stuff is ported completly.
80
81 2007-05-19  Ralf.Habacker  <ralf.habacker@freenet.de>
82
83         * dbus/dbus-server.c (listen_funcs): 
84         _dbus_server_listen_platform_specific is empty on win32, 
85         limited to unix only.
86
87         * dbus/dbus-server.c (valid_addresses): limit unix 
88         only addresses to unix. 
89
90 2007-05-18  Havoc Pennington  <hp@redhat.com>
91
92         * doc/dbus-specification.xml: add a GetAll to the Properties
93         interface.
94
95 2007-05-17 Ralf.Habacker  <ralf.habacker@freenet.de>
96  
97         * bus\config-parser.c (test_default_session_servicedirs):
98         win32 fix.
99
100 2007-05-17 Ralf.Habacker  <ralf.habacker@freenet.de>
101  
102         * configure.in: define constant DBUS_UNIX.
103
104 2007-05-14  Ralf Habacker <ralf.habacker@freenet.de>
105
106         * dbus/dbus-sysdeps-win.c (_dbus_printf_string_upper_bound):
107         compile fix for MS Platform SDK 6 
108         patch from Michael Luschas <mluschas@gmail.com>
109
110 2007-05-10  John (J5) Palmieri <johnp@redhat.com>
111
112         * dbus-1.pc.in: add daemondir to pc file
113         patch from Brian Cameron <brian.cameron at sun.com>
114
115 2007-05-04  Simon McVittie <simon.mcvittie@collabora.co.uk>
116
117         * doc/dbus-specification.xml: mention the reserved o.fd.DBus.Local
118         interface and the corresponding /o/fd/DBus/Local object path;
119         describe them as reserved and forbid using them in a sent message,
120         mentioning that in the reference implementation this will cause the
121         connection to be dropped. Patch approved by Havoc.
122
123 2007-04-28  Ralf Habacker <ralf.habacker@freenet.de>
124
125         * cmake/: don't install test applications and service files,
126         moved CMAKE_DEBUG_POSTFIX to top level CMakeLists.txt
127
128 2007-04-27  Havoc Pennington  <hp@redhat.com>
129
130         * dbus/dbus-sysdeps-unix.c (_dbus_open_socket): fix #10781 from
131         Tobias Nygren, checking pointer to fd vs. 0 rather than checking
132         the fd itself
133
134 2007-04-26 Ralf Habacker  <ralf.habacker@freenet.de>
135
136         * cmake/: added debug postfixes to debug exe's for 
137         easier debugging.
138         * dbus\dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error): 
139         print error code in case no string message is available.
140
141 2007-04-06 Simon McVittie <simon.mcvittie@collabora.co.uk>
142
143         * dbus/dbus-message-util.c, dbus/dbus-message.c,
144         dbus/dbus-message.h: Add API to convert a DBusMessage to/from a
145         byte array. Patch from Dafydd Harries <dafydd.harries@collabora.co.uk>,
146         approved by Havoc Pennington.
147
148 2007-04-03  Timo Hoenig  <thoenig@suse.de>
149
150         * dbus/dbus-address.c (dbus_parse_address): Do not accept zero-
151           length address.
152         * dbus/dbus-address.c (_dbus_address_test): Add test for zero-
153           length address.
154
155 2007-03-25 Ralf.Habacker  <ralf.habacker@freenet.de>
156
157         * cmake/dbus/CMakeLists.txt: debug postfix also for mingw.
158
159 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
160
161         * cmake/modules/FindExpat.cmake: fix package detection on win32.
162
163         * README.win: update install instructions. 
164
165 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
166
167         * dbus/dbus-sysdeps.h (_dbus_split_paths_and_append):
168         new prototyp
169         (_DBUS_PATH_SEPARATOR): new macro. 
170
171         * dbus/dbus-sysdeps.c (_dbus_split_paths_and_append): merged 
172         from dbus/dbus-sysdeps-unix.c and dbus/dbus-sysdeps-win.c. 
173
174 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
175
176         * bus/config-parser.c, bus/policy.c,  
177         bus/policy.h, bus/dbus-daemon.1.in,
178         bus/session.conf.in: added eavesdrop support 
179         for replies - patch by olli.salli at collabora.co.uk
180         approved by Havoc Pennington. 
181
182 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
183
184         * dbus\dbus-sysdeps-win-thread.c: renamed to 
185         dbus-sysdeps-thread-win.c, it is a platform depending file 
186         similar to dbus-sysdeps-pthread.c.
187
188 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
189
190         * cmake\doc\CMakeLists.txt: added prelimary xml doc 
191         support, needs cmake Find script.
192
193 2007-03-14 Ralf.Habacker  <ralf.habacker@freenet.de>
194
195         * cmake: add doxygen support
196
197 2007-03-14  Ralf.Habacker  <ralf.habacker@freenet.de>
198
199         * cmake/config.h.cmake: WINCE fixes, defined DBUS_UNIX.
200
201 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
202
203         * dbus/dbus-sysdeps-util-win.c (dbus_become_daemon): 
204         win32 compile fix. 
205
206 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
207
208         * dbus-win.patch: removed obsolate patches. 
209
210 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
211
212         * dbus/dbus-sysdeps-win.c: added zero byte sending 
213         and receiving after connection start up
214
215 2007-03-11  Havoc Pennington  <hp@redhat.com>
216
217         * tools/dbus-launch.c (do_close_stderr): fix C89 problem and
218         formatting problem
219
220         * Mostly fix the DBusPipe mess.
221         - put line break after function return types
222         - put space before parens
223         - do not pass structs around by value
224         - don't use dbus_strerror after calling supposedly cross-platform
225         api
226         - don't name pipe variables "fd"
227         - abstract special fd numbers like -1 and 1
228
229 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
230
231         * dbus/dbus-sysdeps-win.h, dbus/dbus-sysdeps-win.c, 
232         dbus/dbus-sysdeps-util-win.c: renamed functions 
233         _dbus_xxx_file() to _dbus_file_xxx() to reflect 
234         struct name DBusFile. 
235
236 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
237
238         * dbus/dbus-sysdeps-util-unix.c (_dbus_become_daemon):
239         fix _dbus_pid_fd check. 
240
241 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
242
243         * tools/dbus-print-message.c (print_message):
244         added printing of the reply serial to method returns and 
245         errors, so you can actually figure out the message/reply 
246         pairs - patch by olli.salli at collabora.co.uk.
247
248 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
249
250         * dbus-win.patch: removed committed patches. 
251
252 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
253
254         * bus/bus.c, bus/bus.h, bus/main.c, bus/test.c,
255         dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-util-unix.c,
256         dbus/dbus-sysdeps-util-win.c, dbus/dbus-sysdeps-win.c,
257         dbus/dbus-sysdeps.h: renamed _dbus_xxx_pipe to _dbus_pipe_xxx,
258         completed _dbus_pipe support. 
259
260 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
261
262         * dbus/dbus-sysdeps.h (_dbus_listen_tcp_socket):
263         changed type or port to pointer, because the port is given back.
264
265         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
266         implemented returning tcp port. Skipping port parameter
267         and non integer port values in config <listen> statement
268         needs more effort.
269
270         * dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-win.c
271         (_dbus_listen_tcp_socket): return the real used tcp port.
272
273         * bus/dbus-daemon.1.in: added <listen> tcp examples
274
275 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
276
277         * cmake/config.h.cmake: win32 msvc bug fix
278
279 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
280
281         * cmake/config.h.cmake: fixed DBUS_WINxx defines,
282         using _WINCE does not work.
283
284 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
285
286         * dbus-win.patch: removed _dbus_write_pipe() patch, it is now 
287         committed.
288
289 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
290
291         * bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h:
292         rename pipe related write() function calls to _dbus_write_pipe().
293
294 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
295
296         * dbus-win.patch: added bus/config-loader-libexpat.c patch, 
297         uses DBUS_WIN for alls win32 related #ifdefs, 
298         some minor cleanups
299
300 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
301
302         * dbus-win.patch: updated patch for bus/dispatch.c.
303
304 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
305
306         * dbus-win.patch: dbus-connection.c (dbus_connection_get_unix_user,
307         dbus_connection_get_unix_process_id): Let return them valid user id's, 
308         otherwise bus-test fails. How to replace on win32 ?.
309         
310         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir):
311         fix memory leak.
312
313 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
314
315         * dbus/dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error):
316         use dbus friendly error name.
317         (fill_win_user_info_homedir): print user name in error case too.
318
319 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
320
321         * cmake/ConfigureChecks.cmake: fixed socketpair check
322
323 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
324
325         * bus/dispatch.c: disabled segfault test on win32 for now
326
327 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
328
329         * configure.in, cmake/ConfigureChecks.cmake: added check 
330         for setrlimit. 
331         * test/test-segfault.c: only include setrlimit stuff only 
332         when available.  
333
334 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
335
336         * test/test-segfault.c: unix compile fix.
337         * dbus-win.patch: removed obsolate patches.
338
339 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
340
341         * bus/activation.c: removed obsolate include header.
342         * test/test-segfault.c: win32 compile fix, rlimit 
343         isn't available on win32.
344         * dbus-win.patch: removed some more patches, they
345         are applied or obsolate 
346
347 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
348
349         * bus-win.patch: fixes unix listen problems, dbus-test 
350         now runs.
351
352 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
353
354         * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
355         cmake/CMakeLists.txt: win32 compile fix
356
357 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
358
359         * dbus-win.patch, README.win: added available win32 
360         patches from windbus project (http://sf.net/projects/windbus)
361
362 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
363
364         * bus/activation.c: (bus_activation_activate_service):
365         fixed call to _dbus_spawn_async_with_babysitter().
366
367 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
368
369         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
370         added environment pointer as function parameter, used on win32.
371
372         * test/spawn-test.c: fixed call to above mentioned function.
373
374 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
375
376         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
377         added configure check for unistd.h.
378
379 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
380
381         * test/Makefile.am: fixed test data copy problem in 
382         out of source build, when sources came from svn or cvs. 
383
384 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
385
386         * dbus/*-win.*,bus/*-win.*: added win32 platform related
387         files. These files are only added to the cmake build system.  
388         The missing dbus-win.patch file will be added later. 
389
390 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
391
392         * cmake: new directory, contains cmake build support.
393         See http://www.cmake.org for more informations.
394         Currently only unix will be buildable because some 
395         win32 required files are still missing. 
396
397 2007-03-03  Thiago Macieira  <thiago@kde.org>
398
399         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
400         output and add it to the DBusError message we return.
401
402         * tools/dbus-launch.1:
403         * tools/dbus-launch.c: Add option --close-stderr to, well,
404         close stderr before starting dbus-daemon.
405
406 2007-01-31  Havoc Pennington  <hp@redhat.com>
407
408         * bus/dbus-daemon.1.in: write a section in the man page on running
409         a test daemon for debugging purposes
410
411 2007-01-26  Havoc Pennington  <hp@redhat.com>
412
413         * bus/session.conf.in: override all the default limits with much
414         higher limits on the session bus, there is no reason the session
415         bus should have low limits
416
417         * bus/config-parser.c (bus_config_parser_new): increase default
418         limits so they are less likely to be hit; in particular the max
419         replies per connection was way too low
420
421 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
422
423         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
424         a pointer to the tutorial maintained as part of dbus-python
425
426 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
427
428         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
429         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
430         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
431
432 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
433
434         * tools/dbus-monitor.c: gettimeofday() is not available 
435         on windows so we have to provide our own. It's taken from 
436         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
437
438 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
439
440         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
441         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
442         is in dbus-sysdeps-win.c (not in this patch).
443
444         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
445         with InterlockedInc/Decrement. 
446         - Patches from Christian Ehrlicher
447         
448 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
449
450         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
451
452 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
453
454         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
455         fix mispaced const statement. - Patch from Peter Kümmel
456
457 2006-12-19  Ray Strode  <rstrode@redhat.com>
458
459         * bus/bus.c (process_config_every_time):
460         don't overwrite existing bus context activation object
461         until after we've checked that the new activation is
462         valid.
463
464         * bus/main.c 
465         (signal_handler), (handle_reload_watch):
466         don't call exit() on failure, instead make do and keep
467         going.
468         (close_reload_pipe): new function to turn off
469         hangup-causes-config-reload behavior if an unexpected
470         error occurs
471
472 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
473
474         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
475         correctness fix. - Patch from Christian Ehrlicher
476
477 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
478
479         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
480         we should also use it. - Patch from Christian Ehrlicher
481
482 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
483   
484         * dbus-sysdeps-util.c: added win32 related tests
485
486 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
487
488         * dbus/dbus-string.c (_dbus_string_pop_line),
489         bus/desktop-file.c (parse_section_start,
490         parse_comment_or_blank,parse_key_value,): uses
491         _dbus_string_find_eol() to support platform independent eol style.
492
493 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
494
495         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
496         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
497               _dbus_string_find_eol().
498         Approved by: Havoc Pennington.
499
500 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
501
502         * configure.in: Added switch to disable user_database caching.
503
504         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
505         be able disable user_dabase caching.
506
507 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
508
509         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
510         struct. It is unnecessary we have a global one already. Also remove 
511         bus_context_get_user_database function, it is no longer needed.
512         Flush the global database on reload.
513
514         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
515         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
516
517         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
518         Add _dbus_user_database_flush_system. 
519         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
520         Small unrelated change in _dbus_is_a_number: change 
521         _dbus_string_parse_int to _dbus_string_parse_uint. 
522
523         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
524         _dbus_groups_from_uid.
525
526         * bus/policy.c, bus/policy.h: Change call to 
527         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
528         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
529         needs it.
530
531 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
532
533         * bus/signal.c: Fix match_rule_equal errata
534         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
535         <kimmo.hamalainen@nokia.com>)
536
537 2006-11-19  Thiago Macieira  <thiago@kde.org>
538
539         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
540         _dbus_pthread_condvar_wait,
541         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
542         pthread_self() after coming back from a conditional variable
543         wait as well as in one codepath where it was forgotten.
544         Approved by: Havoc Pennington.
545
546 2006-11-17  Havoc Pennington  <hp@redhat.com>
547
548         * update-dbus-docs.sh: allow setting fd.org username via env
549         variable. Make it run autogen with --enable-xml-docs=yes
550         --enable-doxygen-docs=yes so configure will fail if the required
551         tools are missing.
552
553 2006-11-17  Havoc Pennington  <hp@redhat.com>
554
555         * doc/dbus-faq.xml: minor FAQ tweaks
556
557 2006-11-14  Havoc Pennington  <hp@redhat.com>
558         
559         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
560         dbus_get_local_machine_id() to its own file, no substantive
561         changes. There are a couple other things we might want to add that
562         are "misc" so moving out of dbus-connection.[hc] which is big
563         enough already.
564         
565 2006-11-14  Havoc Pennington  <hp@redhat.com>
566
567         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
568         UUID had the timestamp last, but the implementation had it first;
569         move it to last since I think it's a tiny bit nicer (easier to
570         compare at a glance, faster to sort, less code), and will not
571         cause any practical compatibility problems. Also, always convert
572         the timestamp to big endian.
573
574         * doc/dbus-specification.xml: Clean up the docs on the UUID.
575
576         * tools/dbus-uuidgen.1: more prominently say it is not suitable
577         as a replacement for regular uuidgen/RFC4122.
578
579 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
580
581         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
582         the correct value so we don't assert when initalizing recursive threads
583
584         * test/name-test/test-thread-init.c: call dbus_threads_init_default
585         instead of _dbus_threads_init_debug since it is more of a real world
586         test
587
588 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
589
590         * Released 1.0.0
591
592 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
593
594         * AUTHORS: added Peter and Tor of windows porting fame
595
596 2006-11-08  Havoc Pennington  <hp@redhat.com>
597
598         * doc/dbus-specification.xml: add a note about protocol stability
599
600         * doc/TODO: Remove "important for 1.0" section, replace with
601         "important for 1.2" section
602         
603 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
604
605         * README: remove some of the out of date flags
606
607         * doc/TODO: Remove todo items which are done
608
609 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
610
611         * tools/dbus-monitor.c: Handle sigint so we flush stdout
612         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
613
614 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
615
616         * tools/dbus-monitor.1: update the manpage for dbus-monitor
617         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
618
619 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
620
621         * AUTHORS: Update with all people listed in the ChangeLog
622
623 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
624
625         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
626         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
627
628 2006-11-07  Havoc Pennington  <hp@redhat.com>
629
630         * HACKING: Update release instructions to include stuff about
631         stable releases, branching, etc. May not be totally correct,
632         please fix if needed, but keep instructions up-to-date so we do
633         each stable release consistently in the future.
634
635 2006-11-07  Havoc Pennington  <hp@redhat.com>
636
637         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
638         documentation updates. Bump faq/spec versions (not to 1.0; I don't
639         think the spec will be "finished"/1.0 when we ship the 1.0 library).
640
641 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
642
643         * bus/bus.c: Missed patch - pass in the context to the directory watch
644
645 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
646
647         * Released D-Bus 1.0 RC 3(0.95)
648
649 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
650
651         * bus/activation.c (bus_activation_new): don't fail if we can not read
652         the directory as it may not exist
653
654 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
655
656         * bus/config-parser.c (service_dirs_find_dir): use 
657         _dbus_list_get_next_link so we don't get stuck in an infinite loop
658         (start_busconfig_child): move processing of standard_session_servicedirs
659         tags here because they have no content
660         (bus_config_parser_content): check we don't have content in 
661         standard_session_servicedirs tag
662
663 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
664
665         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
666         Packagers need to own this directory
667
668 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
669
670         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
671         <standard_session_servicedirs> tag with a <sevicedir> tag that
672         points to the test service directory
673
674 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
675
676         * configure.in: Add a check for DIR *dirp->dd_fd
677
678         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
679         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
680         of both Solaris and Irix
681
682 2006-11-01  Havoc Pennington  <hp@redhat.com>
683
684         * bus/dbus-daemon.1.in: document standard_session_servicedirs
685
686 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
687
688         * configure.in: expose DBUS_DATADIR
689         
690         * bus/config-parser.c: add the standard_session_servicedirs element
691         to the parser
692         (bus_config_parser_content): process the standard_session_servicedirs
693         element by getting the standard directories from sysdeps and merging
694         them into the service directory list
695         (test_default_session_servicedirs): make sure we get what we expect
696
697         * bus/session.conf.in: replace the servicedir tag with the 
698         standard_session_servicedirs tag
699
700         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
701         dbus-sysdeps.h to avoid circular header dependencies
702
703         * dbus/dbus-sysdeps.h: add the typedef of DBusList
704
705         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
706         which takes a string of directories delimited by colons, parses them 
707         out, appends a suffix and puts them in a list ignoring empty elements
708         (_dbus_get_standard_session_servicedirs): returns the standard 
709         directories for a session bus to look for service activation files
710         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
711         DBUS_DATADIR directories
712
713         * test/data/valid-config-files/many-rules.conf: add the 
714         standard_session_servicedirs tag to the valid config file tests
715
716 2006-10-30  Havoc Pennington  <hp@redhat.com>
717
718         * tools/dbus-launch.1, doc/TODO: capture intent to change the
719         command line options of dbus-launch a bit post 1.0
720
721 2006-10-27  Havoc Pennington  <hp@redhat.com>
722         
723         * dbus/dbus-connection.c (dbus_connection_open_private): document
724         how to choose shared vs. private connections
725
726 2006-10-27  Havoc Pennington  <hp@redhat.com>
727
728         * dbus/dbus-test.c: enclose more of the file in the
729         DBUS_BUILD_TESTS check.
730
731         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
732         DBUS_DISABLE_ASSERT case.
733
734         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
735         that it only works on the server side
736
737         * dbus/dbus-bus.c: add a global lock covering the BusData we
738         attach to each connection
739         (internal_bus_get): lock our access to the BusData
740         (dbus_bus_register): lock the entire registration process
741         with _DBUS_LOCK(bus_datas). If we get the lock and 
742         registration is already complete, silently return (vs. previous
743         behavior of aborting).
744         (dbus_bus_set_unique_name): lock the BusData
745         (dbus_bus_get_unique_name): lock the BusData
746
747 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
748
749         * bus/config-parser.c (service_dirs_find_dir, 
750         service_dirs_append_unique_or_free, 
751         service_dirs_append_link_unique_or_free): New static methods
752         for only appending unique service directory names into
753         the service directory list
754         (merge_included, bus_config_parser_content): Only add unique
755         service directory names into the list
756
757 2006-10-27  Havoc Pennington  <hp@redhat.com>
758
759         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
760         variables volatile, suggested by Thiago. Document struct fields.
761         (PTHREAD_CHECK): remove pthread error checking if assertions are
762         disabled, should reduce the no-assertions case to the bare
763         minimum code.
764
765 2006-10-26  Havoc Pennington  <hp@redhat.com>
766         
767         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
768         to be recursive
769         (_dbus_pthread_mutex_unlock): make it recursive
770         (_dbus_pthread_condvar_wait): save/restore the recursion count
771         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
772
773 2006-10-26  Havoc Pennington  <hp@redhat.com>
774
775         * doc/dbus-specification.xml: clarify the UUID text slightly
776
777         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
778         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
779         in preparation for being able to extend them for e.g. recursive
780         mutexes.
781
782 2006-10-26  Havoc Pennington  <hp@redhat.com>
783
784         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
785         condition variables relate to recursive mutexes.
786         
787         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
788         dbus/dbus-threads.c: Split the platforms-specific thread 
789         implementations into their own files.
790         
791         * dbus/dbus-sysdeps-pthread.c
792         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
793         was backward. Not that anything uses it.
794
795 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
796
797         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
798         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
799         needs to be cleaned up more.
800
801         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
802         up the CREDS issue.
803
804 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
805
806         * configure.in, dbus-1.pc.in: Check to see if thread methods 
807         are in glibc or libpthread and add -lpthread to the link stage 
808         if it is the latter
809
810 2006-10-26  Thiago Macieira  <thiago@kde.org>
811
812         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
813         bug 8780: the connection lock is only required while recording
814         the shared connection, so protect only that code
815         section. Don't require connection_lookup_shared to return a
816         locked connection.
817
818 2006-10-26  Thiago Macieira  <thiago@kde.org>
819
820         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
821         check if get_machine_uuid() returns NULL before proceeding any
822         further: we can't init the X atoms or create a session file
823         name if there is no machine ID.
824         This solves a crash reported by some users if
825         --exit-with-session was used without --autolaunch=<machine-id>
826
827 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
828
829         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
830         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
831
832         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
833         before we run dbus-launch
834
835         * configure.in: define TEST_BUS_BINARY to be the full path to 
836         dbus-daemon in the build root 
837
838 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
839
840         * dbus/Makefile.am:
841         * tools/Makefile.am:
842         * toos/dbus-uuidgen.1:
843                 Move the machine-id file to /var/lib/dbus 
844
845 2006-10-24  David Zeuthen  <davidz@redhat.com>
846
847         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
848         _dbus_assert (thread_init_generation != _dbus_current_generation)
849         not _dbus_assert (thread_init_generation == _dbus_current_generation)
850
851 2006-10-24  Thiago Macieira  <thiago@kde.org>
852
853         * dbus/dbus-sysdeps.h:
854         * dbus/dbus-sysdeps-unix.c: Add function
855         _dbus_make_file_world_readable that chmods a file to 0644.
856
857         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
858         Avoid writing to the static "argv" array, thereby avoiding a
859         COW on the child process.
860
861         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
862         call _dbus_make_file_world_readable on the created file.
863
864 2006-10-23  David Zeuthen  <davidz@redhat.com>
865
866         * dbus/dbus-memory.c: Use atomic variable to protect
867         n_blocks_outstanding otherwise OOM will be reported using SMP on
868         some arches
869         
870         * bus/dispatch.c: Add missing end of line characters
871
872         * bus/desktop-file.c (parse_section_start, parse_key_value) 
873         (bus_desktop_file_load): Propertly handle OOM
874
875         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
876         thread_init_generation equals _dbus_current_generation, not 0
877
878 2006-10-22  Havoc Pennington  <hp@redhat.com>
879
880         * dbus/dbus-connection-internal.h: move prototype of
881         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
882         it isn't in a public header and doesn't end up in the DBusBus
883         group in Doxygen
884
885 2006-10-21  Havoc Pennington  <hp@redhat.com>
886
887         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
888         the tarball if packagers want to run it
889
890         * cleanup-man-pages.sh: Add a script which munges all the internal
891         API man pages out of the Doxygen output. This reduces the size of
892         the installed man pages from 7 to 2 megs, and avoids
893         namespace-polluting pages. Right now (like Doxygen) this script
894         isn't in the build, it's something packagers can do manually.
895
896 2006-10-21  Havoc Pennington  <hp@redhat.com>
897
898         * dbus/dbus-connection.h: don't include the watch/timeout
899         functions in connection section
900
901 2006-10-21  Havoc Pennington  <hp@redhat.com>
902
903         * Documentation! Whee! Doxygen now 100% silent. If you make it
904         angry again, you will be punished.
905         
906 2006-10-21  Havoc Pennington  <hp@redhat.com>
907
908         * More documentation - all public API now documented according to
909         Doxygen
910
911 2006-10-21  Havoc Pennington  <hp@redhat.com>
912
913         * Document a bunch of undocumented stuff
914         
915 2006-10-21  Havoc Pennington  <hp@redhat.com>
916
917         * Clean up Doxygen group markers for public API so Doxygen finds
918         everything (not comprehensively fixed for private API).
919         Means all remaining Doxygen warnings are just about missing docs
920         and thus pretty simple to resolve.
921         
922 2006-10-21  Havoc Pennington  <hp@redhat.com>
923         
924         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
925
926         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
927         as DBUS_GNUC_DEPRECATED
928
929 2006-10-21  Havoc Pennington  <hp@redhat.com>
930
931         * Move all private API into the private Doxygen group sections of
932         the files, so they don't show up in the public API docs
933         
934 2006-10-21  Havoc Pennington  <hp@redhat.com>
935
936         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
937         dbus_message_iter_get_array_len().
938
939         * throughout: documentation improvements.
940
941 2006-10-20  Havoc Pennington  <hp@redhat.com>
942
943         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
944         matter, and the message-loader-breaker thing since nobody is going
945         to do it.  Add an item to 1.0 about supporting recursive locks
946         in dbus_threads_init_default() though, since it should be easy.
947
948         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
949         Fix this in the !dispatch case to avoid busy-looping after
950         disconnection
951
952         * More misc docs improvements
953
954 2006-10-19  Havoc Pennington  <hp@redhat.com>
955
956         * more Doxygen-related fixes (lots of moving things from the
957         public to internal section in dbus-connection.c)
958
959 2006-10-19  Havoc Pennington  <hp@redhat.com>
960
961         * Fix a pile of Doxygen warnings and missing docs
962
963 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
964
965         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
966         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
967         instead of a void *.  kqueue uses this to get the context's loop
968         while the other modules ignore the parameter.  This allows us to
969         avoid platform conditionals
970
971         * bus/bus.c (process_config_postinit): Pass in the context to the 
972         watch
973
974 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
975
976         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
977         when starting the system bus
978
979 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
980
981         * configure.in: More fixups for cross compile (Patch from 
982         Marco Pracucci <development at pracucci dot com>)
983
984 2006-10-17  Havoc Pennington  <hp@redhat.com>
985
986         * tools/dbus-send.c (main): don't close shared connection, fix
987         from Timo Hoenig
988
989 2006-10-17  Havoc Pennington  <hp@redhat.com>
990
991         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
992
993         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
994         since realistically it doesn't look like we'll be changing it
995         anymore.
996
997 2006-10-17  Havoc Pennington  <hp@redhat.com>
998
999         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
1000         be used for return_if_fail type warnings; prefixes the pid, and
1001         fatal by default.
1002
1003 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
1004
1005         * configure.in: Released 1.0 RC 2(0.94)
1006         Add check for -fPIC and enable it if available
1007
1008 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
1009
1010         * doc/TODO: Remove the check TODO item
1011
1012 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
1013
1014         * dbus-transport-socket.c (exchange_credentials):
1015         Print out more detailed errors if reading or sending
1016         credentials fail (Patch from Julio M. Merino Vidal 
1017         <jmmv at NetBSD dot org>)
1018
1019 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
1020
1021         * configure.in: when checking for posix getpwnam_r assume true
1022         for cross compiles
1023
1024 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
1025
1026         * configure.in: Check for gethostbyname first before we check for it
1027         in libnsl.  On gnu systems it is implemeneted 
1028
1029 2006-10-13  Havoc Pennington  <hp@redhat.com>
1030
1031         * dbus/dbus-connection.c
1032         (dbus_connection_send_with_reply_and_block): fix to handle closed
1033         connections, from Tambet Ingo bug #8631
1034
1035 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
1036
1037         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
1038
1039 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
1040
1041         * test/name-test/Makefile.am: don't link against both libdbus and
1042         libdbus-convenience
1043
1044 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
1045
1046         * configure.in: check for dirfd even if it is a macro
1047         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
1048
1049 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
1050
1051         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
1052         avoid using dirfd on systems that don't have dirfd 
1053         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
1054
1055 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
1056
1057         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
1058         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
1059
1060         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
1061         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
1062         macro because _dbus_abort calls it
1063
1064         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
1065         works
1066
1067 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
1068
1069         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
1070         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
1071
1072 2006-10-02  Thiago Macieira  <thiago@kde.org>
1073
1074         * tools/dbus-launch.c (main): make it complain and abort
1075         execution in case an unknown option is given. Also, process
1076         the '--' argument as the end of arguments.
1077
1078 2006-10-01  Havoc Pennington  <hp@redhat.com>
1079
1080         * tools/dbus-launch.c (print_variables): if no syntax is given,
1081         don't print something that's sort-of-half-sh-syntax, just print
1082         a plain key-value pairs thing.
1083
1084         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
1085         the local machine representation (but still have the hostname in
1086         the display). Remove the hostname from the display if it is
1087         localhost. Change session files to be named
1088         ~/.dbus/session-bus/machine-display. Change X atoms to be
1089         underscore-prefixed so nobody whines about ICCCM compliance.
1090         Otherwise name them the same as the env variables.
1091         Change session file format to include key-value pairs and an
1092         explanatory comment. Keys are the same as the env variables.
1093         (set_address_in_x11): X property format can't depend on
1094         sizeof(pid_t) on a particular machine, fix to always be 32 bits
1095
1096         * tools/dbus-launch.c: make --autolaunch take a machine id
1097         argument. If --autolaunch is used with a program to run, complain
1098         for now (but add a FIXME). Also, don't look for existing bus if 
1099         there's a program to run (but add a FIXME).
1100
1101         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
1102         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
1103         just to get this, and avoids duplicating uuid-reading code).
1104
1105         * tools/dbus-launch.1: clarify various things
1106         
1107 2006-10-01  Havoc Pennington  <hp@redhat.com>
1108
1109         * test/test-service.c (path_message_func): remove broken extra
1110         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
1111
1112         * test/test-shell-service.c (path_message_func): same fix
1113         
1114         * dbus/dbus-connection.c
1115         (_dbus_connection_get_dispatch_status_unlocked): break up the
1116         function a little for clarity and fix the notification of
1117         dbus-bus.c to not require dispatch to be complete
1118
1119         * dbus/dbus-connection.c (dbus_connection_unref): improve the
1120         warning when you try to finalize an open connection.
1121         
1122 2006-10-01  Havoc Pennington  <hp@redhat.com>
1123
1124         * dbus/dbus-bus.c
1125         (internal_bus_get): only weak ref the connection; this means 
1126         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
1127         called safely in any context
1128         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
1129         unref
1130
1131         * dbus/dbus-connection.c
1132         (_dbus_connection_get_dispatch_status_unlocked): move
1133         _dbus_bus_notify_shared_connection_disconnected_unlocked here
1134         when queuing Disconnected instead of when the Disconnected message
1135         arrives, so dbus_bus_get() won't return closed connections.
1136         
1137 2006-10-01  Havoc Pennington  <hp@redhat.com>
1138
1139         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
1140         Add a hack to make DBusNewConnectionFunction work right.
1141
1142         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
1143         the hack here. Also, fix the todo about refcount leak.
1144         
1145         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1146         and use the hack here
1147         
1148         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
1149         "shareable" flag; this was completely broken, since it meant 
1150         dbus_connection_open() returned a connection of unknown
1151         shared-ness. Now, we always hold a ref on anything opened 
1152         as shareable.
1153
1154         Move the call to notify dbus-bus.c into
1155         connection_forget_shared_unlocked, so libdbus consistently forgets
1156         all its knowledge of a connection at once. This exposed numerous
1157         places where things were totally broken if we dropped a ref inside
1158         get_dispatch_status_unlocked where
1159         connection_forget_shared_unlocked was previously, so move
1160         connection_forget_shared_unlocked into
1161         _dbus_connection_update_dispatch_status_and_unlock. Also move the
1162         exit_on_disconnect here.
1163
1164         (shared_connections_shutdown): this assumed weak refs to the
1165         shared connections; since we have strong refs now, the assertion 
1166         was failing and stuff was left in the hash. Fix it to close
1167         still-open shared connections.
1168         
1169         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
1170         debug pipe connections
1171         
1172         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
1173         dbus-bus.c if the closed connection is in fact shared
1174         (_dbus_connection_close_possibly_shared): rename from 
1175         _dbus_connection_close_internal
1176         (dbus_connection_close, dbus_connection_open,
1177         dbus_connection_open_private): Improve docs to explain the deal
1178         with when you should close or unref or both
1179
1180         * dbus/dbus-bus.c
1181         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
1182         from _dbus_bus_check_connection_and_unref_unlocked and modify to
1183         loop over all connections
1184
1185         * test/test-utils.c (test_connection_shutdown): don't try to close
1186         shared connections.
1187
1188         * test/name-test/test-threads-init.c (main): fix warnings in here
1189
1190         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
1191         env variable to cause blocking waiting for gdb; drop
1192         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
1193         unconditionally.
1194
1195         * configure.in: add -export-dynamic to libtool flags if assertions enabled
1196         so _dbus_print_backtrace works.
1197
1198         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
1199         instead of _dbus_verbose to print the backtrace, and diagnose lack 
1200         of -rdynamic/-export-dynamic
1201         
1202 2006-09-30  Havoc Pennington  <hp@redhat.com>
1203
1204         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
1205         (internal_bus_get): fix screwy code formatting. whoever committed
1206         that was not paying attention!
1207
1208 2006-09-30  Havoc Pennington  <hp@redhat.com>
1209
1210         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
1211         reflect addition of interfaces.
1212
1213         * doc/dbus-specification.xml: describe a new
1214         org.freedesktop.DBus.Peer.GetMachineId method
1215
1216         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
1217         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
1218         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
1219         at end of skip_white
1220         (_dbus_string_chop_white): new function
1221
1222         * bus/connection.c (bus_connections_setup_connection): call
1223         dbus_connection_set_route_peer_messages.
1224
1225         * dbus/dbus-connection.c
1226         (_dbus_connection_peer_filter_unlocked_no_update): modify to
1227         support a GetMachineId method.
1228
1229         Also, support a new flag to let the bus pass peer methods through
1230         to apps on the bus, which can be set with
1231         dbus_connection_set_route_peer_messages.
1232
1233         Finally, handle and return an error for anything unknown on the
1234         Peer interface, which will allow us to extend the Peer interface
1235         in the future without fear that we're now intercepting something
1236         apps were wanting to see.
1237         
1238         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
1239         dbus/dbus-uuidgen.c
1240
1241         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
1242         binary here, since most of the code is already in libdbus
1243
1244         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
1245         uuid from the system config file
1246
1247         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
1248         (_dbus_read_uuid_file_without_creating) 
1249         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
1250         uuid-related functions, partly factored out from dbus-server.c
1251
1252         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
1253         DBUS_ERROR_FILE_EXISTS instead of EEXIST
1254
1255         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
1256
1257         * tools/dbus-cleanup-sockets.1: explain what the point of this
1258         thing is a bit more
1259
1260         * autogen.sh (run_configure): add --config-cache to default
1261         configure args
1262
1263         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
1264         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
1265
1266         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
1267         don't try to save address, fixes crash in make check
1268         
1269 2006-09-30  Thiago Macieira  <thiago@kde.org>
1270
1271         * configure.in: add DBUS_BINDIR as a #define to C source code.
1272
1273         * tools/dbus-launch.c
1274         * tools/dbus-launch.h
1275         * tools/dbus-launch-x11.c:
1276         * tools/dbus-launch.1: Add the --autolaunch option to
1277         dbus-launch, which makes it scan for an existing session
1278         started with --autolaunch. With that option, it also creates
1279         an X11 window and saves the bus address and PID to it.
1280
1281         * dbus/dbus-sysdeps.h:
1282         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
1283         a function that runs "dbus-launch --autolaunch" to retrieve
1284         the running D-Bus session address (or start one if none was running)
1285
1286         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
1287         address protocol, which tries to get the running session from
1288         dbus-launch.
1289
1290         * dbus/dbus-bus.c:
1291         * dbus/dbus-internals.h: Make "autolaunch:" be the default
1292         D-Bus session bus address.
1293
1294         * dbus/dbus-connection.c: Fix horrible typo in error message.
1295
1296 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
1297
1298         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
1299
1300 2006-09-17  Havoc Pennington  <hp@redhat.com>
1301
1302         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1303         fix so that if unix_user_function is set on windows, we still
1304         do the default check that the auth identity matches the bus identity
1305
1306 2006-09-16  Havoc Pennington  <hp@redhat.com>
1307
1308         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
1309         to _dbus_transport_open_platform_specific,
1310         _dbus_transport_open_socket,
1311         and _dbus_transport_open_debug_pipe
1312
1313         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
1314
1315 2006-09-16  Havoc Pennington  <hp@redhat.com>
1316
1317         Attempt auditing public API to remove all cases where a Unix
1318         function returns weird emulated goo to Windows. This probably 
1319         breaks the bus daemon on Windows, to fix it again we may 
1320         need to stop processing unix-specific config options on Windows,
1321         and may need to add Windows-specific public API or config options.
1322         
1323         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
1324         to reflect added interfaces; should not break soname.
1325         
1326         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
1327         not invoke unix user function on Windows. Kind of a hacky fix, but 
1328         we don't want a "unix uid" leaking out on Windows.
1329
1330         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
1331         to get the socket fd on Windows or UNIX
1332         (dbus_connection_get_unix_fd): make this always fail on Windows
1333
1334 2006-09-16  Havoc Pennington  <hp@redhat.com>
1335
1336         * dbus/dbus-server.c (dbus_server_listen): change how this works
1337         to be able to delegate to a set of handlers that can succeed,
1338         fail, or choose not to handle. Allows us to have 
1339         dbus_server_listen_platform_specific.
1340
1341         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
1342         factor out the tcp socket stuff to be used on windows, leaving
1343         unix domain socket only in dbus-socket-unix.c
1344
1345         * dbus/dbus-transport-socket.c
1346         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
1347         stuff to be used on windows, leaving unix domain socket only 
1348         in dbus-transport-unix.c
1349
1350         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
1351         temporary hack to be sure this fails on windows
1352         (dbus_connection_get_unix_process_id): ditto
1353
1354 2006-09-16  Havoc Pennington  <hp@redhat.com>
1355
1356         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1357         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1358         _dbus_open_socket so the domain/type/protocol from system headers
1359         are not required. This is kind of pointless though unless we move
1360         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1361         sysdeps-unix.c, which would mean adding a wrapper around
1362         bind/listen/etc.
1363         Also, add DBusError to the socket-opening functions so they 
1364         don't require use of errno.
1365
1366 2006-09-16  Havoc Pennington  <hp@redhat.com>
1367
1368         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1369         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1370
1371         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1372         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1373         functions specifically for sockets only, and move generic 
1374         read/write/open/close into unix-specific code.
1375
1376 2006-09-14  Havoc Pennington  <hp@redhat.com>
1377
1378         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1379         complaint about accessing revents when poll returns 0, from Julian Seward.
1380
1381 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1382
1383         * Released 1.0 RC 1 (0.93) 
1384
1385 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1386
1387         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1388         use _dbus_close instead of close
1389
1390 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1391
1392         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1393         credentials.  Fixes "external" authentication under e.g. NetBSD
1394         which does not support any other socket credentials mechanism.
1395         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1396
1397 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1398
1399         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1400         dbus_threads_init and be used by the dbus mutex functions to
1401         avoid deadlocks.
1402
1403         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1404
1405 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1406
1407         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1408         use threadsafe readdir_r instead of readdir
1409
1410 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1411
1412         * dbus-threads.c (dbus_threads_init_default): New method for
1413         initializing the internal thread implementation (Patch from
1414         Alexander Larsson <alexl at redhat dot com>)
1415
1416 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1417
1418         * remove a bunch of todo items from the 1.0 list
1419
1420 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1421
1422         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1423         key not found
1424
1425 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1426
1427         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1428         complex debugging code
1429
1430         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1431         between the test suite ifdefs
1432         (_dbus_verbose_bytes): return if verbosity is not enabled 
1433
1434 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1435
1436         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1437         remove DBusMark
1438
1439 2006-09-10  Havoc Pennington  <hp@redhat.com>
1440
1441        patch mostly by Peter Kümmel, bug #8211
1442         
1443         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1444         unix-specific stuff in dbus-sysdeps.c
1445
1446         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1447         and move unix-specific stuff to dbus-sysdeps-unix.c
1448
1449         * configure.in: check HAVE_ERRNO_H
1450         
1451 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1452
1453         * bus/test-main.c (main): Initialize threading during tests
1454
1455         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1456         Unlock connection on error
1457         (generate_local_error_message): static method for generating
1458         an error message when we don't have a message to reply to
1459         (_dbus_connection_block_pending_call): Send a disconnect error
1460         instead of just a timeout (NULL) when the bus gets disconnected
1461         while blocking for a reply.
1462         
1463 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1464
1465         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1466         filters (Patch from Kimmo Hämäläinen 
1467         <kimmo dot hamalainen at nokia dot com>)
1468
1469 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1470
1471         * dbus/dbus-connection-internal.h: Add prototype for 
1472         _dbus_connection_test_get_locks to remove warning
1473
1474 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1475
1476         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1477         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1478         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1479
1480 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1481
1482         * Clean up close calls to use _dbus_close (Patch from 
1483         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1484
1485 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1486
1487         * doc/TODO:
1488         - Remove pending call locking todo item
1489         - dbus_connection_open now holds hard ref.  Remove todo item
1490         - do proper locking on _dbus_bus_check_connection_and_unref
1491           and handle DBUS_BUS_STARTER. Remove todo item
1492         - Warn on closing of a shared connection.  Remove todo item
1493
1494         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1495         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1496         so we don't get the warning when closing shared connections
1497
1498         * test/test-service.c, test/test-shell-service.c: Applications
1499         don't close shared connections themselves so we unref instead of
1500         close
1501
1502         * test/test-utils.c (test_connection_shutdown): Close the connection
1503
1504         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1505         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1506         method on a locked connection.  
1507         Make sure we call _dbus_connection_unref_unlocked instead of 
1508         dbus_connection_unref also.
1509         Handle DBUS_BUS_STARTER correctly
1510
1511         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1512         Mark as shared and hard ref the connection
1513         (connection_forget_shared_unlocked): Remove the hard ref from the 
1514         connection
1515         (_dbus_connection_close_internal_and_unlock):  New internal function
1516         which takes a locked connection and unlocks it after closing it
1517         (_dbus_connection_close_internal): New internal function which acts
1518         like the origonal dbus_connection_close method by grabbing a connection
1519         lock and calling _dbus_connection_close_internal_and_unlock
1520         (dbus_connection_close): Public close method, warns when the app
1521         trys to close a shared connection
1522
1523 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1524
1525         * bus/driver.c:
1526         (bus_driver_generate_introspect_string): New method for populating
1527         a DBusString with the introspect data
1528         (bus_driver_handle_introspect): Move introspect generation code to 
1529         bus_driver_generate_introspect_string
1530
1531         * bus/main.c:
1532         (introspect): New function which prints out the intropect data and
1533         exits
1534         (main): Add a --introspect switch
1535
1536 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1537
1538         * doc/TODO: Removed dtd publishing item.  
1539         It seems the dtd has already been added at
1540         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1541
1542 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1543
1544         * doc/TODO, various source files: Audited todo's and FIXME's and
1545         prepended the ones we should be looking at with 1.0.  Those
1546         prepended with 1.0? need clerification or might not be needed
1547         for 1.0
1548
1549 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1550
1551         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1552         NULL in the public API (Patch from Kimmo Hämäläinen 
1553         <kimmo dot hamalainen at nokia dot com>)
1554
1555 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1556
1557         * configure.in: Fix for OS-X compile time endian issues (patch from
1558         Benjamin Reed <ranger at befunk dot com>)
1559
1560 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1561
1562         * configure.in: Check for no-common compiler flag (OS-X fix from
1563         Benjamin Reed <ranger at befunk dot com>)
1564
1565 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1566
1567         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1568         <fcrozat at mandriva dot com>)
1569
1570 2006-08-29  Havoc Pennington  <hp@redhat.com>
1571
1572         * test/test-service.c (path_message_func): fix lack of return value
1573
1574         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1575         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1576         any more sense than on anything else in this file.
1577         (_dbus_get_tmpdir): add const to return value, and keep the
1578         results of the various getenv around in a static variable.
1579
1580 2006-08-29  Havoc Pennington  <hp@redhat.com>
1581
1582         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1583         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1584
1585 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1586
1587         * test/Makefile.am: change find to use syntax that works with non
1588         gnu versions of find
1589
1590 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1591
1592         * dbus/dbus-transport.c: fix invalid deref when checking if
1593         a vtable method exists (Patch from Christian Ehrlicher 
1594         <ch dot ehrlicher at gmx dot de>)
1595
1596 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1597
1598         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1599         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1600         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1601         <bernard at brenda-arkle dot demon dot co dot uk>)
1602
1603 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1604
1605         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1606         default case
1607
1608 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1609
1610         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1611         it works on any system providing this interface, not only FreeBSD.
1612         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1613
1614 2006-08-20  Havoc Pennington  <hp@redhat.com>
1615
1616         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1617         the docs
1618
1619 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1620
1621         * Released 0.92 
1622
1623 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1624
1625         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1626         to reflect the init late change
1627
1628         * bus/bus.c (bus_context_new): Check user before we fork so we can
1629         print out an error message a user will be able to see
1630
1631 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1632
1633         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1634
1635         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1636         Add two more global locks for use on windows platforms.  These are
1637         unused on non-windows platforms but are not ifdefed out to avoid
1638         potential bugs (i.e. the few bytes lost does not warrent the extra
1639         maintanence and complexity that having seperate sets of locks would
1640         cause)
1641
1642 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1643
1644         * bus/services.c (bus_registry_acquire_service): Return an error
1645         when an application tries to register the org.freedesktop.DBus Bus Name
1646
1647         * bus/services.c (bus_registry_release_service): Return an error
1648         when an application tries to release the org.freedesktop.DBus Bus Name
1649
1650 2006-08-17  Alp Toker  <alp@atoker.com>
1651
1652         * doc/dbus-specification.xml: Fix some minor typos.
1653
1654 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1655
1656         * configure.in: use $with_init_scripts instead of $operating_system
1657         to determine where to store the pid since the init scripts manipulate 
1658         the pid file (patch from Marcelo Ricardo Leitner 
1659         <marcelo dot leitner at terra dot com dot br>.  
1660
1661 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1662
1663         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1664         static DBusList *uninitialized_condvar_list to support new late 
1665         initialization threading model.  In this model threads can be initialized
1666         even after the D-Bus API has been used but still needs to be initialized 
1667         before the second thread has been started.  Mutexes and condvar addresses
1668         are stored in the two static lists and are replaced with actuall locks
1669         when threads are initalized.
1670         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1671         the location into the static list
1672         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1673         from the static list and freeing the mutex
1674         (_dbus_condvar_new_at_location): New method for creating a conditional 
1675         variable and placing the location into the static list
1676         (_dbus_condvar_free_at_location): New method for removing a conditional
1677         variable location from the static list and freeing the conditional variable 
1678         (init_uninitialized_locks): Atomic method which goes through the static 
1679         lists of mutex and condvar location and updates them with actuall locks
1680         (init_global_locks): changed to init_locks
1681         
1682         * dbus/dbus-connection.c:
1683         (_dbus_connection_test_get_locks): New method for tests to check connections
1684         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1685         condvar API
1686         (dbus_connection_allocate_data_slot): Pass in the global lock address
1687         to _dbus_data_slot_allocator_alloc
1688
1689         * dbus/dbus-dataslot.c:
1690         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1691         instead of the mutex itself
1692
1693         * dbus/dbus-message.c:
1694         (dbus_message_allocate_data_slot): Pass in the global lock address
1695         to _dbus_data_slot_allocator_alloc
1696
1697         * dbus/dbus-pending-call.c:
1698         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1699         to _dbus_data_slot_allocator_alloc
1700
1701         * dbus/dbus-server.c:
1702         (_dbus_server_init_base): Use the new at_location mutex API
1703         (dbus_server_allocate_data_slot): Pass in the global lock address
1704         to _dbus_data_slot_allocator_alloc
1705
1706         * test/name-test/test-threads-init.c: New test case for late thread
1707         initialization
1708
1709 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1710
1711         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1712         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1713         causes compile problems when asserts are turned off
1714         Keeping _dbus_warn for printing out the message so even if
1715         asserts are turned off the user gets the messages that something is 
1716         wrong 
1717
1718 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1719
1720         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1721
1722         * bus/services.c (bus_service_list_queued_owners):
1723         Add a pointer cast to fix compiler warning
1724
1725         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1726         return a NULL instead of FALSE since the return type
1727         is not expecting a boolean
1728
1729         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1730         Remove unused variable
1731
1732         * dbus/dbus-marshal-recursive-util.c (node_new):
1733         return a NULL instead of FALSE since the return type
1734         is not expecting a boolean
1735
1736         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1737         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1738         because we are expecting a pointer not a boolean
1739
1740         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1741         add void as the parameter so some compilers
1742         don't complain
1743
1744         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1745           _dbus_transport_new_for_tcp_socket):
1746         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1747         because we are expecting a pointer not a boolean
1748
1749         * test/shell-test.c (test_command_line):
1750         cast the second argument to _dbus_list_append to avoid compiler
1751         warnings
1752
1753         * test/test-names.c (main): remove unused variable
1754
1755         * test/test-service.c (check_hello_from_self_reply):
1756         Initialize echo_message and echo_reply to NULL
1757         
1758         * test/test-shell-service.c (handle_echo):
1759         Remove unused variable and cast the third parameter passed to
1760         dbus_connection_get_object_path_data to avoid compiler warrnings
1761
1762         * test/name-test/test-names.c (clear_message_queue):
1763         Remove unused function
1764
1765         * test/name-test/test-pending-call-dispatch.c:
1766         Fix format string in printf
1767
1768
1769 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1770
1771         * dbus/dbus-bus.c:
1772         * test/name-test/test-names.c:
1773         Remove test method dbus_bus_connection_get_unique_name because 
1774         we already have public method dbus_bus_get_unique_name that 
1775         does the exact same thing
1776
1777 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1778
1779         * dbus/dbus-signature.c:
1780         fix typos in Julio's previous patch which cause make check to fail
1781
1782 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1783
1784         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1785         In any case it was wrong since this is a test checking to see if
1786         address parsing is correct.  There was no need to get the true
1787         tmp directory.  
1788
1789 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1790
1791         * dbus/dbus-macros.h: Revert the addition of stddef.h
1792         as we should not be adding it to library headers 
1793
1794 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1795
1796         * dbus/dbus-signature.c:
1797         Fix the unit tests so that they work if assertions are not enabled.
1798         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1799
1800 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1801
1802         * tools/run-with-tmp-session-bus.sh:
1803         * test/name-test/run-test.sh:
1804         Remove bashisms (patch from Julio M. Merino Vidal
1805         <jmmv at NetBSD dot org>)
1806
1807 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1808
1809         * configure.in: add a version (>= 2.6.0) check for libxml2
1810
1811 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1812
1813         * configure.in: make sure the compiler supports -Wfloat-equal
1814         
1815         * bus/dir-watch-dnotify.c: move functional code after 
1816         variable declerations (C99 fix)  (patches from Jens Granseuer
1817         <jensgr at gmx dot net>
1818
1819 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1820
1821         * dbus/dbus-macros.h:
1822         add #include <stddef.h> so that Sun compilers don't complain about
1823         the defining NULL
1824
1825 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1826
1827         * dbus/dbus-sysdeps.c:
1828         * dbus/dbus-address.c:
1829         * bus/activation.c:
1830         * test/shell-test.c:
1831         don't hardcode tmp directory (patch from Dave Meikle 
1832         <dmk at davemeikle dot co dot uk>)
1833
1834 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1835
1836         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1837         Change an assert to a detailed warning and abort.  
1838         When allocator->lock != mutex it indicates that the user has failed
1839         to initalize threads before using the D-Bus library.  This warning
1840         helps the user identify the issue and fix their app.
1841
1842 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1843
1844         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1845         with cleanups of bugs found from Coverity reports:
1846
1847         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1848         close the file on error to avoid a leak
1849
1850         * bus/expirelist.c (bus_expire_list_test):
1851         Check for NULL on dbus_new0
1852
1853         * bus/activation.c (update_directory):
1854         remove dead code
1855
1856         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1857         Fix some leaks
1858
1859         * bus/bus.c (process_config_every_time):
1860         Fixed a leak
1861
1862         * bus/desktop-file.c (parse_key_value):
1863         Fixed leak
1864
1865         * bus/selinux.c (bus_selinux_id_table_insert):
1866         Fixed leak
1867
1868 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1869
1870         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1871         remove dead code
1872
1873 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1874
1875         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1876         #!/bin/bash
1877
1878 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1879
1880         * Doxyfile.in: fix the INPUT line so we can generate docs 
1881         when sourcedir != builddir (patch from Cygwin Ports maintainer
1882         <yselkowitz at users dot sourceforge dot net>
1883
1884 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1885
1886         * dbus/dbus-sysdeps.h:
1887         * dbus/dbus-sysdeps.c: 
1888         * dbus/dbus-string.c: 
1889         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1890         GLib's function which does the same thing
1891
1892         * configure.in:
1893         * bus/Makefile.am:
1894         * bus/dir-watch-default.c:
1895         * bus/dir-watch-dnotify.c:
1896         * bus/dir-watch-kqueue.c:
1897         Add kqueue directory watching for freebsd and split the directory
1898         watching code into seperate files per method/arch
1899         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1900
1901 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1902
1903         * configure.in:
1904         * tools/Makefile.am:
1905         * tools/dbus-launch.c:
1906         * bus/Makefile.am:
1907         allow --with-dbus-daemondir switch to be used to make the
1908         daemon install to a seperate bindir like /usr/libexec
1909         (patch from Brian Cameron <brian dot cameron at sun dot com)
1910
1911 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1912
1913         * bus/Makefile.am (install-data-hook): removed the slash after 
1914         $(DESTDIR) so we don't get the double slash which does not work
1915         in windows (patch from Andras Porjesz 
1916         <andras dot porjesz at siemens dot com>)
1917
1918 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1919
1920         * dbus/dbus-sysdeps.h:
1921         * dbus/dbus-sysdeps.c: 
1922           add _dbus_printf_length (patch from Peter Kümmel 
1923           <syntheticpp at gmx dot net>)
1924
1925 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1926
1927         * dbus/dbus-internals.c: unistd.h is not used 
1928         (_dbus_verbose_real): only enable verbose printing 
1929         if DBUS_VERBOSE environment var is set to '1'
1930         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1931
1932 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1933
1934         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1935         so we still compile on older gcc (patch from Frederic Peters 
1936         <fpeters at 0d dot be>
1937
1938 2006-08-04  Havoc Pennington  <hp@redhat.com>
1939
1940         * configure.in: add -Wdeclaration-after-statement
1941
1942         * dbus/dbus-connection.c: change all the pending call stuff to
1943         reflect the fact that pending call operations use the connection
1944         lock
1945
1946         * dbus/dbus-pending-call.c: add locking here
1947
1948         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1949         field const consistent with how message field is done
1950
1951 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1952
1953         * s/D-BUS/D-Bus/g
1954
1955 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1956
1957         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1958         <in7y118 at public.uni-hamburg dot de> - fix invalid
1959         read/write reported by valgrind
1960
1961 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1962
1963         * Released 0.91
1964
1965 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1966
1967         * dbus/dbus-connection.c:
1968         (_dbus_connection_attach_pending_call_unlocked):
1969         (connection_timeout_and_complete_all_pending_calls_unlocked):
1970         Make sure we set timeout_added on pending calls to FALSE when
1971         we remove the timeout from the connection
1972
1973 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1974
1975         * Removed some extra bindings stuff lingering around (thanks timo)
1976         * dbus-pendingcall.c (_dbus_pending_call_new): 
1977         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1978         when we tried to take a lock on an already locked connection
1979
1980 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1981
1982         * Released 0.90
1983
1984 2006-07-17  Havoc Pennington  <hp@redhat.com>
1985
1986         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1987         ints, reported by Owen Taylor
1988
1989 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1990
1991         * doc/TODO:
1992         * dbus/dbus-bus.c:
1993         * dbus-errors.c:
1994         * dbus/dbus-marshal-validate.c:
1995           Removed TODO items which were fixed or are no longer relevent
1996
1997 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1998
1999         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
2000         Remove stray files from the stripped bindings
2001
2002 2006-07-16  Havoc Pennington  <hp@redhat.com>
2003
2004         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
2005         Improve the error message on reply timeout
2006
2007 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
2008
2009         * Remove all bindings
2010
2011 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
2012
2013         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
2014         and set pending_reply out arg to NULL is connection is disconnected
2015         (connection_timeout_and_complete_all_pending_calls_unlocked): New
2016         static method for cleaning up pending calls on disconnect
2017         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
2018         calls queued timeouts on disconnect 
2019
2020          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
2021         Remove 
2022
2023 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
2024
2025         * bus/activation.[ch] (bus_activation_list_services): new function to 
2026         get the list of services that can be activated
2027
2028         * bus/dispatch.c: test coverage for the new bus method
2029         ListActivatableNames
2030
2031         * bus/driver.c: new bus method ListActivatableNames to get the list of
2032         services that can be activated
2033
2034         * doc/dbus-specification.xml: ListActivatableNames method documentation
2035
2036 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
2037         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
2038         source files
2039
2040 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
2041         * dbus/dbus-message-factory.c:
2042         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
2043
2044 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
2045         * dbus/dbus-connection-internal.h:
2046         * dbus/dbus-connection.c:
2047         * file dbus/dbus-pending-call.c:
2048         * dbus/dbus-pending-call.h:
2049         Make DBusPendingCall an opaque type even to D-Bus internals
2050
2051 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
2052
2053         * dbus/dbus-connection.h: remove connection_disconnect and replace with
2054         connection_close
2055
2056         * dbus/dbus-connection.c: include dbus-bus.h
2057         (_dbus_connection_read_write_dispatch): make static
2058
2059 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
2060
2061         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
2062         function
2063         (dbus_connection_dispatch): On disconnect unref any shared connections
2064
2065         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
2066         for cleaning up shared connections on disconnect
2067         (internal_bus_get): get a hard refrence to shared connections when
2068         they are created
2069         
2070         * doc/TODO: Remove items which are no longer relevent or have been fixed
2071         Split 1.0 todo items with a 0.90 freeze todo list
2072  
2073 2006-06-14  Ross Burton  <ross@openedhand.com>
2074
2075         * glib/dbus-gobject.c:
2076         Free a leaking GArray (surely not!) in dbus_g_method_return.
2077
2078 2006-06-14  Ross Burton  <ross@openedhand.com>
2079
2080         * tools/Makefile.am:
2081         * tools/dbus-monitor.c:
2082         Don't use the GLib bindings in dbus-monitor (patch from Ralf
2083         Habacker).
2084         
2085 2006-06-14  Ross Burton  <ross@openedhand.com>
2086
2087         * tools/dbus-print-message.c:
2088         Also print the object path when outputting signals or method calls.
2089
2090 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
2091
2092         * qt/src/Makefile.am: install the qdbus.h header.
2093         This allows people to actually use the installed code.
2094
2095 2006-06-12  Ross Burton  <ross@openedhand.com>
2096
2097         * glib/dbus-gproxy.c:
2098         Don't leak a GArray when firing signals (thank Rob Taylor for review).
2099
2100 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2101
2102         * Released 0.62
2103
2104 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2105
2106         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
2107         break pedantic builds. Closes bug 6043 (patch approved by
2108         Havoc back in February).
2109
2110 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2111
2112         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
2113         that took a QDBusMessage parameter.
2114         * qt/src/qdbusbus.h: Add a default flag for RequestName.
2115         * qt/tools/dbus.cpp: Don't use automatic call because we might
2116         be calling an async method: request a reply.
2117
2118 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
2119
2120         * test/qt/*: Update the testcases, including testing the new
2121         functionality of sending null QByteArray and QString over the
2122         bus. Add new headertest test and restore the old
2123         qdbusxmlparser test.
2124
2125 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
2126
2127         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
2128         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
2129
2130         * qt/examples/Makefile.am:
2131         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
2132         form.
2133
2134         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
2135         QByteArray() (nulls) over the bus.
2136         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
2137         the one that has the signature suffix stripped.
2138         * qt/src/qdbusreply.h: Make some methods const.
2139
2140 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
2141
2142         Patch from Timo Hoenig <thoenig@suse.de>.
2143
2144         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
2145         required during build to EXTRA_DIST.
2146         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
2147         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
2148         * configure.in: Fix "make dist", take care that the Makefile for
2149         qt/dbus is being generated.
2150
2151 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2152
2153         * bus/bus.c: Fix eavesdropping on method calls
2154
2155 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2156
2157         * configure.in:
2158         * dbus/dbus-userdb-util.c:
2159         Add Solaris console owner patch from Artem Kachitchkine
2160
2161 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
2162
2163         * qt/Makfile.am:
2164         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
2165         reorganisation. Thanks to Timo Hoenig for pointing this out.
2166
2167 2006-06-06  Robert McQueen  <robot101@debian.org>
2168
2169         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
2170           call to dbus_g_type_get_struct.
2171
2172 2006-06-06  Robert McQueen  <robot101@debian.org>
2173
2174         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
2175           pointers were put into a GPtrArray-based specialised collection, and
2176           then freed along with the array. GValues which you add into
2177           collections or maps which have the NOCOPY flag set are assumed to not
2178           belong to the caller, so rather than the existing pointer-stealing
2179           semantics, they are copied instead. Given that the main consumers of
2180           this abstraction are the bindings themselves, I don't think this is
2181           too bad, but others should watch their choice of take vs set_static.
2182
2183 2006-06-06  Robert McQueen  <robot101@debian.org>
2184
2185         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
2186           of g_slist_prepend not being used. Fixed copying of slist-based
2187           specialised collections, then wrote a test case and found that it was
2188           all broken. Went on to fix iterating and appending too. Good thing
2189           nobody uses this code yet.
2190
2191 2006-06-06  Robert McQueen  <robot101@debian.org>
2192
2193         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
2194           the iterators use gvalue_take_ptrarray_value (the GValues themselves
2195           are discarded without unsetting, so it makes no difference whether
2196           we take or set_static). Remove cases for G_TYPE_POINTER because
2197           there really is nothing useful we can do with them in our
2198           specialised types - we *need* boxed copy/free functions at the very
2199           least.
2200
2201 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
2202
2203         * qt/dbus: Add directory. I had forgotten to add this
2204         yesterday after the move...
2205
2206         * qt/examples/Makefile.am:
2207         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
2208
2209         * qt/tools/Makefile.am:
2210         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
2211         Added feature to get and set properties.
2212         Added validation of service, object path and interface names.
2213
2214         * qt/tools/dbusidl2cpp.cpp: Two new features:
2215         1) Allow specifying both the header and the source file names,
2216         by separating them with a colon.
2217         2) Don't write an interface output if the -p switch wasn't
2218         given, but the -a was.
2219
2220         * qt/src/*: Fix usage of Iterators and ConstIterators.
2221         Fix shadowing of variables by other variables (-Wshadow).
2222         Fix keyword-cleanliness in headers.
2223         Fix ASCII-cast (QLatin1String, QLatin1Char).
2224         Fix validation of member names.
2225         Add extra checking of introspection data during XML parsing.
2226         Various bug fixes.
2227
2228 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2229
2230         * dbus/Makefile.am:
2231         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
2232         qt/dbus/qdbus.h now.
2233
2234 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2235
2236         * configure.in: Make --disable-qt actually do
2237           something. Patch inspired by Zack Rusin.
2238
2239 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2240
2241         * qt/: Update to Subversion r548032.
2242         This includes a big reorganisation of the files inside the
2243         subdir.
2244
2245 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
2246
2247         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
2248         clear:  
2249         "Failed to connect to socket <host>:<port> <error>" instead of
2250         "Failed to connect to socket <host>: <error>:<port>"
2251
2252         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
2253         for a tcp transport. 
2254
2255 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2256
2257         * qt/*: Update the QtDBus bindings up to revision 546310 in
2258         Subversion.
2259         This adds the dbuscpp2xml tool, that parses a C++ header and
2260         outputs a D-BUS Introspection XML.
2261
2262 2006-05-21  Havoc Pennington  <hp@redhat.com>
2263
2264         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
2265         is not NULL when it shouldn't be. Also a couple of possible fixes
2266         for #4637 though I don't understand why the bug happens, to be
2267         honest... also the object constructor has an assert name != NULL
2268         and the name is only currently NULL for peer-to-peer proxies that 
2269         I don't think anyone uses? So it should be asserting.
2270         Anyway, for now at least see if we get an earlier assertion failure.
2271
2272         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
2273         apparently broken code to be sure the tests fail and someone 
2274         will fix them...
2275
2276 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
2277
2278         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
2279         and arrays when they had a single element: has_next returns
2280         false, even before you read the element. So, instead, check
2281         the array length.
2282
2283 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2284
2285         * qt/qdbusmessage.cpp:
2286         * qt/qdbustypehelper_p.h:
2287         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
2288         the list is a const-reference
2289
2290 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
2291
2292         * Adding old doc patch that never got applied
2293         
2294         * dbus/bus.c (dbus_bus_add_match): Add documentation
2295
2296         * doc/dbus-specification.xml: Add documentation for the match rules
2297           and the AddMatch and RemoveMatch methods
2298
2299 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
2300
2301         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2302         call (r535506)
2303
2304         * qt/dbusidl2cpp.cpp:
2305         * qt/qdbusabstractadaptor.cpp:
2306         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
2307         sibling of the QDBusAbstractAdaptor objects instead of the
2308         parent. (r535848)
2309
2310         * qt/dbusidl2cpp.cpp:
2311         * qt/qdbusabstractinterface.cpp:
2312         * qt/qdbusabstractinterface.h:
2313         * qt/qdbusabstractinterface_p.h:
2314         * qt/qdbusinterface.cpp: Make properties in interfaces
2315         actually work. The code that was generated would not compile,
2316         due to moc calls to functions that did not exist. They now
2317         shall. (r536571)
2318
2319 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
2320
2321         * Makefile.am:
2322         * configure.in:
2323         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
2324         Thanks to Brad Hards for providing the patch
2325
2326 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2327
2328         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2329         call. (r535506)
2330
2331 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2332
2333         * qt/examples/dbus.cpp: Enhance error messages and use
2334         QDBusInterfacePtr.
2335
2336 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2337
2338         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
2339         and disable the copy operators. (r533772, r534746)
2340
2341         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
2342
2343         * qt/qdbusabstractinterface.cpp:
2344         * qt/qdbusabstractinterface.h: Change the default call mode to
2345         not use the event loop. Add convenience call() methods that
2346         take a CallMode parameter. (r534042)
2347
2348         * qt/qdbusconnection.h: Change the default call mode to not
2349         use the event loop. (r534042)
2350
2351         * qt/qdbusinterface.cpp:
2352         * qt/qdbusinterface.h: Add a method to tell us if the
2353         interface is valid (since we don't return a null pointer
2354         anymore) (r534099)
2355
2356         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2357         (r534101)
2358
2359         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2360         function in two so taht we get the chance to introspect
2361         without having a QDBusMessage (r534102)
2362
2363         * qt/qdbusbus.h:
2364         * qt/qdbusconnection.cpp:
2365         * qt/qdbusconnection_p.h:
2366         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2367         avoid a round-trip to the server when attempting to introspect
2368         one of our own objects. Also make sure the filter functions
2369         match the empty interface as well. (r534108)
2370         Don't keep the connection names. Instead, trust the unique
2371         connection name (r534111)
2372         Remove event loop usage (r534112)
2373
2374 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2375
2376         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2377         Brad Hards.
2378
2379 2006-04-28  Robert McQueen  <robot101@debian.org>
2380
2381         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2382         any order, making it easier for people who inherit from this
2383         object.
2384
2385 2006-04-28  Robert McQueen  <robot101@debian.org>
2386
2387         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2388         of memory from within pointer arrays and lists. Fixes bug #6300.
2389
2390 2006-04-28  Robert McQueen  <robot101@debian.org>
2391
2392         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2393         generating struct signatures. Fixes bug #6083.
2394
2395 2006-04-28  Robert McQueen  <robot101@debian.org>
2396
2397         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2398         to qdbusconnection_p.moc.
2399
2400 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2401
2402         * README, INSTALL: Doc fixes
2403         Patch from Brad Hards <bradh at frogmouth.net>
2404
2405 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2406
2407         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2408         the dynamic meta object. No need to guess which interface to
2409         call.
2410
2411 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2412
2413         * qt/qdbusconnection_p.h:
2414         * qt/qdbusmetaobject.cpp:
2415         * qt/qdbusmetaobject_p.h:
2416         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2417         for the dynamic meta object. No need to guess which
2418         interface to call.
2419         * qt/qdbusabstractinterface_p.h:
2420         * qt/qdbusconnection.cpp:
2421         * qt/qdbusintegrator.cpp:
2422         * qt/qdbusinterface.cpp:
2423         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2424         Add a QDBusRef that looks and behaves like DCOPRef.
2425
2426 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2427
2428         * dbus/dbus-connection.c: Interfaces are optional in method
2429         calls, so don't give up if the interface parameter is NULL.
2430         Patch reviewed by Havoc Pennington.
2431
2432 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2433
2434         * qt/qdbusreply.h: Add default constructor and operator=
2435           (r532625)
2436         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2437           in public headers (r532952)
2438         * qt/qdbusabstractinterface.cpp:
2439         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2440           make it the default (r532951)
2441
2442 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2443
2444         * dbus/dbus-connection.c: Fix asserts
2445         Patch from Tim Moloney <t.moloney at verizon.net>
2446
2447 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2448
2449         * mono/Connection.cs, mono/Message.cs: Check Target type
2450         Patch from Aaron Bockover (abockover at novell.com)
2451
2452 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2453
2454         * INSTALL: fine-tune the requirements for the Qt4 binding.
2455
2456 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2457
2458         * tools/dbus-print-message.c: Added support for printing of all 
2459           remaining data types. Fixed logic for indentation of compound
2460           data types.
2461         
2462 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2463
2464         * INSTALL: fill out content of file providing DBus specific
2465           build installations, followed by generic Auto* INSTALL file
2466           content
2467         
2468 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2469
2470         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2471           Patch by Stefan Eilers. (r529537)
2472
2473 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2474
2475         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2476           contents (r528208)
2477
2478 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2479
2480         * qt/Makefile.am: fix the dependency for
2481           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2482           not in qdbusconnection.cpp.
2483           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2484           spotting this.
2485
2486 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2487
2488         * qt/examples/listnames.cpp:
2489         * qt/examples/Makefile.am: Three ways to list the names on the
2490           bus.
2491
2492 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2493
2494         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2495           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2496
2497 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2498
2499         Merge from Subversion:
2500         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2501           something that exists (r526315)
2502         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2503           slots/signals (r526316)
2504         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2505           also return an unknown-method error if the parameters don't
2506           match for org.freedesktop.DBus.Properties. (r526842)
2507         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2508         * qt/qdbusintegrator.cpp: Restore the proper order of
2509           delivery: don't make method returns be delivered on priority
2510           (r528150)
2511
2512 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2513
2514         * configure.in qt/Makefile.am: add qt/examples
2515         * qt/examples: Add QtDBus example programs:
2516           - hello: Hello, World
2517           - ping: Simple method-calling program
2518           - pong: Simple object-exporting program (not using adaptors)
2519           - complexping: Interactive method-calling program 
2520                 (also gets and sets properties).
2521           - complexpong: Sample program exporting methods, signals and
2522                 properties, using adaptors.
2523           - dbus: Simple implementation of a generic method-calling
2524                 program, similar to 'dbus-send', but with semantics
2525                 similar to 'dcop'.
2526           - chat: Simplistic chat program, implemented using signals
2527                 and the system bus. Looks like IRC.
2528
2529 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2530
2531         * configure.in: Detect QtGui (necessary for one of the
2532           example programs). Note: this increases the minimum required
2533           version of Qt to 4.1.3.
2534
2535 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2536
2537         * test/qt/*: Sync with KDE Subversion revision 523647.
2538         Update the testcases to the new API. Remove testcases for
2539         classes that are no longer public or have been removed.
2540
2541 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2542
2543         * qt/*: 
2544         * dbus/qdbus.h: Sync with KDE Subversion revision
2545         523647. Hopefully, this will be the last of the
2546         source-incompatible changes. Documentation has been improved;
2547         support for QList<basic-types> has been added; QDBusObject is
2548         gone; QDBus(Abstract)Interface is now a QObject with
2549         auto-generated meta-object; QDBusIntrospection is marked
2550         private, since QMetaObject can be used now; lots of bugfixes.
2551
2552 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2553
2554         Patch from Milosz Derezynski <internalerror at gmail.com>
2555         
2556         * configure.in:
2557         Output the service directory in the configure summary
2558
2559         * dbus-1.pc.in:
2560         Add session_bus_services_dir
2561
2562 2006-03-10  Ross Burton  <ross@openedhand.com>
2563
2564         * tools/dbus-print-message.c:
2565         Add support for object paths and signatures.
2566
2567 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2568
2569         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2570         config reload.
2571         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2572         information caches
2573         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2574         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2575         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2576         * dbus/dbus-userdb.h: Add function to flush all user/group information
2577         caches.
2578
2579 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2580
2581         * qt/dbusidl2cpp.cpp:
2582         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2583         for dcopidl2cpp, found in the KDE installations (or the more
2584         modern kalyptus): generate Qt4 C++ code for the input XML
2585         introspection. Currently no IDL parsing.
2586
2587 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2588
2589         * test/qt/*: Update the self-tests.
2590
2591 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2592
2593         * qt/*: 
2594         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2595         represents the first feature-complete version of the Qt4
2596         bindings since I took ove maintainership.
2597
2598 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2599
2600         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2601         dir. This is C++, so we can't use the DBus ones.
2602
2603 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2604
2605         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2606         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2607
2608 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2609
2610         * dbus/dbus-connection.c: 
2611         (_dbus_connection_block_pending_call):
2612         Check to see if our data has already been read off the connection
2613         by another blocking pending call before we block in poll.
2614         (check_for_reply_and_update_dispatch_unlocked):
2615         Code taken from _dbus_connection_block_pending_call - checks for
2616         an already read reply and updates the dispatch if there is one.
2617
2618         * test/name-test/test-pending-call-dispatch.c:
2619         New test for making sure we don't get stuck polling a 
2620         dbus connection which has no data on the socket when
2621         blocking out of order on two or more pending calls.
2622
2623 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2624
2625         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2626         make/automake don't detect that we're talking about the same
2627         .lo file if I specify the full path to the source files.
2628
2629 2006-02-26  Havoc Pennington  <hp@redhat.com>
2630
2631         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2632
2633         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2634         session bus variable is unset, suggest "man dbus-launch" and "man
2635         dbus-daemon" to figure out how to fix the problem
2636
2637 2006-02-25  Havoc Pennington  <hp@redhat.com>
2638
2639         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2640         should make this thing use the new glib options parser
2641
2642 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2643
2644         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2645         .lo files taking moc sources.
2646
2647 2006-02-25  Havoc Pennington  <hp@redhat.com>
2648
2649         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2650         and install it as a public header
2651
2652 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2653
2654         * Released 0.61
2655
2656 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2657         
2658         * proxies.py: Fix the callchain
2659
2660 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2661         
2662         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2663
2664         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2665         dbus/dbus-sysdeps.c
2666
2667         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2668         call _dbus_group_info_free_allocated which causes infinite loop,
2669         correctly call _dbus_group_info_free
2670
2671 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2672
2673         * qt/qdbusinterface_p.h:
2674         * qt/qdbusinterface.cpp: Use the standard
2675         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2676         calls instead of creating one for us.
2677
2678         * qt/qdbusconnection_p.h:
2679         * qt/qdbusintegrator.cpp: Remove debugging code.
2680
2681         * qt/qdbusintegrator.cpp:
2682         * qt/qdbusmessage.cpp:
2683         * qt/qdbusmessage_p.h:
2684         * qt/qdbusmessage.h: Change the behaviour of automatic
2685         reply-sending: now a reply is always sent, unless the caller
2686         didn't request one or if the user slot has already sent one.
2687
2688 2006-02-16  Robert McQueen  <robot101@debian.org>
2689
2690         * configure.in: Patch from Debian packages by Sjoerd Simons
2691         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2692         arguments so it's possible to build both bindings in the
2693         same tree.
2694
2695         * qt/Makefile.am: Fix truncated value so that make dist works.
2696
2697 2006-02-16  Robert McQueen  <robot101@debian.org>
2698
2699         * acinclude.m4, configure.in: Patch from Brad Hards
2700         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2701         improving quoting, re-ordering a few checks, and a few other
2702         aesthetic tidy-ups.
2703
2704 2006-02-16  Robert McQueen  <robot101@debian.org>
2705
2706         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2707         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2708         assertion that the next element to read from the iter is fixed in
2709         size. This is not the case when you are at the end of the iter,
2710         because the next element type is INVALID.
2711
2712         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2713         a bogus assert which means that you may not initialise a 0-length
2714         string unless you provide a non-NULL pointer. This prevented
2715         you from marshalling messages containing zero-length arrays in
2716         some cases.
2717
2718         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2719         from Rob to correct bogus asserts when trying to demarshal an
2720         array and get_fixed_array got you 0 elements. Append nothing to
2721         the GArray in this case.
2722
2723         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2724         an empty array via the glib bindings. Without all of the above
2725         patches, this new test fails.
2726
2727 2006-02-16  Robert McQueen  <robot101@debian.org>
2728
2729         * glib/dbus-gmain.c: Make the previous commit compile.
2730
2731         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2732         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2733         specify sender_keyword="foo", path_keyword="bar" when adding
2734         a signal listener, so that you can bind to signals generically
2735         but still do something useful in your callback.
2736
2737         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2738         chars so that they're not cast to chars and made negative. Thanks
2739         to Jakub Stachowski for reporting this and testing the fix.
2740
2741 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2742
2743         * dbus/dbus-glib.h:
2744         * glib/dbus-gmain.h:
2745         (dbus_g_connection_open): new method for openning
2746         a connection to an arbitrary address in the glib bindings
2747
2748         * ChangeLog: checkin last entry which doesn't seem to be commited
2749
2750 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2751
2752         * tools/dbus-launch.c: Fixed sh syntax output
2753
2754 2006-02-13  Robert McQueen  <robot101@debian.org>
2755
2756         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2757         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2758         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2759         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2760         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2761         missing piece of the glib bindings jigsaw puzzle. This modifies
2762         the existing specialised types to have N type parameters (rather
2763         than the current 1 or 2 for arrays and dictionaries respectively).
2764         You can then use this to get a glib type to represent any arbitrary
2765         D-Bus struct type using dbus_g_type_get_struct. The only
2766         implementation of these types is with GValueArrays as before,
2767         but it's now possible to store these in arrays, emit them in
2768         signals, etc.
2769
2770 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2771
2772         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2773         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2774         <thiago.macieira at trolltech.com>
2775
2776 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2777
2778         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2779         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2780
2781 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2782
2783         * bus/connection.c (bus_connections_expect_reply): Make
2784         pending reply limit not common to all connections (Bug #5416)
2785         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2786
2787 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2788
2789         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2790
2791 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2792
2793         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2794         patch from Doug Goldstein <cardoe at gentoo.org>
2795
2796 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2797
2798         * mono/Arguments.cs: Fix a magic number in the mono bindings
2799         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2800
2801 2006-01-27  Robert McQueen  <robot101@debian.org>
2802
2803         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2804         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2805         when generating the client-side methods, instead of overloading
2806         CSymbol which broke everything horribly. My apologies.
2807
2808 2006-01-27  Robert McQueen  <robot101@debian.org>
2809
2810         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2811         by me and Rob Taylor to add a simple_free function to D-Bus map
2812         and collection types, which allows those types which can be freed
2813         with a GDestroyNotify (such as GHashTables and GArrays, but not
2814         GPtrArrays) to be stored as the values in hashtables.
2815
2816         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2817         Patch by Rob Taylor to add nested dicts to the glib tests to check
2818         the above code works, and appears not to leak when called repeatedly.
2819
2820 2006-01-27  Robert McQueen  <robot101@debian.org>
2821
2822         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2823         to free a D-Bus allocated string with dbus_free () instead of
2824         g_free ().
2825
2826 2006-01-27  Iain Holmes  <iain@openedhand.com>
2827
2828         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2829         method from being called multiple times.
2830
2831 2006-01-19  Robert McQueen  <robot101@debian.org>
2832
2833         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2834         <rob.taylor@collabora.co.uk> to add support for generating bindings
2835         to arrays that are represented as GPtrArrays rather than GArrays (ie
2836         size-variable things, such as strings, objects, structs, etc).
2837
2838 2006-01-05  Robert McQueen  <robot101@debian.org>
2839
2840         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2841         <ricardo.kekki@movial.fi> to make it possible to inherit from
2842         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2843         a private part, and moving the setting of the DBusGProxyManager into a
2844         connection property, allowing proper GObject construction.
2845
2846 2006-01-05  Robert McQueen  <robot101@debian.org>
2847
2848         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2849         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2850         annotations when generating glib client bindings.
2851
2852 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2853
2854         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2855
2856         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2857
2858 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2859
2860         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2861
2862 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2863
2864         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2865
2866 2005-12-19  Ross Burton  <ross@openedhand.com>
2867
2868         * doc/dbus-tutorial.xml:
2869         Document the Glib client-side bindings, and list all possible annotations.
2870
2871 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2872
2873         * dbus/bus.c (dbus_bus_release_name): Add documentation
2874
2875 2005-12-06  Robert McQueen  <robot101@debian.org>
2876
2877         * python/service.py: s/sucessful/successful/ so we're allocating to
2878         and reading from the same variable. Oops.
2879
2880 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2881
2882         * Released 0.60
2883
2884 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2885
2886         * test/qt/Makefile.am: build from srcdir
2887
2888         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2889         Note - this code is wrong and needs to be fixed by the Qt binding
2890         developers.  The flags should be treated as bitfields and not enums.
2891
2892         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2893
2894 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2895
2896         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2897           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2898           in production code
2899
2900 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2901
2902         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2903         method for getting messages off the bus in the absence of a
2904         mainloop.  This method is much like 
2905         dbus_connection_read_write_dispatch except it does not dispatch
2906         the messages to a registered filter function.  Instead it
2907         allows a developer to process messages by directly popping
2908         them off the bus.
2909
2910 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2911
2912         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2913         the parser to continue instead of returning error
2914         (bus_desktop_file_load): Do not free parser data when
2915         parse_section_start or parse_key_value fails because it was 
2916         already freed by parser_free (patch from Carlos Garcia Campos  
2917         <carlosgc at gnome.org>)
2918
2919 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2920
2921         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2922         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2923         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2924         test/test-segfault.c, test/test-utils.c,
2925         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2926         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2927         Various cleanup of dead code and compiler warnings (patch from
2928         Kjartan Maraas <kmaraas at gnome.org>) 
2929
2930 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2931
2932         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2933         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2934
2935 2005-11-27  Robert McQueen  <robot101@debian.org>
2936
2937         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2938         part of the preceding one. Oops. Merge patch by Johan Hedberg
2939         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2940         on big-endian platforms.
2941
2942         * test/python/test-client.py: Add some 16-bit integers to the test
2943         values.
2944
2945 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2946
2947         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2948         method return message for property getters
2949
2950 2005-11-27  Robert McQueen  <robot101@debian.org>
2951
2952         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2953         with type v of an instance of dbus.Variant(foo, type='x') caused
2954         it to be boxed twice before sending over the bus.
2955
2956         * python/dbus_bindings.pyx, python/service.py,
2957         test/python/test-client.py: Update the constants for the new
2958         request_name flags, and update comments/test cases now that queueing
2959         is the default action.
2960
2961 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2962
2963         * configure.in:
2964         - Change version to 0.60 for impending release
2965         - upped the sonames because of ABI and API breakage
2966
2967 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2968
2969         * configure.in: Add test/name-test/Makefile to the generated
2970         Makefile list
2971
2972         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2973         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2974         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2975         not to queue an ower if it can't be the primary owner
2976
2977         * bus/bus.h: Add new internal BusOwner struct
2978
2979         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2980         to bus_registry_ensure and don't set the prohibit_replacement flag
2981         since they are now set per BusOwner and not per name.
2982         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2983         that returns the list of connections in a name's connection queue
2984         
2985         * bus/services.c (struct BusService): remove prohibit_replacement field
2986         (struct BusOwner): new struct for keeping track of queued connections
2987         and their associated flags for the queue
2988         (struct BusRegistry): add a BusOwner memory pool
2989         (bus_registry_new): initialize the BusOwner memory pool
2990         (bus_registry_unref): free the BusOwner memory pool
2991         (_bus_service_find_owner_link): new internal method for
2992         searching the queue for a specific connection
2993         (bus_owner_set_flags): new method for adding setting the flags on a
2994         bus owner
2995         (bus_owner_new): new method that creates a BusOwner object from the
2996         pool and sets its flags
2997         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2998         (bus_registry_ensure): Add the flags parameter
2999         (bus_registry_acquire_service): Switch from using raw connections to
3000         using the BusOwner struct
3001         Add new state machine for dealing with the new set of flags
3002         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
3003         cancel_ownership, free_ownership_cancel_data, 
3004         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
3005         restore_ownership, free_ownership_restore_data, 
3006         add_restore_ownership_to_transaction): Switch to using BusOwner 
3007         instead of raw connections
3008         (bus_service_add_owner): Add flags parameter
3009         Switch to using BusOwner instead of raw connections
3010         Add state machine for dealing with the new set of flags
3011         (bus_service_swap_owner): Swaps the first and second owners in the
3012         queue.  Used to make sure proper signals are sent when a service looses 
3013         or gains primary ownership.  We never insert an owner at the top of the
3014         queue.  Instead we insert it in the second position and then swap.
3015         (bus_service_remove_owner): Remove the owner from the queue sending
3016         out the NameLost and NameOwnerChanged signals if the we were the 
3017         primary owner
3018         (bus_service_get_primary_owners_connection): New method that extracts
3019         the connection from the primary owner
3020         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
3021         connection
3022         (bus_service_get_allow_replacement): Changed from the old 
3023         bus_service_get_prohibit_replacement method.  Checks the flags of the 
3024         primary owner and returns if it can be replaced or not
3025         (bus_service_set_prohibit_replacement): removed
3026         (bus_service_has_owner): returns TRUE if and owner with
3027         the specified connection exists in the queue
3028         
3029         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
3030         method that only compiles if tests are enabled.  Allows us to get the 
3031         unique name of a connection so we can check it against the queue when
3032         doing regression tests
3033
3034         * bus/activation.c (bus_activation_send_pending_auto_activate),
3035         bus/dispatch.c (bus_dispatch),  
3036         bus/driver.c (bus_driver_handle_get_service_owner, 
3037         bus_driver_handle_get_connection_unix_user, 
3038         bus_driver_handle_get_connection_unix_process_id,
3039         bus_driver_handle_get_connection_selinux_security_context),
3040         bus/signals.c (connection_is_primary_owner): 
3041         use bus_service_get_primary_owners_connection instead of
3042         bus_service_get_primary_owner
3043
3044         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
3045         _dbus_listen_unix_socket): Calculate the length of the socket
3046         path and use that instead of using a fixed length which was
3047         causing socket names to contain many trailing Nul bytes.
3048
3049         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
3050         (dbus_g_method_get_sender): New method for extracting the sender 
3051         from a DBusGMethodInvocation
3052         (dbus_g_method_return_get_reply): changed name to 
3053         dbus_g_method_get_reply
3054         (dbus_g_method_return_send_reply): changed name to
3055         dbus_g_method_send reply
3056
3057         * doc/dbus-specification.xml: New docs that describe how the new
3058         queueing system works and talks about the changes to the how
3059         we specify socket names
3060
3061         * glib/examples/example-service.c, 
3062         glib/examples/example-signal-emitter.c,
3063         glib/examples/statemachine/statemachine-server.c:
3064         Changed the RequestName flags to the new system
3065
3066         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
3067         regression test suite for testing various states of the new
3068         queueing system
3069         
3070 2005-11-15  Robert McQueen  <robot101@debian.org>
3071
3072         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
3073         Taylor to add two methods, dbus_g_method_return_get_reply and
3074         dbus_g_method_return_send_reply, to allow you to get the reply
3075         message from a DBusGMethodInvocation, append arbitrary stuff to it,
3076         and send it. The GLib bindings can't marshal a return value of
3077         something like a(s) if the array is empty - ultimately they should be
3078         made to heed the signature of the out arguments as the Python bindings
3079         now can, but this is a workable interim solution which might have
3080         other applications.
3081
3082 2005-11-15  Robert McQueen  <robot101@debian.org>
3083
3084         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
3085         method to org.freedesktop.DBus to release a bus name or give up
3086         waiting in the queue for it.
3087
3088         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
3089         dbus_bus_release_name method to send the ReleaseName method calls.
3090         Add constants for the return values to dbus/dbus-shared.h.
3091
3092         * doc/dbus-specification.xml: Document the new ReleaseName method
3093         in the specification.
3094
3095         * python/dbus_bindings.pyx: Add a low-level python binding for the
3096         release name method.
3097
3098         * python/exceptions.py, python/service.py: Make freeing BusName
3099         objects release the name. Add a NameExistsException, and fix a
3100         bug with creating UnknownMethodException.
3101
3102         * test/python/test-client.py: Add tests for freeing BusName
3103         objects causing names to be released.
3104
3105 2005-11-14  Robert McQueen  <robot101@debian.org>
3106
3107         * python/service.py: Include the traceback in the error reply when we
3108         send an exception over the bus. _BEST_ _PATCH_ _EVER_
3109
3110 2005-11-14  David Zeuthen  <davidz@redhat.com>
3111
3112         Patch from Timo Hoenig <thoenig@suse.de>.
3113
3114         * bus/bus.c: I've recently investigated why the automatic reload
3115         of configuration files does not work as expected.
3116
3117         Currently, reloading configuration files does only work when
3118         running dbus-daemon with --nodaemon.  If we are running as daemon
3119         we're hitting a dnotify bug once we fork the process.
3120
3121         We're initializing the dnotify fds before calling fork().  Once
3122         the child process forked it does still have the fds (and they
3123         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
3124         getting SIGIO as changes are made to the configuration files.
3125
3126         The attached patch moves the initialization of the dnotify fds to
3127         process_config_postinit().  This is safe for all current code
3128         paths and solves the dnotify disfunction.  If we're running
3129         dbus-daemon as daemon the fds for dnotify are now being
3130         initialized after fork() for the child process.
3131
3132         * configure.in: The current configure.in check for dnotify probes
3133         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
3134         match for 'xlinux', too. Additionally I have adapted the configure
3135         option's style to match with the others.
3136
3137 2005-11-14  Robert McQueen  <robot101@debian.org>
3138
3139         * python/decorators.py, python/service.py: Add a new argument to the
3140         dbus.service.method decorator called sender_keyword, which if set,
3141         specifies the name of an argument which will be provided the bus
3142         name of the method caller.
3143
3144         * test/python/test-client.py, test/python/test-service.py: Add a
3145         method and test to check the sender_keyword functionality.
3146
3147 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
3148
3149         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
3150         empty reply so blocking calls don't block forever (Patch from Sjoerd 
3151         Simons <sjoerd at luon.net>)
3152
3153         * AUTHORS: Add Robert McQueen for his work on the Python
3154         Bindings and other parts of D-Bus
3155
3156 2005-11-07  Robert McQueen  <robot101@debian.org>
3157
3158         * python/decorators.py: Change emit_signal function to use the
3159         signature annotation of the signal when marhsalling the arguments from
3160         the service. Fix a bug where the code checking signature length
3161         against argument length referenced the wrong variable.
3162
3163         * python/introspect_parser.py: Avoid adding the type signature of
3164         signal arguments to any methods which occur after them in the
3165         introspection data (!) by making the parser a little more careful
3166         about its current state.
3167
3168         * python/service.py: Remove debug prints from last commit (again :D).
3169
3170         * test/python/test-client.py, test/python/test-service.py: Add test
3171         signals with signature decorators to test the strict marshalling code
3172         gives errors at the right time. Could do with checking the signals
3173         actually get emitted too, given that the test does nothing with
3174         signals at the moment...
3175
3176 2005-11-07  Robert McQueen  <robot101@debian.org>
3177
3178         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
3179         instances to stop madness of creating new instances representing
3180         the same bus connection all the time, rendering any tracking of
3181         match rules and bus names quite meaningless. Caught a bug where
3182         the private argument to SessionBus() and friends was being passed
3183         in as use_default_mainloop by mistake. Still some problems with
3184         multiple dbus_binding.Connection instances representing the same
3185         low-level connection (eg when you use both SessionBus() and
3186         StarterBus() in same process), but it's a lot better now than it
3187         was.
3188
3189         * python/dbus_bindings.pyx: Add constants with the return values
3190         for bus_request_name().
3191
3192         * python/service.py: Store bus name instances in a per-dbus.Bus cache
3193         and retrieve the same instances for the same name, so deletion can be
3194         done with refcounting. Also now throws some kind of error if you
3195         don't actually get the name you requested, unlike previously...
3196
3197         * test/python/test-client.py: Add tests for instance caching of buses
3198         and bus name objects.
3199
3200 2005-11-04  Robert McQueen  <robot101@debian.org>
3201
3202         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
3203         marshalling of boolean values. Add some booleans to the values in
3204         the test client.
3205
3206         * python/decorators.py, python/service.py: Add an 'async_callbacks'
3207         argument to the dbus.service.method decorator, which allows you to
3208         name arguments to take two callback functions for replying with
3209         return values or an exception.
3210
3211         * test/python/test-client.py, test/python/test-service.py: Add test
3212         case using asynchronous method reply functions, both return values and
3213         errors, and from within both the function itself and from a mainloop
3214         callback.
3215
3216         * python/decorators.py, python/service.py: Perform checking that the
3217         number of method/signal arguments matches the number of types in the
3218         signature at class loading time, not when you first introspect the
3219         class.
3220
3221         * python/service.py: Remove debug print left by the last commit.
3222
3223 2005-11-03  Robert McQueen  <robot101@debian.org>
3224
3225         * python/service.py: Heavy refactoring of method invocation, with
3226         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
3227         in favour of a new _message_cb that uses seperate functions for
3228         looking up the method to call, marshalling the return values, and
3229         sending exceptions as errors, and is easier to follow as a
3230         consequence.  Fixes some corner cases about returning things that
3231         don't match your declared out_signature, allows exceptions to define
3232         _dbus_error_name and have it be sent over the bus as the error name,
3233         and paves the way for cool stuff like heeding the message no reply
3234         flag, asynchronous method implementations, informing the method of the
3235         sender, and including backtraces in the error messages.
3236
3237         * test/python/test-client.py: Catch and print exceptions thrown in the
3238         async callback tests, rather than passing them to the low-level
3239         bindings to be ignored in a noisy and frustrating manner.
3240
3241 2005-11-03  Robert McQueen  <robot101@debian.org>
3242
3243         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
3244         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
3245         tweak others to be consistent.
3246
3247         * test/python/test-client.py: Tweak output of testInheritance.
3248
3249 2005-10-29  Robert McQueen  <robot101@debian.org>
3250
3251         * python/service.py: Major changes to allow multiple inheritance
3252         from classes that define D-Bus interfaces:
3253         
3254          1. Create a new Interface class which is the parent class of
3255             Object, and make the ObjectType metaclass into InterfaceType.
3256         
3257          2. Patch written with Rob Taylor to replace use of method_vtable
3258             with code that walks the class's __MRO__ (method resolution order)
3259             to behave like Python does when invoking methods and allow
3260             overriding as you'd expect. Code is quite tricky because
3261             we have to find two methods, the one to invoke which has the
3262             right name and isn't decorated with the /wrong/ interface,
3263             and the one to pick up the signatures from which is decorated
3264             with the right interface.
3265         
3266             The same caveats apply as to normal multiple inheritance -
3267             this has undefined behaviour if you try and inherit from two
3268             classes that define a method with the same name but are
3269             decorated with different interfaces. You should decorate
3270             your overriding method with the interface you want.
3271         
3272          3. Replace grungy introspection XML generation code in the metaclass
3273             with dictionaries that cope correctly with multiple inheritance
3274             and the overriding of methods. This also uses the signature
3275             decorations to provide correct introspection data, including
3276             the debut appearance of the types of your return values. :D
3277
3278         * test/python/test-client.py, test/python/test-service.py: Add a test
3279         case to try invoking an method that overrides one inherited from a
3280         D-Bus interface class.
3281
3282 2005-10-29  Robert McQueen  <robot101@debian.org>
3283
3284         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
3285         Add checking for the end of struct character when marshalling a
3286         struct in MessageIter.append_strict.
3287
3288         * python/examples/example-service.py,
3289         python/examples/gconf-proxy-service.py,
3290         python/examples/gconf-proxy-service2.py: Update to use gobject
3291         mainloop directly rather than appearing to depend on gtk.
3292
3293         * python/test/test-client.py, python/test/test-server.py: Remove
3294         obsolete and broken test scripts for old bindings. We have up to date
3295         and working tests in test/python/.
3296
3297 2005-10-29  Robert McQueen  <robot101@debian.org>
3298
3299         * python/decorators.py: Add optional arguments to the method and
3300         signal decorators to allow you to specify the signature of arguments
3301         and return values. Preserve the doc strings of signal functions in the
3302         decorated version, for pydoc and friends.
3303
3304         * python/dbus_bindings.pyx, python/proxies.py: Replace the
3305         parse_signature_block function with an iterable dbus.Signature()
3306         type. Fix a bug in MessageIter.append_strict where you could append
3307         anything by claiming it was a string.
3308
3309         * python/service.py: Use the out_signature decoration on methods to
3310         marshal return values, meaning you no longer require dbus.Array()
3311         or dbus.Dictionary() to indicate the type when returning empty
3312         arrays or dictionaries. Fix a bug where exceptions which are defined
3313         in __main__ are not turned into error replies.
3314
3315         * test/python/test-client.py, test/python/test-service.py: Add test
3316         for correct marshalling of return values according to out_signature.
3317         Fix a bug in the async call test where the error_handler is missing a
3318         self argument.
3319
3320 2005-10-29  Robert McQueen  <robot101@debian.org>
3321
3322         * glib/Makefile.am, glib/examples/Makefile.am,
3323         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
3324         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
3325
3326         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
3327
3328         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
3329         from Ubuntu by Daniel Silverstone to allow specifying match rules on
3330         the command line.
3331
3332 2005-10-27  Ross Burton  <ross@openedhand.com>
3333
3334         * dbus/dbus-marshal-header.c:
3335         Remove dead code.
3336
3337         * glib/dbus-gobject.c:
3338         Stop compiler warning.
3339
3340 2005-10-25  Ross Burton  <ross@openedhand.com>
3341
3342         * dbus/dbus-auth.c:
3343         * dbus/dbus-server-unix.c:
3344         * dbus/dbus-transport-unix.c:
3345         * glib/dbus-gmain.c:
3346         * glib/dbus-gobject.c:
3347         Add some const keywords.
3348
3349 2005-10-25  Ross Burton  <ross@openedhand.com>
3350
3351         * doc/dbus-specification.xml:
3352         Document the NoReply annotation.
3353
3354         * glib/dbus-binding-tool-glib.h:
3355         * glib/dbus-binding-tool-glib.c:
3356         Respect the NoReply annotation.
3357
3358 2005-10-24  Robert McQueen <robot101@debian.org>
3359
3360         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3361         derive from unicode instead of str, and encode/decode UTF-8 when
3362         marshalling/unmarshalling bus messages
3363
3364         * python/introspect_parser.py: encode introspection data as UTF-8
3365         before passing the buffer into libxml2
3366
3367         * test/python/test-client.py: add unicode test strings
3368
3369         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3370         ignore generated python test files
3371
3372 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3373
3374         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3375         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3376         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3377
3378         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3379         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3380         when constructing struct signatures
3381
3382         * python/_dbus.py (Bus): handle private connections using the
3383         private keyword in the constructor. defaults to private=False
3384         (Bus::close): new method to close a connection to the bus
3385
3386         * python/dbus_bindings.pyx (Connection::close): renamed method
3387         was previously called disconnect
3388         (bus_get): now supports getting a private connection
3389
3390         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3391         keyword is set to True.  if it is, execute the method without waiting
3392         for a reply
3393         (ProxyObject::_introspect_execute_queue): new method for executing
3394         all the pending methods that were waiting for the introspect to
3395         finish.  this is called when introspect either succeeds or fails
3396         (ProxyObject::_introspect_error_handler): call queued methods
3397
3398 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3399
3400         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3401         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3402
3403         * python/service.py (Object::_message_cb): handle exceptions correctly
3404         by sending them over the wire to the calling app.  This makes sure
3405         the client returns immediately instead of waiting the 15 seconds to
3406         timeout.
3407
3408         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3409         Add a test to benchmark how long it takes to introspect a service and 
3410         call a method which returns a large element (pretty fast)
3411
3412         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3413         method which pushes a lot of data
3414
3415 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3416
3417         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3418         reclaim memory outside of the loop and use del istead of just setting
3419         the key to None
3420
3421 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3422
3423         * python/service.py (ObjectType::_reflect_on_signal): Always close
3424         signal tag even when there are no arguments
3425
3426 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3427
3428         * configure.in: Set mono, mono-docs and Qt3 to default
3429         to no instead of auto when building.  These bindings do not
3430         have full time maintainers and will not be supported for the
3431         1.0 release.
3432
3433 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3434
3435         patches from Michael Krivoruchko <misha at sun.com>: 
3436         
3437         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3438         _dbus_connection_message_sent, 
3439         _dbus_connection_send_preallocated_unlocked_no_update, 
3440         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3441         is NULL when calling _dbus_verbose
3442
3443         * configure.in: check for functions getpeerucred and getpeereid
3444
3445         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3446         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3447         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3448         Patch was only tested on Solaris 10 x86 so it might be issues
3449         with other platforms (i.e. BSDs and MacOSX)
3450         
3451
3452 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3453
3454         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3455         instead of marshal basic so we can handle recursive types in a variant
3456
3457         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3458         in variants
3459
3460         * test/glib/test-service-glib.c, test-service-glib.xml
3461         (my_object_echo_variant [EchoVariant], 
3462         my_object_process_variant_of_array_of_ints123
3463         [ProcessVariantOfArrayOfInts123]): 
3464         Add two test methods
3465
3466         * python/introspect_parser.py: New module for parsing introspect
3467         data.
3468
3469         * python/dbus_bindings.pyx:
3470         (various places): when throwing errors fix to use errormsg instead 
3471         of message local variable because Pyrex can get confused with other 
3472         message variables (initial patch by Robert McQueen 
3473         <robert.mcqueen at collabora.co.uk>)
3474         (MessageIter::parse_signature_block): new method for getting the next
3475         block in a signiture.
3476         (MessageIter::append_strict): new method for appending values strictly
3477         using the passed in signature instead of guessing at the type
3478         (MessageItter:: append_dict, append_struct, append_array): use 
3479         signatures to marshal children if the signature is available
3480         
3481         * python/exceptions.py (IntrospectionParserException): new exception
3482
3483         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3484         introspected signatures if available, else we fall back to the
3485         old way of doing things.
3486         (ProxyObject::_introspect_reply_handler ): parse introspection data
3487         
3488         * python/service.py (ObjectType::_reflect_on_method): Properly
3489         terminate <method> if there are no args in the reflection data
3490
3491         * test/python/test-client.py: add tests for talking with the GLib
3492         test server.  This gives us better coverage for introspection since
3493         python to python will always generate arguments as variants.  It also
3494         allows us to test the robustness of the GLib bindings and interlanguage
3495         communications.
3496
3497         
3498 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3499
3500         * bus/driver.c (bus_driver_handle_introspect): Add signals
3501         to the introspect data. (patch from Daniel P. Berrange 
3502         <dan at berrange.com>)
3503
3504         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3505         
3506         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3507         _dbus_connection_run_builtin_filters): Changed these to
3508         be unlock_no_update functions and call 
3509         _dbus_connection_send_unlocked_no_update instead of
3510         dbus_connection_send to avoid locking errors.
3511         
3512         * doc/TODO: Removed the make Ping test TODO
3513         
3514 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3515
3516         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3517         We now copy the message from a DBusError and then free 
3518         the error object befor throwing the error
3519
3520         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3521         DBusBindingOutputMode enum which was causing a warning.
3522         #include <time.h> so using time_t is explicitly defined
3523
3524 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3525
3526         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3527         - dbus/dbus-bus.c
3528         (internal_bus_get): new method that take over the heavy lifting
3529         of dbus_bus_get and adds the ability to get a private connection
3530         to the bus
3531         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3532         interface as in previous versions
3533         (dbus_bus_get_private): new method that is a wrapper to 
3534         internal_bus_get to get a private connection to the bus
3535
3536         - dbus/dbus-bus.h
3537         (dbus_bus_get_private): add as a public libdbus interface
3538
3539         - dbus-1.pc.in: output system_bus_default_address and 
3540         sysconfdir variables so apps can use them when compiling
3541
3542 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3543         * dbus/qt: New Qt bindings
3544
3545 2005-09-12  Waldo Bastian  <bastian@kde.org>
3546
3547         * dbus/dbus-marshal-validate.c,
3548         doc/dbus-specification.xml, test/Makefile.am,
3549         test/test-names.c: allow hyphens in bus names.
3550
3551 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3552
3553         * test/data/auth/fallback.auth-script: we don't
3554         retry the EXTERNAL method when we know its going
3555         to fail anymore.
3556
3557 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3558
3559         * dbus/dbus-connection-internal.h: rename
3560         (add|remove|toggle)_(watch|timeout) to unlocked()
3561         
3562         * dbus/dbus-connection.c: ditto.
3563         
3564         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3565         Update some callers for the renaming.
3566
3567 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3568
3569         * dbus/dbus-auth.c: (record_mechanisms): don't
3570         retry the first auth mechanism because we know
3571         we're just going to get rejected again.
3572         
3573         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3574         Fix thinko ... and what a nasty little bugger to
3575         track down you were ...
3576
3577         * dbus/dbus-connection.c:
3578         (_dbus_connection_add_watch),
3579         (_dbus_connection_remove_watch): add note about
3580         these needing the connection to be locked.
3581         (_dbus_connection_get_dispatch_status_unlocked):
3582         set status to DATA_REMAINS when we queue the
3583         disconnected message.
3584         
3585         * bus/dispatch.c:
3586         (bus_dispatch): fix warning.
3587         (check_existent_service_no_auto_start):
3588         Expect ChildSignaled error too.
3589         (check_existent_hello_from_self): fix another
3590         couple of warnings.
3591         
3592 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3593
3594         Patches from James Willcox <snorp@snorp.net>
3595
3596         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3597
3598         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3599         support array "out" parameters.
3600
3601         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3602         for 16-bit int support.
3603
3604 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3605
3606         * Released 0.50
3607
3608         * Patch from Steve Grubb:
3609         - bus/activation.c (bus_activation_service_reload_test): clean up
3610         some indentation
3611         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3612         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3613         buffer overflows in the test suite.  This is non critical because
3614         it can not be exploited and this code is only run when doing a 
3615         make check.
3616
3617         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3618         - configure.in: Don't check and link against kdecore, only qt headers
3619         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3620         - gcj/org/freedesktop/dbus/Makefile.am:
3621         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3622         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3623         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3624         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3625         - tools/Makefile.am: Add platform extentions to binaries 
3626         (i.e. .exe on windows)
3627
3628         * configure.in: 
3629         - Make it so if no suitable version of python is found we only 
3630         disable building python instead of exiting the configure script
3631         - Require version 2.4 of glib for glib bindings
3632         - Up version to 0.50
3633
3634         * python/__init__.py: Sync version with libdbus to (0,50,0)
3635         
3636 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3637
3638         * dbus/dbus-object-tree.c (find_subtree_recurse):
3639         a couple of optimizations (bug #710):
3640         - do a binary search in the tree
3641         - insert a new child at the right place directly, no need for
3642           qsort anymore
3643         - do the "double alloc" thing when allocating children
3644
3645 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3646
3647         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3648
3649         * python/dbus_bindings.pyx: Memory management foo
3650         (global): remove hacky _user_data_references global list
3651         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3652         tuples. Unref user_data
3653         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3654         (Connection::__del__): Remove and replace with __dealloc__ method
3655         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3656         to keep tuple from being deallocated instead of the global var hack
3657         (Connection::register_object_path): Stuff user_data into a tuple.
3658         Use Py_INCREF to keep tuple from being deallocated instead of the 
3659         global var hack
3660         (Connection::register_fallback): Stuff user_data into a tuple.
3661         Use Py_INCREF to keep tuple from being deallocated instead of the 
3662         global var hack
3663         (GIL_safe_pending_call_notification): Don't unref the message
3664         because it gets unreffed when going out of scope.  Py_XDECREF
3665         the user_data
3666         (PendingCall::__del__): Remove and replace with __dealloc__ method
3667         (PendingCall::set_notify): ref the pending call because we will
3668         need it to stick around for when the notify callback gets called
3669         (Message::__del__): Remove and replace with __dealloc__ method
3670
3671         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3672         gthreads_init to match up with the dbus call
3673
3674         * python/glib.py (init_threads): Changed to threads_init to match
3675         up with gobject.threads_init().  init_threads is kept for backwards
3676         compat but will most likely be deprecated in the future
3677
3678         * test/python/test-client.py: 
3679         - revamp to use Python's unittest functionality
3680         - add async call tests
3681         - setup threads in glib and dbus so we make sure locks are working
3682         
3683 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3684
3685         * python/dbus_bindings.pyx 
3686         (_pending_call_notification, cunregister_function_handler, 
3687         cmessage_function_handler): All callback functions have been rearranged 
3688         to workaround a bug in Pyrex when working with the GIL which is Python's 
3689         global lock when dealing with threads.  They have been split into
3690         a wrapper function (which assumes the name of the old function) and
3691         a _GIL_safe_<function name> function which contains the functionality
3692         of the old function.  This ensures that Pyrex does not write code
3693         the lock is released.
3694         
3695
3696 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3697
3698         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3699         GIL global lock when calling back into Python
3700
3701 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3702
3703         * Release 0.36.2
3704
3705         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3706
3707         * bus/policy.c (bus_policy_allow_user): change default "user is
3708         allowed" to be "user has same uid as the bus itself"; any
3709         allow/deny rules will override.
3710
3711         * bus/session.conf.in: don't allow all users, since now by default
3712         the user that ran the bus can connect.
3713
3714 2005-08-26  Colin Walters  <walters@verbum.org>
3715
3716         * tools/dbus-print-message.c (print_message): Flush stdout
3717         after printing a message, so that redirecting to a file, then
3718         hitting Ctrl-C works.
3719
3720 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3721
3722         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3723         (EmptyMessage): new class that subclasses Message.  This is a workaround
3724         to a Pyrex bug that fails to call __del__ when the Message object goes out
3725         of scope.  For some reason subclassing Message fixes this bug
3726         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3727         - s/Message(_create=0)/EmptyMessage everywhere else
3728         
3729         * test/python/test-{server|client}.py: add the python/.libs directory
3730         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3731         get picked up from the system
3732
3733 2005-08-25  Colin Walters  <walters@verbum.org>
3734
3735         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3736         to Ryan Lortie for the suggestion.
3737
3738 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3739
3740         * test/python: Add python regression test
3741
3742         * configure.in: Add test/python/Makefile
3743
3744         * test/Makefile.am: Add the python directory to SUBDIRS
3745
3746 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3747
3748         * Release 0.36.1
3749
3750         * python/_dbus.py: 
3751         (Interface::connect_to_signal): propigate keywords for match on args
3752         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3753
3754         * python/proxies.py (ProxyObject::connect_to_signal):
3755         propigate keywords for match on args
3756
3757         * Makefile.am: point everything to pyexecdir since python borks
3758         on multilib
3759
3760 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3761
3762         * Release 0.36
3763
3764 2005-08-23  Colin Walters  <walters@verbum.org>
3765
3766         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3767
3768 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3769
3770         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3771         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3772         of defining DBusConnection ourselves.
3773
3774 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3775
3776         * python/dbus.pth: New path file to fix up problems when installing
3777         c libraries to lib64 and python files to lib.
3778
3779         * python/Makefile.am: install dbus.pth in the correct spot
3780
3781 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3782         * ChangeLog: clean up my last entry a bit
3783
3784         * doc/introspect.xsl: New stylesheet for converting introspection data
3785         into browser renderable xhtml. Contributed by Lennart Poettering.
3786
3787         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3788         Poettering.
3789
3790         * doc/dbus-tutorial.xml: 
3791         - Add Colin Walter to the Authors section for authoring the GLib
3792         section
3793         - Add descriptions of the new signature and type functionality
3794         in the Python complex type mapping section
3795         - Add a sidenote on the new args matching functionality in 
3796         the Python bindings
3797         - Fixed up some of the examples to use the gobject.MainLoop
3798         instead of gtk.main
3799         
3800         * python/_dbus.py:
3801         (Bus::_create_args_dict): New. Converts a hash of arg matches
3802         to a more useable format
3803         (Bus::add_signal_receiver): add a **keywords parameter for catching
3804         arg match parameters
3805         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3806         arg match parameters
3807         
3808         * python/matchrules.py:
3809         (MatchTree::exec_matches): Check for arg matches
3810         (SignalMatchRule::add_args_match): New method
3811         (SignalMatchRule::execute): Added args_list parameter as an optimization
3812         so we don't have to marshal the args more than once
3813         (SignalMatchRule::match_args_from_list): New method that checks to see
3814         if the rule's arg matches match an argument list.  Only arguments
3815         set in the rule are checked.
3816         (SignalMatchRule::match_args_from_rule): New method that checks to see
3817         if the rule's arg matches match another rule's.  All args have to match
3818         in order for this method to return true.  If either rule has more args
3819         then it is not a match.
3820         (SignalMatchRule::is_match): Add args match
3821         (SignalMatchRule::repr): Add args to the final output if they exist
3822
3823 2005-08-17  Ross Burton  <ross@burtonini.com>
3824
3825         * glib/dbus-gproxy.c:
3826         (dbus_g_proxy_call_no_reply): unref the message once sent.
3827         (dbus_g_proxy_call): protect against NULL proxy.
3828
3829 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3830
3831         * python/__init__.py: Version updated (0, 43, 0)
3832         
3833         * python/dbus_bindings.pyx: 
3834         - Fixed type objects to have self passed into __init__
3835         - Added the Variant type
3836         - Add the ability to specify types or signatures for Array, Variant 
3837         and Dictionary
3838         (Connection::send_with_reply_handlers): return a PendingCall object
3839         (_pending_call_notification): handle the case when an error is returned 
3840         without an error message in the body
3841         (MessageIter::get_boolean): return True or False instead of an integer
3842         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3843         and add checks for objects with embeded signatures or types (Array, 
3844         Variant and Dictionary)
3845         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3846         (MessageIter::append_dict): handle embeded types or signatures
3847         (MessageIter::append_array): handle embeded types or signatures
3848         (MessageIter::append_variant): new method
3849         
3850         * python/proxies.py:
3851         (DeferedMethod): New. Dummy executable object used when queuing calls 
3852         blocking on introspection data
3853         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3854         or shorter timeouts for method calls
3855         (ProxyObject): Add first pass at an introspection state machine
3856         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3857         introspection. 
3858         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3859         the usual mechanisms for sending messages.  This is to avoid a deadlock
3860         where the Intospect call would be queued waiting for the Introspect 
3861         call to finish ;-)
3862         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3863         when introspection returns with no error
3864         (ProxyObject::_introspect_error_handler): New.  This method is called 
3865         when introspection encounters an error
3866         (ProxyObject::__getattr__): Code to handle different introspection 
3867         states.  Queue async calls or block blocking calls if we are 
3868         introspecting.  Pass through as normal if we are not or are done with 
3869         introspecting.
3870         
3871         * python/service.py: Import signal and method from decorators.py
3872
3873         * python/types.py: Add Variant type
3874
3875 2005-08-16  Colin Walters  <walters@verbum.org>
3876
3877         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3878         DBusError message is NULL.
3879
3880 2005-08-09  Havoc Pennington  <hp@redhat.com>
3881
3882         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3883         malloc'd copy of the name parameter
3884
3885 2005-08-09  Havoc Pennington  <hp@redhat.com>
3886
3887         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3888         warning if the reply serial is set to 0
3889
3890 2005-08-04  Colin Walters  <walters@verbum.org>
3891
3892         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3893         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3894         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3895         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3896         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3897         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3898         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3899         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3900         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3901         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3902         
3903         Prefix name with _ to ensure they're not exported.  All callers
3904         updated.
3905
3906         * glib/dbus-gvalue.c (typecode_to_gtype)
3907         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3908         (signature_iter_to_g_type_dict)
3909         (signature_iter_to_g_type_array)
3910         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3911         (dbus_gtypes_from_arg_signature):
3912         Move to dbus-gsignature.c.
3913
3914         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3915         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3916         (dbus_binding_tool_output_glib_client): Ditto.
3917
3918         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3919         and dbus-gsignature.h
3920
3921         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3922         unused variable.
3923
3924 2005-08-03  Colin Walters  <walters@verbum.org>
3925
3926         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3927         catch any incompatible changes accidentally made.
3928
3929 2005-08-03  Havoc Pennington  <hp@redhat.com>
3930
3931         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3932         typo, from Julien Puydt
3933
3934         * bus/connection.c (bus_connection_disconnected): we were always
3935         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3936
3937 2005-08-01  Colin Walters  <walters@verbum.org>
3938
3939         Patch from Joe Markus Clarke:   
3940         
3941         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3942         use-after-free.
3943
3944 2005-08-01  Colin Walters  <walters@verbum.org>
3945         
3946         Patch from Joe Markus Clarke:   
3947         
3948         * tools/dbus-send.c (main): 
3949         
3950         Don't use C99 style initializers (bug #3933).
3951         
3952 2005-08-01  Colin Walters  <walters@verbum.org>
3953
3954         Patch from Joe Markus Clarke:   
3955
3956         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3957         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3958         * glib/dbus-gobject.c (write_interface):
3959
3960         Don't use C99 style initializers (bug #3933).
3961
3962 2005-07-31  Havoc Pennington  <hp@redhat.com>
3963
3964         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3965         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3966
3967 2005-07-30  Havoc Pennington  <hp@redhat.com>
3968
3969         * fix a bunch of Doxygen warnings and mistakes
3970
3971 2005-07-30  Havoc Pennington  <hp@redhat.com>
3972
3973         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3974         DBUS_BUILD_TESTS since it's now used in production code
3975
3976 2005-07-29  Havoc Pennington  <hp@redhat.com>
3977
3978         * test/glib/test-profile.c (write_junk): initialize the junk
3979         buffer so valgrind doesn't have a breakdown
3980
3981 2005-07-29  Havoc Pennington  <hp@redhat.com>
3982
3983         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3984         (match_rule_matches): remove unused arg
3985         (test_matching): add tests for match_rule_matches()
3986
3987         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3988         do arg0='foo' arg5='bar' in the match rules
3989         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3990
3991         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3992
3993 2005-07-29  Ross Burton  <ross@openedhand.com>
3994
3995         * dbus/dbus-connection.c:
3996         Don't create a DBusCondVar which is never used.
3997
3998 2005-07-27  Ross Burton  <ross@openedhand.com>
3999
4000         * dbus/dbus-message.c:
4001         Reduce the size of the maximum cached message to 10K.
4002
4003 2005-07-25  Ross Burton  <ross@openedhand.com>
4004
4005         * glib/dbus-gproxy.c:
4006         Remove matches when all proxies are unregistered.
4007
4008 2005-07-24  Colin Walters  <walters@verbum.org>
4009
4010         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
4011         typedata; recursive arrays won't have it.
4012
4013         * test/glib/test-dbus-glib.c:
4014         * test/glib/test-service-glib.c:
4015         * test/glib/test-service-glib.xml: Add recursive arrays tests.
4016         
4017 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
4018
4019         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
4020         proxies.py, service.py: Cleanup of code after running it through the
4021         pyflakes code checker mostly dealing with undefined names.  
4022         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
4023
4024 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
4025
4026         * NEWS: Update to 0.35.2
4027
4028 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
4029
4030         * python/_dbus.py: Remove import of the dbus.services
4031         module as it no longer exists (patch from Dimitur Kirov)
4032
4033         * python/service.py (Object::__init__): Fixed typo
4034         s/name/bus_name (patch from Dimitur Kirov)
4035
4036         * python/examples/example-signal-emitter.py: import dbus.glib
4037         to get the main loop and use glib mainloop instead of gtk so
4038         X doesn't have to be running.
4039
4040         * python/examples/example-signal-recipient.py: import dbus.glib
4041         to get the main loop and use glib mainloop instead of gtk so
4042         X doesn't have to be running. Import the decorators module
4043         directly.
4044
4045         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
4046         didn't pick up on but are needed to build
4047
4048         * configure.in: upped version to 0.35.2
4049
4050         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
4051         added Colin Walters' SELinux API rename patch from head 
4052         s/unix sercurity context/selinux security context/
4053
4054 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
4055
4056         * python/Makefile.am: dbus_binding.pxd.in should be included 
4057         in EXTRA_DIST not dbus_binding.pxd
4058         fix up $(srcdir) hopefully for the last time
4059
4060         * NEWS: Update to 0.35.1
4061
4062 2005-07-16  Colin Walters  <walters@verbum.org>
4063
4064         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
4065         from bus_driver_handle_get_connection_unix_security_context.  Update for
4066         error usage.
4067         (message_handlers): Update for renames.
4068
4069         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
4070         _dbus_string_init failure correctly.
4071         (bus_selinux_append_context): Convert SID to context.  Append it
4072         as a byte array.
4073         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
4074         hasn't been called.
4075
4076         * bus/selinux.h: Update prototype.
4077
4078         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
4079         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
4080
4081 2005-07-15  Colin Walters  <walters@verbum.org>
4082
4083         * doc/TODO: Add note about convenience wrappers.
4084
4085 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4086
4087         * NEWS: Update to 0.35
4088
4089 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4090
4091         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
4092         so distcheck doesn't fail
4093
4094         * glib/examples/Makefile.am: Add example-service.xml and 
4095         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
4096
4097         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
4098         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
4099
4100         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
4101         compiler looks in the right places during distcheck
4102
4103 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4104
4105         * glib/example/Makefile.am: Fix a typo which cause make distcheck
4106         to fail
4107
4108 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4109
4110         * python/examples/example-service.py,
4111         python/examples/example-signal-emitter.py: Fixed up examples
4112         for API changes
4113
4114 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4115
4116         * python/__init__.py: Upped to version (0,42,0) because of
4117         the API change
4118
4119 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4120
4121         * ChangeLog: fix date in last entry
4122
4123         * configure.in, bus/system.conf.in: add the ability to configure 
4124         the system bus user at compiletime with the --with-dbus-user flag
4125         (patch from Kristof Vansant)
4126
4127 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4128
4129         * bus/dispatch.c, test/test-service.c: Add testcase
4130         for sending messages to oneself (TODO item).
4131
4132         * python/service.py (class Object): Swap ordering of bus_name 
4133         and object_path parameters to better support inheritance.
4134
4135         * doc/dbus-tutorial.xml: change Python docs to reflect change
4136         in parameter ordering and fix the inheritance section.
4137
4138         * doc/TODO: remove sending message to oneself TODO item
4139
4140 2005-07-15  Ross Burton  <ross@openedhand.com>
4141
4142         * glib/dbus-gproxy.c:
4143         Fix a leak when calling methods via the proxy.
4144
4145 2005-07-15  Colin Walters  <walters@verbum.org>
4146
4147         * bus/selinux.c (bus_selinux_append_context): Wrap in
4148         HAVE_SELINUX.
4149
4150 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4151
4152         * python/_dbus.py (Bus::remove_signal_receiver):
4153         don't add a callback to the match if none has been passed in
4154         
4155         * python/matchrules.py (SignalMatchTree::remove): if the rule
4156         being matched does not have a callback treat it as a wildcard
4157         fix matching logic
4158
4159         * doc/dbus-tutorial.xml: Add Python tutorial
4160
4161 2005-07-14  Colin Walters  <walters@verbum.org>
4162
4163         * bus/driver.c
4164         (bus_driver_handle_get_connection_unix_security_context): New function.
4165         (message_handlers): Add.
4166
4167         * bus/selinux.c (bus_selinux_append_context): New function; appends
4168         security context to message.
4169
4170         * bus/selinux.h: Prototype.
4171
4172         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
4173
4174 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4175
4176         * bus/activation.c: clean up all tabs to be 8 spaces 
4177         (bus_activation_activate_service): make sure we clean up
4178         if activation fails
4179
4180         * bus/dispatch.c: clean up all tabs to be 8 spaces 
4181         (check_shell_fail_service_auto_start): New function
4182         tests to make sure we get fail properly when trying to auto start a service
4183         with a faulty command line
4184         (check_shell_service_success_auto_start): New function tests to make sure
4185         auto started services get the arguments on the command line
4186
4187         * test/test-shell-service.c: Added service for testing auto-starting with 
4188         command line arguments
4189
4190         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
4191         test/data/valid-service-files/debug-shell-echo-success.service.in:
4192         Added service files for testing auto-starting with command line arguments
4193
4194         * */.cvsignore: added a bunch of generated files to various .cvsignore files
4195
4196 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
4197
4198         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
4199         
4200         * dbus/Makefile.am: added new files to build.
4201
4202         * bus/activation.c (bus_activation_activate_service): support
4203         activation commands with parameters.
4204
4205         * test/shell-test.c: added test program for the shell parsing
4206         code.
4207
4208 2005-07-13  David Zeuthen  <davidz@redhat.com>
4209
4210         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
4211         64 bit signed and unsigned parameters
4212
4213 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
4214
4215         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
4216
4217         * python/service.py (class Name): renamed BusName to make it clearer
4218         what the object is for (a name on the bus)
4219
4220         * python/examples/example-service.py,
4221         python/examples/example-signal-emitter.py: change the Name object to
4222         BusName
4223
4224 2005-07-12  Colin Walters  <walters@verbum.org>
4225
4226         Patch from Jim Gettys <Jim.Gettys@hp.com>.
4227
4228         * tools/dbus-launch.c: Include sys/select.h.
4229
4230 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
4231         * python/dbus_bindings.pyx.in: removed
4232
4233         * python/dbus_bindings.pyx: Added.
4234         - Fixed some memleaks (patch from 
4235         Sean Meiners <sean.meiners@linspireinc.com>)
4236         - Broke out the #include "dbus_h_wrapper.h" and put it in its
4237         own pxd file (Pyrex definition)
4238         - Broke out glib dependancies into its own pyx module
4239         
4240         * python/dbus_bindings.pdx: Added.
4241         - Defines C class Connection for exporting to other modules
4242
4243         * python/dbus_glib_bindings.pyx: Added.
4244         - New module to handle lowlevel dbus-glib mainloop integration
4245
4246         * python/glib.py: Added.
4247         - Registers the glib mainloop when you import this module
4248
4249         * python/services.py: Removed (renamed to service.py)
4250         
4251         * python/service.py: Added.
4252         - (class Server): renamed Name
4253
4254         * python/__init__.py: Bump ro version (0,41,0)
4255         -don't import the decorators or service module
4256         by default.  These now reside in the dbus.service namespace
4257
4258         * python/_dbus.py (Bus::__init__): Add code run the main loop 
4259         setup function on creation 
4260
4261         * python/examples/example-service.py,
4262         python/examples/example-signal-emitter.py: update examples
4263
4264         * python/examples/gconf-proxy-service.py,
4265         python/examples/gconf-proxy-service2.py: TODO fix these up
4266
4267         * doc/TODO: Addition
4268         - Added a Python Bindings 1.0 section
4269         - added "Add match on args or match on details to match rules"
4270
4271
4272 2005-07-12  Colin Walters  <walters@verbum.org>
4273
4274         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
4275         (statemachine-glue.h): 
4276         * glib/examples/Makefile.am (example-service-glue.h) 
4277         (example-signal-emitter-glue.h): 
4278         * glib/Makefile.am (dbus-glib-error-switch.h): 
4279         Add libtool --mode=execute so we use the built library instead
4280         of any installed one.
4281
4282 2005-07-11  Colin Walters  <walters@verbum.org>
4283
4284         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
4285         (dbus_g_value_types_init): Remove assertion.
4286         (dbus_g_value_get_g_type, dbus_g_value_open)
4287         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
4288         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
4289         functions related to DBusGValue.  Now we marshal/demarshal
4290         structures as GValueArray.
4291         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
4292         structures.
4293         (signature_iter_to_g_type_array): Don't call
4294         signature_iter_to_g_type_struct.
4295         (signature_iter_to_g_type_struct): Delete.
4296         (dbus_gvalue_to_signature): Delete.
4297         (dbus_gvalue_to_signature): New function with same name as other
4298         one; we can convert structures to signatures.
4299         (demarshal_valuearray): New function.
4300         (get_type_demarshaller): Use it.
4301         (demarshal_recurse): Delete.
4302         (marshal_proxy): New function.
4303         (marshal_map): Warn if we can't determine signature from type.
4304         (marshal_collection_ptrarray): Ditto.
4305         (marshal_collection_array): Ditto.
4306         (get_type_marshaller): Use marshal_valuearray.
4307         (marshal_recurse): Delete.
4308         (_dbus_gvalue_test): Add some tests.
4309
4310         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
4311         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
4312         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4313         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4314         (dbus_g_value_free): Remove prototypes.
4315
4316         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
4317         G_TYPE_VALUE_ARRAY.
4318
4319         * glib/examples/example-service.c:
4320         * glib/examples/example-client.c: Implement GetTuple.
4321
4322         * test/glib/test-dbus-glib.c:
4323         * test/glib/test-service-glib.c:
4324         * test/glib/test-service-glib.xml: Add structure tests.
4325
4326 2005-07-10  Colin Walters  <walters@verbum.org>
4327
4328         * doc/TODO: Knock off some GLib items with this patch.
4329
4330         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
4331         (_dbus_gvalue_signals_error): New functions.
4332
4333         * glib/dbus-gvalue-utils.h: Prototype them.
4334
4335         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
4336         and change to not output const/retval flags for input args.  All
4337         callers updated.
4338         (invoke_object_method): Refactor to handle return values.  Add
4339         some more comments in various places.  Remove debug g_print.
4340
4341         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
4342
4343         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
4344         Handle G_TYPE_NONE.
4345         (compute_gsignature): New function; refactored from code from
4346         compute_marshaller and compute_marshaller_name.  Enhance to
4347         handle return values and async ops more cleanly.  Update for
4348         async ops returning NONE instead of BOOLEAN.
4349         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
4350         and output appropriate string.
4351         (generate_glue): Handle return value annotation.  Also don't dump
4352         constness flag for input arguments.
4353
4354         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
4355         files shared between installed library and utilities.
4356         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4357         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4358         binding tool can access gtype utility functions.
4359
4360         * test/glib/test-service-glib.c: 
4361         * test/glib/test-service-glib.xml: 
4362         * test/glib/test-dbus-glib.c: Add some tests for return values.
4363
4364 2005-07-09  Colin Walters  <walters@verbum.org>
4365
4366         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4367         argument if available, not method.
4368
4369         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4370         (invoke_object_method): First, remove some redundant
4371         GValues (object_value, error_value) in favor of working on
4372         array directly.  Second, rework constness to be less buggy.
4373         Now we iterate directly over the argument metadata instead
4374         of parallel iterating over output signature and metadata.
4375
4376         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4377
4378         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4379         annotation on input args.
4380         
4381 2005-07-09  Colin Walters  <walters@verbum.org>
4382
4383         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4384         Define.
4385
4386         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4387         annotation.
4388
4389         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4390         (method_dir_signature_from_object_info): Handle arg_iterate change.
4391         (write_interface): Ditto.
4392         (lookup_object_info): Don't barf if format_version is > 0.
4393         (invoke_object_method): Handle arg constness.
4394
4395         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4396         (arg_info_new): Create.
4397         (arg_info_unref): Destroy.
4398         (arg_info_get_annotations, arg_info_get_annotation) 
4399         (arg_info_add_annotation): New functions.
4400
4401         * glib/dbus-gidl.h: Prototype them.
4402
4403         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4404         args, disallow them in properties.
4405         (parse_annotation): Handle arg annotations.
4406
4407         * test/glib/test-service-glib.xml: 
4408         * test/glib/test-service-glib.c: Update to make some methods
4409         const.
4410
4411 2005-07-08  Colin Walters  <walters@verbum.org>
4412
4413         * test/glib/test-service-glib.xml: 
4414         * test/glib/test-service-glib.c:
4415         * test/glib/test-dbus-glib.c: Test a{sv}.
4416
4417         * glib/examples/statemachine/statemachine.c:
4418         * glib/examples/statemachine/statemachine-server.c:
4419         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4420         add progress bar, etc.
4421
4422         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4423         needed anymore due to generic array/map marshalling.
4424         (dbus_g_value_types_init): Don't register basic arrays or the
4425         string/string hash.
4426         (dbus_gtype_from_signature_iter): Don't try to recurse into
4427         variants.
4428         (dbus_gtype_to_signature): Check collection/map before type
4429         metadata.
4430         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4431         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4432         generic map creation/append functions instead of hash table
4433         specifically.
4434         (get_type_demarshaller): Handle maps.
4435         (demarshal_collection): Dispatch on collection type to either
4436         demarshal_collection_ptrarray or demarshal_collection_array.
4437         (get_type_marshaller): Handle maps.
4438         (marshal_collection): Dispatch collection type to either
4439         marshal_collection_ptrarray or marshal_collection_array.
4440         (_dbus_gvalue_test): New test.
4441
4442         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4443         (hash_free_from_gtype): Use it to free GValues.
4444         (hashtable_append): New function.
4445         (ptrarray_append): Fix prototype.
4446         (slist_append): Ditto.
4447         (_dbus_gvalue_utils_test): Extend tests.
4448
4449         * glib/dbus-gtype-specialized.c
4450         (dbus_g_type_specialized_init_append): Renamed from
4451         dbus_g_type_specialized_collection_init_append.  Remove const from
4452         value, since we steal it.
4453         (dbus_g_type_specialized_map_append): New function.
4454
4455         * glib/dbus-gtype-specialized.h: Update prototypes.
4456         Add DBusGTypeSpecializedMapAppendFunc.
4457
4458         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4459         _dbus_gvalue_test.
4460         
4461         * glib/dbus-gtest.h: Prototype it.
4462
4463 2005-07-08  Ross Burton  <ross@openedhand.com>
4464
4465         * dbus/dbus-glib.h:
4466         Add DBysGAsyncData for the async bindings.
4467
4468         * glib/dbus-binding-tool-glib.c:
4469         Re-enable the async bindings.
4470
4471         * test/glib/test-dbus-glib.c:
4472         Add a test for the generated async bindings.
4473
4474 2005-07-08  Colin Walters  <walters@verbum.org>
4475
4476         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4477         connection concept.
4478         
4479 2005-07-08  Colin Walters  <walters@verbum.org>
4480         
4481         * tools/Makefile.am: Kill of print-introspect in favor of using
4482         dbus-send --print-reply=literal.
4483
4484         * test/glib/test-service-glib.xml: 
4485         * test/glib/test-service-glib.c (my_object_get_objs): New test
4486         for "ao".
4487
4488         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4489         (main): Test GetObjs.
4490
4491         * glib/examples/statemachine/Makefile.am:
4492         * glib/examples/statemachine/sm-marshal.list:
4493         * glib/examples/statemachine/statemachine-client.c:
4494         * glib/examples/statemachine/statemachine-server.c:
4495         * glib/examples/statemachine/statemachine-server.xml:
4496         * glib/examples/statemachine/statemachine.c:
4497         * glib/examples/statemachine/statemachine.h:
4498         * glib/examples/statemachine/statemachine.xml:
4499
4500         New example.
4501
4502         * glib/examples/example-service.c (main): Move invocation
4503         of dbus_g_object_type_install_info earlier, to emphasize it
4504         should only be done once.
4505
4506         * glib/examples/example-signal-emitter.c (main): Ditto.
4507
4508         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4509
4510         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4511         (dbus_gvalue_marshal): Update prototypes.
4512
4513         * glib/dbus-gvalue.c: Update all marshalling functions to take
4514         const GValue instead of GValue.
4515         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4516         types.
4517         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4518         change.
4519         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4520         Return a newly-allocated string.
4521         (demarshal_proxy, demarshal_object_path, demarshal_object)
4522         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4523         we get the wrong types from message.
4524         (get_type_demarshaller): New function, extracted from
4525         dbus_gvalue_demarshal.
4526         (demarshal_collection): New function, demarshals generic
4527         collection.
4528         (dbus_gvalue_demarshal): Just invoke result of
4529         get_type_demarshaller.  Throw error if we don't have one.
4530         (marshal_garray_basic): Abort on OOM.
4531         (get_type_marshaller): New function, extracted from
4532         dbus_gvalue_marshal.
4533         (collection_marshal_iterator, marshal_collection): New functions;
4534         implements generic marshalling for an iteratable specialized
4535         collection.
4536         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4537
4538         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4539         G_TYPE_STRING.
4540         (ptrarray_value_from_gvalue): Ditto.
4541         (ptrarray_append, ptrarray_free): New functions.
4542         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4543         (slist_append, slist_end_append, slist_free): New functions.
4544         (dbus_g_type_specialized_builtins_init): Add append fuctions
4545         for GPtrArray and GSList.  Register GSList.
4546         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4547
4548         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4549         New.
4550         (dbus_g_type_specialized_collection_init_append)
4551         (dbus_g_type_specialized_collection_append)
4552         (dbus_g_type_specialized_collection_end_append): Prototype.
4553         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4554         end_append_func.
4555
4556         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4557         (dbus_g_type_specialized_collection_append) 
4558         (dbus_g_type_specialized_collection_end_append): New functions.
4559         (dbus_g_type_map_value_iterate): Take const GValue.
4560         (dbus_g_type_collection_value_iterate): Ditto.
4561
4562         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4563         _dbus_gvalue_utils_test.
4564         
4565         * glib/dbus-gtest.h: Prototype it.
4566
4567         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4568         using uninitialized owner_list.
4569         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4570         public API.
4571         (dbus_g_proxy_end_call_internal): Update to use error set
4572         from dbus_gvalue_demarshal instead of setting it here.
4573         (dbus_g_proxy_begin_call): Move return_if_fail here.
4574
4575         * glib/dbus-gobject.c (write_interface): Update for
4576         dbus_gtype_to_signature returning new string.
4577
4578         * configure.in: Add glib/examples/statemachine.
4579
4580 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4581
4582         * configure.in: Add a configure option, --with-console-auth-dir
4583         
4584         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4585         new setting.  Patch from Kay Sievers.
4586
4587 2005-07-06  Colin Walters  <walters@verbum.org>
4588
4589         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4590         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4591         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4592         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4593         Delete in favor of dbus_g_proxy_begin_call and
4594         dbus_g_proxy_cancel_call.
4595         (DBusGProxyCall, DBusGProxyCallNotify): New.
4596         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4597         data, and destroy function.  This replaces
4598         dbus_g_pending_call_set_notify.
4599         (dbus_g_proxy_cancel_call): Prototype.
4600         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4601
4602         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4603         pending_calls map.
4604         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4605         internal proxy for calls to the bus. Remove
4606         pending_nameowner_calls, now the internal proxy keeps track.
4607         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4608         pending_nameowner_calls.
4609         (got_name_owner_cb): Update prototype, and use
4610         dbus_g_proxy_end_call.
4611         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4612         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4613         favor of using internal proxy.
4614         (dbus_g_proxy_manager_unregister): Update to use
4615         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4616         (dbus_g_proxy_init): Initialize pending calls map.
4617         (dbus_g_proxy_constructor): New.
4618         (dbus_g_proxy_class_init): Add get/set property functions,
4619         constructor, and add NAME, PATH, and INTERFACE properties.
4620         (cancel_pending_call): New function.
4621         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4622         cancel them.
4623         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4624         (GPendingNotifyClosure): New structure.
4625         (d_pending_call_notify, d_pending_call_free): Moved here from
4626         dbus-glib.c.
4627         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4628         ordering.
4629         (manager_begin_bus_call): New internal function for talking to
4630         internal bus proxy.
4631         (dbus_g_proxy_new): Construct object using GObjet properties.
4632         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4633         Create closure of same, and insert call into map of pending calls.
4634         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4635         call.  Look up pending call in current set.  Remove it when we've
4636         completed.
4637         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4638         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4639         and destroy function directly.
4640         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4641         (dbus_g_proxy_call): Invoke with NULL callback.
4642         (dbus_g_proxy_cancel_call): New function, replaces
4643         dbus_g_pending_call_cancel.
4644
4645         * glib/dbus-gparser.c (validate_signature): Fix call to
4646         dbus_set_g_error.
4647
4648         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4649         New quark for attaching metadata to GType.
4650         (info_hash): Delete.
4651         (lookup_object_info): Look up using quark.
4652         (dbus_g_object_type_install_info): Check that a type is classed,
4653         not that it's an object.  Also just install type data using quark
4654         instead of using global hash.
4655
4656         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4657         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4658         (GPendingNotifyClosure): Delete.
4659         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4660         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4661
4662         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4663         client method generation until we can fix it...
4664         
4665         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4666         (load_from_service_thread_func): Ditto.
4667
4668         * tools/dbus-names-model.c (struct NamesModel): Hold
4669         DBusGProxyCall.
4670         (have_names_notify): Update prototype, use
4671         dbus_g_proxy_cancel_call.
4672         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4673
4674         * tools/dbus-monitor.c (filter_func): Update for print_message
4675         API change.
4676
4677         * test/glib/test-dbus-glib.c: Add more tests for async
4678         invocations.  Update many begin_call/end_call pairs to just use
4679         dbus_g_proxy_call.
4680
4681         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4682         allows us to dump print-introspect.c.
4683
4684         * tools/dbus-print-message.h (print_message): Add literal argument
4685         to print_message which is intended to allow printing arguments without
4686         metadata like "string=".
4687
4688         * tools/dbus-print-message.c (print_iter): Add literal argument.
4689         (print_message): Allow printing string messages literally.
4690
4691 2005-07-05  Colin Walters  <walters@verbum.org>
4692
4693         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4694         Remove value refcount leak, original patch from Jorn Baayen
4695         <jorn@openedhand.com>.  Also remove useless extra value in favor
4696         of prepending to value array directly.
4697
4698 2005-07-02  Colin Walters  <walters@verbum.org>
4699
4700         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4701
4702 2005-07-01  Colin Walters  <walters@verbum.org>
4703
4704         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4705         
4706         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4707         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4708         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4709         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4710
4711 2005-06-30  Colin Walters  <walters@verbum.org>
4712
4713         * test/glib/test-dbus-glib.c:
4714         * test/glib/test-service-glib.c:
4715         * test/glib/test-service-glib.xml: Update tests for new error
4716         setting bits, also add async tests (patch from Ross Burton).
4717
4718         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4719         DBUS_GLIB_THREADS_LIBS.
4720
4721         * glib/dbus-gproxy.c (get_name_owner)
4722         (dbus_g_pending_call_end_valist): Ditto.
4723
4724         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4725         domain (GQuark) to DBusGErrorInfo.  
4726         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4727         quark in error_metadata.  Take message interface as default
4728         error message interface.
4729         (gerror_to_dbus_error_message): Pass message interface.
4730         (dbus_set_g_error): Resurrected.
4731         (dbus_g_error_info_free): New function.
4732         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4733         of _peek to actually create the object class if it hasn't been
4734         created yet.
4735         (dbus_g_error_domain_register): New function.
4736
4737         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4738
4739         * glib/dbus-gparser.c (validate_signature): Ditto.
4740
4741         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4742         (dbus_g_error_domain_register): Prototype.
4743
4744         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4745         Update tests.
4746
4747 2005-06-29  Colin Walters  <walters@verbum.org>
4748
4749         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4750         DBUS_TYPE_G_OBJECT_PATH.
4751
4752         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4753         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4754         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4755         (dbus_g_object_path_get_g_type): New function.
4756         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4757         to DBUS_TYPE_G_OBJECT_PATH by default.
4758         (demarshal_proxy): Remove unused name variable.
4759         (demarshal_object_path, marshal_object_path): New functions.
4760         (demarshal_proxy_array, marshal_proxy_array): Delete.
4761         
4762         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4763         DBUS_TYPE_G_OBJECT_PATH to char *.
4764         (dbus_g_type_get_lookup_function): Map builtin
4765         DBUS_TYPE_G_OBJECT_PATH.
4766
4767         * test/glib/test-dbus-glib.c
4768         * test/glib/test-service-glib.c (my_object_objpath): 
4769         Adapt tests to new object path marshalling.
4770
4771 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4772
4773         * configure.in: force check for Python >= 2.4
4774
4775 2005-06-29  Colin Walters  <walters@verbum.org>
4776         
4777         Patch from Ross Burton <ross@openedhand.com>
4778         
4779         * glib/dbus-gobject.c (invoke_object_method): Unset object
4780         value in all cases, not only in async case.
4781
4782 2005-06-29  Colin Walters  <walters@verbum.org>
4783
4784         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4785         name_call for keeping track of any outgoing GetNameOwner call.
4786         Also add for_owner and associated.
4787         (struct _DBusGProxyManager): Add owner_names, which is hash table
4788         that maps a base name to a list of names it owns (that we're
4789         interested in).  Add pending_nameowner_calls which is a list of
4790         all outstanding GetNameOwner; avoids us having to iterate over
4791         every proxy.  Add unassociated_proxies which keeps track of name
4792         proxies with no associated name owner.
4793         (dbus_g_proxy_manager_unref): Destroy owner_names.
4794         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4795         name refcounts.
4796         (find_name_in_info, name_owner_foreach)
4797         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4798         (dbus_g_proxy_manager_monitor_name_owner)
4799         (dbus_g_proxy_manager_unmonitor_name_owner)
4800         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4801         New functions; they manipulate the owner_names mapping.
4802         (got_name_owner_cb): New function.
4803         (get_name_owner): New function, extracted from
4804         dbus_g_proxy_new_for_name_owner.
4805         (dbus_g_proxy_manager_register): For now we need to keep track of
4806         all NameOwnerChanged.  Also if the proxy is for a name, if we
4807         don't already know the name owner, queue a new GetNameOwner
4808         request and add it to our list of unassociated proxies.  Otherwise
4809         inc the refcount.
4810         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4811         cancel any pending GetNameOwner call, etc.
4812         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4813         the owner_names mapping to look up the current names for the
4814         signal source, and dispatch to any proxies for that name.
4815         (dbus_g_proxy_new): Initialize new members.
4816         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4817         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4818         (dbus_g_pending_call_end_valist): New function, extracted from
4819         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4820         but want to use the GLib infrastructure.  Also note how many
4821         arguments in reply were over.
4822         (dbus_g_pending_call_end): New function, just call
4823         dbus_g_pending_call_end_valist.
4824         (dbus_g_proxy_end_call_internal): Just call
4825         dbus_g_pending_call_end_valist.
4826
4827         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4828         of builtin marshaller for STRING_STRING_STRING.
4829
4830         * test/glib/test-dbus-glib.c: 
4831         * test/glib/test-service-glib.c:
4832         * test/glib/test-service-glib.xml:
4833         Extend tests to cover name proxies, destruction of owner proxies,
4834         etc.
4835         
4836         * glib/examples/example-signal-recipient.c
4837         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4838         
4839         * tools/dbus-send.c (main): Print D-BUS error name in addition
4840         to message.
4841
4842 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4843
4844         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4845         cmessage_function_handler): Patch from 
4846         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4847         by using the Py_GILState_Ensure/Release to synchronize with the
4848         python runtime.
4849         
4850 2005-06-28  Ray Strode  <rstrode@redhat.com>
4851
4852         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4853         babysitter helper process on last unref, bug #2813.
4854
4855 2005-06-27  Colin Walters  <walters@verbum.org>
4856
4857         * test/glib/test-dbus-glib.c: 
4858         * test/glib/test-service-glib.c:
4859         * test/glib/test-service-glib.xml:
4860         Test hash table signal emitting.
4861
4862         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4863         types to their fundamental basis types, since this is what
4864         marshallers operate on.  Also add an entry for VOID__BOXED.
4865         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4866
4867 2005-06-26  Havoc Pennington  <hp@redhat.com>
4868
4869         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4870         from Don Park
4871
4872 2005-06-26  Colin Walters  <walters@verbum.org>
4873
4874         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4875         (dbus_g_error_set): New public function from its ashes; used by
4876         both service-side method implementation and GLib bindings
4877         internals.
4878         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4879         (_dbus_glib_test): Add some tests.
4880
4881         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4882
4883         * test/glib/test-service-glib.c (my_object_throw_error): Use
4884         dbus_g_error_set.
4885
4886         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4887         errors thrown by dbus_g_error_set.
4888
4889         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4890
4891         * glib/dbus-gparser.c (validate_signature): Ditto.
4892
4893         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4894         (dbus_g_proxy_end_call_internal): Ditto.
4895
4896         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4897         converts DBUS_ERROR_x to DBUS_GERROR_x.
4898         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4899
4900         * doc/TODO: Remove error TODO.
4901
4902         * doc/dbus-tutorial.xml: Update with documentation about error
4903         handling.
4904
4905         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4906         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4907         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4908
4909 2005-06-22  Colin Walters  <walters@verbum.org>
4910         
4911         Patch from Ross Burton <ross@openedhand.com>
4912
4913         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4914
4915 2005-06-20  Colin Walters  <walters@verbum.org>
4916
4917         * configure.in: Add glib/examples.
4918
4919         * glib/Makefile.am: Add examples/
4920
4921         * glib/examples/.cvsignore
4922         * glib/examples/Makefile.am
4923         * glib/examples/example-client.c
4924         * glib/examples/example-service.c
4925         * glib/examples/example-service.xml
4926         * glib/examples/example-signal-emitter.c
4927         * glib/examples/example-signal-emitter.xml
4928         * glib/examples/example-signal-recipient.c:
4929         New files; GLib binding examples, ported from
4930         python/examples.
4931
4932 2005-06-20  Colin Walters  <walters@verbum.org>
4933
4934         * dbus/dbus-glib.h: 
4935         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4936         dbus_g_proxy_call.
4937
4938         * glib/dbus-binding-tool-glib.c: 
4939         * doc/dbus-tutorial.xml: 
4940         * test/glib/test-dbus-glib.c: Update for rename.
4941         
4942 2005-06-20  Colin Walters  <walters@verbum.org>
4943
4944         Patch suggested by Ross Burton <ross@openedhand.com>
4945
4946         * glib/dbus-gobject.c (export_signals): Free signal name.
4947         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4948         memory leak.  Add a bit of documentation.
4949         (dbus_g_method_return_error): Free context, and note we do
4950         so.
4951
4952 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4953
4954         * dbus/dbus-glib.h:
4955         * glib/dbus-gobject.c:
4956         * glib/dbus-gproxy.c:
4957         * glib/dbus-gvalue.c: Predeclare structs as 
4958         typedef struct _Something Something instead of 
4959         typedef struct Something Something, so we can 
4960         redeclare the prototypes. Other GNOME libraries 
4961         do this already.
4962
4963 2005-06-17  Colin Walters  <walters@verbum.org>
4964
4965         * tools/dbus-names-model.c (have_names_notify): Fix call
4966         to dbus_g_proxy_end_call.
4967         
4968 2005-06-17  Colin Walters  <walters@verbum.org>
4969
4970         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4971         spew warnings if we get malformed remote signals.
4972
4973         * glib/dbus-gobject.c (propsig_iterate): New function.
4974         (lookup_object_info): New function, extracted from
4975         lookup_object_and_method.
4976         (introspect_properties, introspect_signals): Delete; these
4977         are merged into write_interface.
4978         (write_interface): Write out signals and properties here;
4979         dump the org.gtk.object stuff and use the interface given
4980         in the introspection data blob.  Also fix up property XML.
4981         (lookup_values): New function.
4982         (introspect_interfaces): Gather a mapping from interface to a
4983         list of its methods, signals, and properties, then write out
4984         each interface.
4985         (lookup_object_and_method): Use lookup_object_info.
4986         (struct DBusGSignalClosure): Add interface.
4987         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4988         we can just use the constant data.
4989         (dbus_g_signal_closure_finalize): Don't free signal name.
4990         (signal_emitter_marshaller): Use interface from signal closure.
4991         (export_signals): Only export signals mentioned in introspection
4992         blob.
4993         (dbus_g_connection_register_g_object): Warn if we have no
4994         introspection data for an object.
4995         (funcsig_equal): Remove unused variable.
4996         (dbus_g_object_register_marshaller): Take varargs instead of
4997         list.
4998         (dbus_g_object_register_marshaller_array): New function,
4999         extracted from old dbus_g_object_register_marshaller.
5000
5001         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
5002         signals and property data.
5003         (write_quoted_string): New function, extracted from generate_glue.
5004         (generate_glue): Write signals and properties to introspection
5005         blob.
5006
5007         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
5008         exported_signals and exported_properties.
5009         (dbus_g_object_register_marshaller): Update prototype.
5010         (dbus_g_object_register_marshaller_array): Prototype.
5011         
5012         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
5013
5014         * test/glib/test-service-glib.c: Add new test signals and method
5015         to emit them.
5016
5017         * test/glib/test-service-glib.xml: Add some test signals.
5018
5019         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
5020         and my-object-marshal.h
5021         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
5022         my-object-marshal.c.
5023         (my-object-marshal.c, my-object-marshal.h): Implement.
5024
5025         * test/glib/.cvsignore: Update.
5026
5027         * doc/TODO: Remove two GLib TODO items fixed by this
5028         patch.
5029
5030 2005-06-16  Colin Walters  <walters@verbum.org>
5031
5032         * doc/TODO: Update for GLib bindings.
5033         
5034 2005-06-16  Colin Walters  <walters@verbum.org>
5035
5036         * glib/dbus-binding-tool-glib.c:
5037         * glib/dbus-gobject.c:
5038         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
5039         from Ross Burton, for his GLib bindings work.
5040
5041 2005-06-16  Colin Walters  <walters@verbum.org>
5042
5043         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
5044         to iterate instead of walking to G_TYPE_INVALID.
5045
5046         Patch based on a patch from Ryan Gammon.
5047
5048 2005-06-16  Colin Walters  <walters@verbum.org>
5049
5050         * bus/bus.c (bus_context_new): Set parser to NULL
5051         after we unref it (Patch from Chris Boscolo, #2174).
5052         
5053 2005-06-16  Colin Walters  <walters@verbum.org>
5054
5055         * python/dbus_bindings.pyx.in: Import size_t,
5056         __int64_t, __uint64_t, and __signed.
5057
5058         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
5059         Define cmsg struct, output it.
5060         (_dbus_read_credentials_unix_socket):
5061         Use cmsg struct.
5062         
5063         Patch from Joe Markus Clarke for FreeBSD support.
5064         
5065 2005-06-16  Colin Walters  <walters@verbum.org>
5066
5067         * tools/dbus-send.c (append_array): Use strtok.
5068         (append_dict): New function.
5069         (type_from_name): New function, extracted from main.
5070         (main): Handle sending dicts.
5071
5072         * tools/dbus-print-message.c (print_iter): Print dict
5073         entries.
5074         
5075 2005-06-16  Colin Walters  <walters@verbum.org>
5076
5077         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
5078         values as the empty string (#2948).
5079         
5080 2005-06-16  Colin Walters  <walters@verbum.org>
5081
5082         * dbus/Makefile.am:
5083         * mono/doc/Makefile.am:
5084         * test/glib/Makefile.am:
5085
5086         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
5087
5088 2005-06-16  Colin Walters  <walters@verbum.org>
5089
5090         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
5091         header byte order from expected byte order (Patch from Chris Wilson, #3475).
5092
5093         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
5094         Increment pointer after swapping fixed array.  Add assertion
5095         for array length.
5096                 
5097 2005-06-15  Colin Walters  <walters@verbum.org>
5098
5099         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
5100         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
5101         
5102 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5103
5104         * NEWS: Update to 0.34
5105
5106 2005-06-15  David Zeuthen  <davidz@redhat.com>
5107
5108         * configure.in (LT_CURRENT): Revert back to 1 as the library
5109         hasn't changed and we've certainly not committed to protocol
5110         stability yet.  All this does is to break ABI. See commit note
5111         from hp@redhat.com 2005-05-05 for details.
5112         
5113 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5114
5115         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
5116         (_dbus_connection_run_builtin_filters): New method
5117         (dbus_connection_dispatch): Run the builtin filters which in turn
5118         runs the peer filter which handles Ping messages.
5119
5120         * doc/TODO: 
5121          - Ping isn't handled: This patch fixes it
5122          
5123          - Add a test case for the Ping message: added TODO item
5124
5125 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5126
5127         * dbus/dbus-message.c:
5128         (dbus_message_has_path): New method
5129         (dbus_message_has_interface): New method
5130         (dbus_message_has_member): New method
5131
5132         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
5133         New method
5134
5135         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
5136         the keyring directory is private to the user
5137
5138         * doc/TODO:
5139          - The convenience functions in dbus-bus.h should perhaps have
5140          the signatures that they would have if they were autogenerated
5141          stubs. e.g. the acquire service function. We should also evaluate
5142          which of these functions to include, in light of the fact that
5143          GLib/Qt native stubs will probably also exist.: Punted
5144
5145          - add dbus_message_has_path(), maybe has_member/interface:
5146          fixed in this patch
5147
5148          - in dbus-keyring.c, enforce that the keyring dir is not
5149          world readable/writable: Fixed in this patch
5150
5151 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5152
5153         * dbus/dbus-marshal-validate.h: Added a new validation
5154         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
5155         out of memory errors when validating signitures
5156
5157         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
5158         in places where we previously used DBUS_VALID and a FALSE return 
5159         value to indicate OOM
5160         
5161         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
5162         Use a stack to track the number of elements inside containers.  The 
5163         stack values are then used to validate that dict entries have only two
5164         elements within them.
5165         (validate_body_helper): check the reason for failure when validating
5166         varients
5167         
5168         * dbus/dbus-message.c (load_message): use 
5169         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
5170         DBUS_VALID and a FALSE return value to indicate OOM
5171
5172         * doc/TODO: remove "- validate dict entry number of fields" as this
5173         patch fixes it
5174
5175 2005-06-14  David Zeuthen  <davidz@redhat.com>
5176
5177         * bus/bus.c (process_config_every_time): Drop existing conf-dir
5178         watches (if applicable) and add new watches
5179
5180         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
5181         (main): Setup SIGIO signal handler if using D_NOTIFY
5182
5183         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
5184
5185         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
5186         (merge_included): Also merge conf_dirs list
5187         (bus_config_parser_unref): Clear conf_dirs list
5188         (include_dir): Add directory to conf_dirs list
5189         (bus_config_parser_get_conf_dirs): New function
5190
5191         * bus/dir-watch.[ch]: New files
5192
5193         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
5194
5195         * configure.in: Add checks for D_NOTIFY on Linux
5196
5197 2005-06-14  Colin Walters  <walters@verbum.org>
5198
5199         * glib/dbus-binding-tool-glib.c:
5200         * glib/dbus-gobject.c:
5201         * glib/dbus-gvalue.c: Fix indentation and brace style.
5202         
5203 2005-06-14  Ross Burton <ross@openedhand.com>.
5204
5205         * glib/dbus-glib.h: Make DBusGMethodInvocation
5206         a private structure.  Rearrange prototypes a bit.
5207         
5208         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
5209         documentation for first_arg_type.
5210         
5211         * glib/dbus-gobject.c: Move DBusGMethodInvocation
5212         here, add documentation.  Move dbus_g_method_return
5213         and dbus_g_method_return_error into public API
5214         section.
5215
5216 2005-06-14  Colin Walters  <walters@verbum.org>
5217
5218         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
5219         Add missing return statements, noticed by Ross Burton.
5220         
5221 2005-06-13  Ross Burton <ross@openedhand.com>.
5222
5223         * glib/dbus-gobject.c: Handle errors on message
5224         demarshalling by sending error message back.
5225         * glib/dbus-gvalue.c: Initialize return variables.
5226
5227 2005-06-13  Colin Walters  <walters@verbum.org>
5228
5229         * glib/Makefile.am: Fix thinko in last patch.
5230
5231 2005-06-13  Colin Walters  <walters@verbum.org>
5232
5233         * glib/Makefile.am: Move dbus-gtype-specialized.c
5234         and dbus-gtype-specialized.h into a _HEADERS variable,
5235         install them.
5236
5237 2005-06-12  Colin Walters  <walters@verbum.org>
5238
5239         Async signals and various bugfixes and testing by
5240         Ross Burton <ross@openedhand.com>.
5241
5242         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
5243         (dbus_gvalue_genmarshal_name_from_type)
5244         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
5245         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
5246         (dbus_g_value_types_init, dbus_gtype_from_signature)
5247         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
5248         (dbus_gtypes_from_arg_signature): New function prototypes.
5249         (dbus_gvalue_demarshal): Take context and error arguments.
5250         (dbus_gvalue_demarshal_variant): New function.
5251         (dbus_gvalue_demarshal_message): New function.
5252         (dbus_gvalue_store): Delete.
5253
5254         * glib/dbus-gvalue.c:
5255
5256         File has been almost entirely rewritten; now we special-case
5257         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
5258         hash tables correctly, etc.  Full support for recursive values
5259         is not yet complete.
5260
5261         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
5262         argument of signal to G_TYPE_POINTER since we now pass a
5263         structure.
5264         (lookup_g_marshaller): Delete in favor of
5265         _dbus_gobject_lookup_marshaller.
5266         (marshal_dbus_message_to_g_marshaller): Use
5267         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
5268         to handle remote signal callbacks.
5269         (dbus_g_proxy_new_from_proxy): New function; creates a new
5270         DBusGProxy by copying an existing one.
5271         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
5272         (dbus_g_proxy_get_path): New functions.
5273         (dbus_g_proxy_marshal_args_to_message): New function;
5274         factored out of existing code.
5275         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
5276         from a varargs array.
5277         (dbus_g_proxy_begin_call_internal): New function.
5278         (dbus_g_proxy_end_call_internal): New function.
5279         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
5280         as arguments; simply invoke dbus_g_proxy_begin_call_internal
5281         after collecting args into value array.
5282         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
5283         invoke dbus_g_proxy_end_call_internal.
5284         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
5285         end_call_internal.
5286         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
5287         types.
5288         (array_free_all): New function.
5289         (dbus_g_proxy_add_signal): Take GTypes.
5290
5291         * glib/dbus-gobject.h:
5292         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5293         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
5294         Prototype.
5295
5296         * glib/dbus-gobject.c: Add a global marshal_table hash which
5297         stores mappings from type signatures to marshallers.  Change lots
5298         of invocations of dbus_gtype_to_dbus_type to
5299         dbus_gtype_to_signature.
5300         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5301         (introspect_signals): Fix test for query.return_type.
5302         (set_object_property): Update invocation of dbus_gvalue_demarshal.
5303         (invoke_object_method): Many changes.  Handle asynchronous
5304         invocations.  Convert arguments with
5305         dbus_gvalue_demarshal_message.  Handle errors.  Use
5306         DBusSignatureIter instead of strlen on args. Handle all arguments
5307         generically.  Special-case variants.
5308         (dbus_g_method_return, dbus_g_method_return_error): New function.
5309         (DBusGSignalClosure): New structure, closes over signal
5310         information.
5311         (dbus_g_signal_closure_new): New function.
5312         (dbus_g_signal_closure_finalize): New function.
5313         (signal_emitter_marshaller): New function; is special marshaller
5314         which emits signals on bus.
5315         (export_signals): New function; introspects object signals and
5316         connects to them.
5317         (dbus_g_object_type_install_info): Take GType instead of
5318         GObjectClass.
5319         (dbus_g_connection_register_g_object): Invoke export_signals.
5320         (dbus_g_connection_lookup_g_object): New function.
5321         (DBusGFuncSignature) New structure; used for mapping type
5322         signatures to marshallers.
5323         (funcsig_hash): New function; hashes DBusGFuncSignature.
5324         (funcsig_equal): New function; compares DBusGFuncSignature.
5325         (_dbus_gobject_lookup_marshaller): New function.
5326         (dbus_g_object_register_marshaller): New function; used to
5327         register a marshaller at runtime for a particular signature.
5328
5329         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
5330
5331         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
5332         which notes a server method implementation should be
5333         asynchronous.
5334
5335         * glib/dbus-binding-tool-glib.c
5336         (dbus_binding_tool_output_glib_server): Call
5337         dbus_g_value_types_init.
5338         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
5339         variants specially.
5340         (dbus_g_type_get_lookup_function): Turn GType into an invocation
5341         of a lookup function.
5342         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
5343         (write_untyped_out_args): New method; write output arguments.
5344         (write_formal_declarations_for_direction): Function for
5345         writing prototypes.
5346         (write_formal_parameters_for_direction): Function for
5347         writing implementations.
5348         (write_typed_args_for_direction): Function for writing
5349         arguments prefixed with GTypes.
5350         (write_async_method_client): Write out async version
5351         of method.
5352
5353         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
5354         (dbus_g_type_get_marshal_name): Move mapping from GType
5355         to marshal name into here.
5356         (dbus_g_type_get_c_name): Move into here.
5357         (compute_marshaller): Convert signature to type with
5358         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5359         (compute_marshaller_name): Ditto.
5360         (compute_marshaller): Handle async signal annotations.
5361         (gather_marshallers): Return if we don't have a known
5362         prefix.
5363         (generate_glue): Collect introspection blob here, and
5364         write all of the blob at the end.  This allows an object
5365         with multiple interfaces to work.
5366         Mark async methods in introspection blob.
5367
5368         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5369         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5370         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5371
5372         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5373         avoids people accidentally using DBUS_TYPE_* which should
5374         not be necessary anymore.
5375         Do include dbus-gtype-specialized.h, which are utilities
5376         for GLib container types.
5377         Add various #defines for types such as
5378         DBUS_TYPE_G_BOOLEAN_ARRAY.
5379         (DBusGValueIterator, DBusGValue): Define, not fully used
5380         yet.
5381         (dbus_g_value_get_g_type): Type for recursive value.
5382         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5383         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5384         (dbus_g_value_free): Prototypes.
5385         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5386         (dbus_g_proxy_set_interface): Prototype.
5387         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5388         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5389         types.
5390         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5391         Accessors.
5392         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5393         doing async invocations.
5394         (dbus_g_method_return, dbus_g_method_return_error):
5395         Prototypes.
5396         * doc/dbus-tutorial.xml: Update GLib section.
5397         
5398         * tools/dbus-viewer.c (load_child_nodes): Update
5399         for new invocation type of dbus_g_proxy_end_call.
5400         (load_from_service_thread_func): Ditto.
5401
5402         * tools/print-introspect.c (main): Ditto.
5403
5404         * tools/dbus-names-model.c (have_names_notify)
5405         (names_model_reload, names_model_set_connection)
5406         Use GTypes.
5407
5408         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5409         needed since Python bindings use GLib bindings.
5410
5411         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5412         Add --prefix argument.
5413
5414         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5415         unneeded --ignore-unsupported arg.
5416         
5417         * test/glib/test-service-glib.c: 
5418         * test/glib/test-service-glib.xml:
5419         * test/glib/test-dbus-glib.c: Add many more tests.
5420
5421 2005-06-06  David Zeuthen  <davidz@redhat.com>
5422
5423         * doc/TODO: Add item about need to remove deprecated functions.
5424
5425         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5426
5427         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5428         to repair the ABI which was broken with the last commit.
5429
5430 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5431
5432         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5433         (dbus_connection_disconnect): renamed to dbus_connection_close 
5434         for API symmetry with dbus_connection_open
5435         (_dbus_connection_open_internal): 
5436         s/dbus_connection_disconnect/dbus_connection_close
5437
5438         * dbus/dbus-bus.c (dbus_bus_get):
5439         s/dbus_connection_disconnect/dbus_connection_close
5440
5441         * bus/connection.c (bus_connections_unref, 
5442         bus_connections_setup_connection, bus_connections_expire_incomplete):
5443         s/dbus_connection_disconnect/dbus_connection_close
5444
5445         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5446         kill_client_connection_unchecked, check_hello_connection):
5447         s/dbus_connection_disconnect/dbus_connection_close
5448
5449         * bus/bus.c (new_connection_callback):
5450         s/dbus_connection_disconnect/dbus_connection_close
5451
5452         * tools/dbus-send.c (main):
5453         s/dbus_connection_disconnect/dbus_connection_close
5454
5455         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5456         s/dbus_connection_disconnect/dbus_connection_close
5457         
5458         * test/test-service.c (path_message_func, filter_func):
5459         s/dbus_connection_disconnect/dbus_connection_close
5460         
5461         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5462         
5463 2005-05-25  Colin Walters  <walters@verbum.org>
5464
5465         * dbus/dbus-protocol.h: Move various bus service #defines such
5466           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5467           dbus/dbus-shared.h.
5468         * dbus/dbus-shared.h: Various defines moved here.
5469         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5470
5471 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5472
5473         * python/__init__.py: Python bindings deserve a minor version
5474         update.  Upped to (0, 40, 2)
5475
5476 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5477
5478         * python/decorators.py: add explicitly_pass_message decorator
5479         for passing in the dbus message as keyword for edge case signal
5480         handling
5481
5482         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5483         to conform with what dbus expects for match rules
5484         (SignalMatchRule.execute): add the dbus message as a keyword
5485         if the signal handler has requested it
5486
5487         * python/examples/example/signal-recipient.py: added some more
5488         examples on how to hook up to signals
5489
5490 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5491
5492         * python/decorators.py: import dbus_bindings
5493
5494         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5495         SignalMatchNode): new classes that implement wildcard signal
5496         callback matching using a tree lookup. Heavily modified from a
5497         patch sent by Celso Pinto (fd.o bug #3241)
5498
5499         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5500         use new match classes to handle signals.
5501
5502 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5503         
5504         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5505
5506 2005-05-18  Havoc Pennington  <hp@redhat.com>
5507
5508         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5509         gettext. Not really worth requiring yet perhaps, but any
5510         production quality 1.0 would require it so we should go ahead and
5511         get things set up. We do have a couple token calls to
5512         bindtextdomain in the code already.
5513
5514 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5515
5516         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5517         when using recursive g_main_loops
5518
5519         * python/_dbus.py (class Bus): add the ProxyObjectClass
5520         alias for ProxyObject to make it easier for the Twisted 
5521         networking framework to integrate dbus.
5522
5523         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5524         alias for ProxyMethod to make it easier for the Twisted 
5525         networking framework to integrate dbus. 
5526
5527 2005-05-11  Ross Burton  <ross@openedhand.com>
5528
5529         * glib/dbus-glib-tool.c: Add --prefix argument.
5530         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5531         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5532         Add prefix argument.
5533         (generate_glue): Pass prefix argument down.
5534         (dbus_binding_tool_output_glib_server): Pass prefix to
5535         glib-genmarshal.
5536         
5537 2005-05-11  Colin Walters  <walters@verbum.org>
5538
5539         * tools/dbus-send.c (append_array): New function.
5540         (append_arg): Broken out from main.
5541         (main): Add cheesy hack to send arrays and variants.
5542         (usage): Update.
5543         * tools/dbus-print-message.c (print_iter): Broken out
5544         from main.
5545
5546 2005-05-11  Colin Walters  <walters@verbum.org>
5547
5548         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5549         New function, returns signature string for signature iter.
5550         * dbus/dbus-signature.h: Prototype it.
5551         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5552         New function, returns signature string for message iter.
5553         (dbus_message_iter_get_array_len): New function, returns
5554         length of array.
5555         (dbus_message_iter_get_fixed_array): Fix assertion; this
5556         function should be used when the iter is pointing to the
5557         contents of an array
5558         * dbus/dbus-message.h: Prototypes.
5559         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5560         New function; returns length of an array.
5561         * dbus/dbus-marshal-recursive.h: Prototype it.
5562         
5563 2005-05-11  Colin Walters  <walters@verbum.org>
5564
5565         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5566         compilation error.
5567         
5568 2005-05-08  Havoc Pennington  <hp@redhat.com>
5569
5570         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5571         daemon's pid, not the parent's pid, to the file descriptor.
5572         Reported by Taj Morton.
5573
5574 2005-05-05  Havoc Pennington  <hp@redhat.com>
5575
5576         * configure.in (LT_*): add notes on how the libtool versioning
5577         works to save thinking. Increment soname to indicate protocol
5578         breakage (though really the library interface hasn't changed I
5579         guess)
5580
5581         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5582         verify the GUID received from server matches what we were
5583         expecting, if we had an expectation
5584
5585         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5586         (_dbus_auth_get_guid_from_server): new function
5587         (send_begin): parse the OK args
5588
5589         * doc/dbus-specification.xml: add GUID to the auth protocol
5590
5591 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5592
5593         * Fix my name in previous changelog ;)
5594
5595         * python/proxies.py (ProxyObject.__getattr__): add further patch
5596         from Anthony Baxter to throw an AttributeError when python 
5597         __special__ functions are called instead of marshling them over 
5598         the bus (Bug#1685 comment 3).
5599
5600 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5601
5602         * python/Makefile.am: changed to use pyexecdir for the binding
5603         shared libraries (Bug#2494)
5604
5605         * python/exceptions.py: bring exceptions over from the bindings
5606         so they can be used in applications (Bug#2036)
5607         Make all exceptions derive from DBusException
5608
5609         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5610         of classes so that print obj doesn't throw an exception (Bug #1685)
5611
5612 2005-05-03  Ross Burton  <ross@openedhand.com>
5613
5614         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5615         Return if we get an error during registration.  Set up a
5616         weak reference on object to unregister if object is destroyed.
5617         (unregister_gobject): New function.
5618         
5619 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5620
5621         * python/dbus_bindings.pyx.in: 
5622         - added new type classes for hinting to the marashaler what type 
5623         to send over the wire
5624         - added int16 and uint16 marshalers
5625         - Fixed a bug in the type constants that caused int32 to go out
5626         as uint16 over the wire
5627         * python/dbus.py: split up into different files and renamed _dbus.py
5628         * python/__init__.py, python/_util.py, python/decorators.py, 
5629         python/exceptions.py, python/proxies.py, python/services.py,
5630         python/types.py: new files split off from dbus.py
5631         * python/Makefile.am: Add new files, remove dbus.py and 
5632         install all python files to <python module dir>/dbus
5633         * python/examples/*: Added #!/usr/bin/env python to the top of
5634         every example.  Patch provided by Tatavarty Kalyan
5635
5636 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5637
5638         * NEWS: Update to 0.33
5639
5640 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5641
5642         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5643         method for doing async calls
5644         (_pending_call_notification): New C function for handling pendning call
5645         callbacks
5646         (set_notify): New method for setting pending call notification
5647         
5648         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5649         Async capabilities added to remote method calls
5650         (Sender): class removed
5651         (RemoteService): class removed
5652         (ObjectTree): class removed for now
5653         (RemoteObject): Renamed to ProxyObject
5654         (RemoteMethod): Renamed to ProxyMethod
5655         (method): Decorator added for decorating python methods as dbus methods
5656         (signal): Decorator added for decorating python methods as signal emitters
5657         (ObjectType): Metaclass added for generating introspection data and the
5658         method callback vtable
5659         (Interface): Wrapper class added to wrap objects in a dbus interface
5660         (Object): Uses ObjectType as its metaclass and exports Introspect
5661         of the org.freedesktop.DBus.Introspectable interface
5662         (ValidationException, UnknownMethodException): new exceptions
5663
5664         * python/examples/*: Modified to fit with the new bindings
5665
5666 2005-04-23  Havoc Pennington  <hp@redhat.com>
5667
5668         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5669         reported by Tony Houghton
5670
5671         * test/test-service.c (main): test
5672         dbus_connection_get_object_path_data()
5673
5674         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5675         the exact_match
5676         (_dbus_object_tree_get_user_data_unlocked): new function used by
5677         dbus_connection_get_object_path_data()
5678         (do_register): add assertion test for get_user_data_unlocked
5679         (object_tree_test_iteration): more tests
5680
5681         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5682         new function from Dan Reed to let you get the user data from 
5683         dbus_connection_register_object_path()
5684
5685 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5686
5687         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5688         in numerous places that did not account for the NULL terminator
5689         (signature_from_seed): changed the manual string copy loop to 
5690         just use strcpy instead
5691         make check should now pass
5692
5693 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5694
5695         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5696         so that it allows messages that are not signals to pass in 
5697         NULL as the interface.
5698
5699 2005-04-18  David Zeuthen  <davidz@redhat.com>
5700
5701         * glib/dbus-gmain.c (io_handler_destroy_source): 
5702         (timeout_handler_destroy_source, connection_setup_free): 
5703         Also unref the source to avoid memory leaks.
5704
5705 2005-04-13  David Zeuthen  <davidz@redhat.com>
5706
5707         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5708         more reasonable, yet still totally arbitrary, value :-). 
5709
5710 2005-04-13  David Zeuthen  <davidz@redhat.com>
5711
5712         * doc/TODO: Added an "important for 1.0" item about selinux
5713         allow/deny messages
5714
5715 2005-04-13  David Zeuthen  <davidz@redhat.com>
5716
5717         * bus/selinux.c: Add c-file-style to top of file
5718         (log_audit_callback): Don't free the data here anymore
5719         (bus_selinux_check): Don't take spid and tpid since appending
5720         that to auxdata may OOM.
5721         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5722         to the caller if we are OOM by taking an error object.
5723         (bus_selinux_allows_send): -do-
5724
5725         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5726         and bus_selinux_allows_send
5727
5728         * bus/bus.c (bus_context_check_security_policy): Pass error and
5729         pass on OOM thrown by bus_selinux_allows_send()
5730
5731         * bus/services.c (bus_registry_acquire_service): Pass error and
5732         pass on OOM thrown by bus_selinux_allows_acquire_service()
5733
5734 2005-04-13  Havoc Pennington  <hp@redhat.com>
5735
5736         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5737         message at a time to avoid monopolizing the main loop, bug 
5738         #2953 from Benjamin Otte
5739
5740 2005-04-09  Havoc Pennington  <hp@redhat.com>
5741
5742         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5743         possible overlap, fix from Daniel Reed
5744         (fixup_alignment): fix signedness warnings
5745         (_dbus_string_append_unichar): ditto
5746
5747 2005-04-09  Havoc Pennington  <hp@redhat.com>
5748
5749         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5750
5751         * glib/dbus-glib-tool.c (main): fix warning
5752
5753         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5754
5755         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5756         add a new function that can be used in simple applications that
5757         don't have a main loop and are willing to block
5758
5759 2005-04-05  David Zeuthen  <davidz@redhat.com>
5760
5761         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5762
5763         * glib/dbus-gmain.c:
5764         (io_handler_destroy_source): Remove from list of IO handlers
5765         of the ConnectionSetup object
5766         (timeout_handler_destroy_source): -do- for timeout handlers
5767         (io_handler_source_finalized): Don't remove from list since
5768         we now do that in io_handler_destroy_source(). Renamed from
5769         io_handler_source_destroyed
5770         (timeout_handler_source_destroyed): -do- for timeout handlers
5771         (connection_setup_free): It is now safe to iterate over all
5772         IO and timeout handlers as the _destroy_source removes them
5773         from the list synchronously
5774
5775 2005-03-30  Havoc Pennington  <hp@redhat.com>
5776
5777         * configure.in: change check to gtk 2.4
5778
5779         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5780         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5781         to 2.4
5782
5783 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5784
5785         * News: Update 0.32
5786
5787         * HACKING: Fixed realease instructions.  configure.in should be updated to
5788           the next release by the person who made the last release.
5789
5790 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5791
5792         * python/lvalue_cast_post_process.py - removed.  Patch has been
5793           submitted to Pyrex maintainers that fixes gcc4.0 errors
5794
5795         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5796
5797 2005-03-24  Daniel Reed  <n@ml.org>
5798
5799         * tools/Makefile.am: Make print-introspect and
5800         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5801
5802 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5803
5804         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5805
5806         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5807           had in Red Hat packages for a while but for some reason never 
5808           got merged upstream
5809           (_dbus_is_a_number): New checks if a string
5810           can be converted to a number and does the conversion if it can
5811           (_dbus_user_database_lookup): Add check to see if the given username
5812           is a udi.  This allows udi's to be used instead of usernames in the
5813           config file.
5814           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5815           is a gdi.  This allows gdi's to be used instead of groupnames in the
5816           config file.
5817
5818 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5819
5820         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5821           code so that it compiles with gcc4.0
5822
5823         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5824           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5825           results back to dbus_binding.c
5826
5827 2005-03-20  Colin Walters  <walters@verbum.org>
5828
5829         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5830
5831         * configure.in: Require GTK+ 2.6.
5832         
5833 2005-03-20  Colin Walters  <walters@verbum.org>
5834
5835         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5836
5837 2005-03-17  Tom Parker  <palfrey@tevp.net>
5838
5839         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5840         print DBUS_UID_UNSET; instead print passed username.  Also
5841         be sure to actually use gid looked up in cache.
5842         
5843         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5844         for DBUS_GID_UNSET and groupname.
5845
5846 2005-03-17  Colin Walters  <walters@verbum.org>
5847
5848         * bus/print-introspect.c: Move to tools/.
5849         * bus/run-with-tmp-session-bus.sh: Ditto.
5850         
5851         * glib/Makefile.am (dbus-glib-bindings.h): Move
5852         generation to tools/Makefile.am.
5853
5854         * test/glib/run-test.sh: Update to handle move
5855         of run-with-tmp-session-bus.sh.
5856
5857         * test/glib/test-service-glib.c: Update to handle
5858         move of dbus-glib-bindings.h.
5859
5860         * tools/print-introspect.c: Moved here
5861         from bus/, and ported to GLib bindings.
5862
5863         * tools/run-with-tmp-session-bus.sh: Moved here
5864         from bus/.
5865
5866         * tools/Makefile.am: Generate dbus-glib-bindings.h
5867         and dbus-bus-introspect.xml here.
5868
5869         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5870         Update.
5871
5872 2005-03-17  Colin Walters  <walters@verbum.org>
5873
5874         * bus/driver.c (write_args_for_direction): Use
5875         _dbus_string_get_const_data to retrieve string;
5876         _dbus_string_get_const_data_len doesn't actually return
5877         a NULL-terminated substring.
5878
5879         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5880         (main): Change to use org_freedesktop_DBus_request_name
5881         instead of using g_proxy_begin_call/end_call.
5882
5883 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5884
5885         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5886         generating the finalizer.  Fixes from Ben Maurer.
5887
5888 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5889
5890         * mono/BusDriver.cs: Update method names: ListServices
5891         becomes ListNames; GetOwner becomes GetNameOwner.
5892
5893         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5894         onto the eval stack when removing the delegate.
5895
5896 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5897
5898         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5899         LT_CURRENT.  Set it to the autoconf variable.
5900                                                                                 
5901         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5902         classes that disconnects the signal handler delegate from the
5903         service object.  Fixes a big leak of proxy objects on the
5904         client side of things.  Patch from Ben Maurer
5905         <bmaurer@ximian.com>
5906
5907 2005-03-12  Colin Walters  <walters@verbum.org>
5908
5909         * bus/driver.c (write_args_for_direction): New function,
5910         parses a type signature into arguments and outputs to
5911         XML.
5912         (bus_driver_handle_introspect): Use it instead of
5913         hardcoding XML for certain signatures.
5914         
5915         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5916         dependency on dbus-daemon.
5917
5918         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5919         argument, pass it to dbus_binding_tool_output_glib_client.
5920
5921         * glib/dbus-binding-tool-glib.c
5922         (generate_client_glue): Protect against multiple inclusion.
5923         (dbus_binding_tool_output_glib_client): Add
5924         G_BEGIN_DECLS/G_END_DECLS.
5925
5926         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5927         Change to just take iface prefix directly.
5928         (write_formal_parameters): Clarify error message.
5929         (check_supported_parameters): New function; checks to see type
5930         signatures of method parameters are supported.
5931         (generate_client_glue): Handle ignore_unsupported flag.
5932         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5933         parameter.
5934
5935         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5936         --ignore-unsupported by default until glib bindings
5937         support arrays.
5938
5939 2005-03-11  Colin Walters  <walters@verbum.org>
5940
5941         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5942         install it.
5943
5944         * bus/print-introspect.c: New file; prints introspection
5945         data for a given name and object path.
5946
5947         * bus/run-with-tmp-session-bus.sh: New file, refactored
5948         from test/glib/run-test.sh.  Creates a temporary session
5949         bus and runs another program.
5950
5951         * test/glib/run-test.sh: Refactor to invoke
5952         run-with-tmp-session-bus.sh.
5953
5954         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5955         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5956         macros instead of hardcoding.
5957
5958         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5959
5960 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5961
5962         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5963         this unref; it doesn't match up evenly in some codepaths.
5964         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5965         this evenly matches with the ref near the top of this function.
5966
5967 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5968
5969         * dbus/dbus-object-tree.c
5970         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5971         and we try to unregister a path that's not registered, still go
5972         through the process of unlocking and don't just return.
5973
5974 2005-03-09  Colin Walters  <walters@verbum.org>
5975
5976         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5977         to this are generated for client-side wrappers.  Invokes a
5978         D-BUS method and returns reply values.  
5979
5980         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5981         function; writes signature string for argument direction.
5982         (write_args_for_direction): Change to pass input values directly
5983         instead of via address, and fix indentation.
5984         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5985         make generated wrappers inlineable.
5986
5987         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5988         note about using dbus_type_is_fixed.
5989
5990         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5991         dbus/dbus-signature.c as dbus_type_is_fixed.
5992
5993         All callers updated.
5994
5995         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5996         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5997
5998         * dbus/dbus-signature.h: Prototype.
5999
6000         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
6001         error printf code.
6002
6003         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
6004         appropriate instead of just freeing it.
6005         (main): Free returned strings using g_free.
6006
6007         * test/glib/Makefile.am (test-service-glib-glue.h)
6008         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
6009
6010         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
6011         simply maps a simple D-BUS type to GType.
6012         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
6013         GType.
6014         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
6015         initialize the value with it.
6016         (dbus_gvalue_binding_type_from_type): Unused, delete.
6017         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
6018         various types instead of unmarshalling to value data directly.
6019         Remove can_convert boolean.
6020         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
6021         returning directly instead of using can_convert boolean.
6022         (dbus_gvalue_store): New function; not related to D-BUS per-se.
6023         Stores a GValue in a pointer to a value of its corresponding C
6024         type.
6025
6026         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
6027         add dbus_gvalue_store.
6028
6029 2005-03-08  Joe Shaw  <joeshaw@novell.com>
6030
6031         Fix a bunch of lifecycle and memory management problems
6032         in the mono bindings.
6033
6034         * mono/Arguments.cs (Arguments): Implement IDisposable
6035
6036         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
6037         strictly a static class.
6038
6039         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
6040         delegates into this file.
6041         (Connection): Implement IDisposable.
6042         (Dispose): Disconnect the connection and set the raw connection
6043         pointer to IntPtr.Zero.
6044         (~Connection): Call Dispose().
6045         (RegisterObjectPath): Added.  Manages the registration of object
6046         paths so we can cleanly disconnect them at dispose/finalize time.
6047         (UnregisterObjectPath): Ditto.
6048         (set_RawConnection): Unregister all of the object paths when
6049         changing the underlying DBusConnection.  Add them back onto the
6050         new connection, if any.
6051
6052         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
6053         more unmanaged resources anymore, so it's not necessary.  Move all
6054         the DBusObjectPathVTable stuff out of here.
6055         (Handler): Save references to our delegates so that they don't get
6056         finalized.  Call Connection.RegisterObjectPath() instead of
6057         dbus_connection_register_object_path() directly.
6058         (Message_Called): Dispose the message after we're finished with
6059         it.
6060
6061         * mono/Message.cs (Message): Implement IDisposable.
6062         (Dispose): Dispose the Arguments, and set the RawMessage to
6063         IntPtr.Zero.
6064         (SendWithReplyAndBlock): We own the ref to the reply that comes
6065         back from dbus_connection_send_with_reply_and_block() so add a
6066         comment about that and unref it after we've constructed a managed
6067         MethodReturn class around it.  Fixes a big, big leak.
6068
6069         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
6070         method.
6071         (BuildSignalHandler): After we've sent the Signal message, dispose
6072         of it.
6073         (BuildMethod): Dispose of the method call and reply messages after
6074         we've sent the message and extracted the data we want from the
6075         reply.
6076
6077         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
6078         anymore.
6079         (Service_FilterCalled): Dispose of the message after we're
6080         finished with it.
6081
6082 2005-03-08  Joe Shaw  <joeshaw@novell.com>
6083
6084         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
6085         After we attach our pending call to the connection, unref
6086         it.  Fixes a leak.
6087  
6088         * mono/Connection.cs (set_RawConnection): Disconnect our
6089         filter and match callbacks from the old connection and
6090         reconnect them to the new connection, if any.
6091
6092         * mono/DBusType/Array.cs: "Code" is a static member, so
6093         don't use "this" to refer to it.  Fix for stricter checking
6094         in Mono 1.1.4.
6095  
6096         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
6097         object path that we pass into unmanaged code.
6098  
6099         * mono/DBusType/String.cs (Append): Don't leak the string
6100         that we pass into unmanged code.
6101
6102 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
6103         * NEWS: Update for 0.31
6104
6105         * configure.in: Release 0.31
6106         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
6107
6108         * qt/Makefile.am: fixed build
6109
6110         * dbus/Makefile.am: soname bump for libdbus
6111
6112         * glib/Makefile.am: soname bump for libdbus-glib
6113
6114 2005-03-05  Havoc Pennington  <hp@redhat.com>
6115
6116         * dbus/dbus-sysdeps.c:
6117         (pseudorandom_generate_random_bytes_buffer): fix to have no return
6118         value
6119         (_dbus_generate_random_bytes_buffer): fix return value
6120
6121         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
6122         checks actually work, from Tom Parker <fdo@tevp.net>
6123
6124 2005-03-01  Colin Walters  <walters@verbum.org>
6125
6126         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
6127         functions copied from dbus-glib-tool.c.
6128         (main): Convert lots of error code to use them.
6129         Also add some testing for introspection bits.
6130
6131 2005-03-01  Colin Walters  <walters@verbum.org>
6132         
6133         * doc/TODO: Remove introspection signature TODO.
6134
6135 2005-02-27  Colin Walters  <walters@verbum.org>
6136
6137         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
6138         Change return value to const char * instead of int so we can do
6139         full signatures.
6140         (struct PropertyInfo, struct ArgInfo): Store char *.
6141         (property_info_new, arg_info_new): Update parameters, strdup.
6142         (property_info_unref, arg_info_unref): Free.
6143
6144         * glib/dbus-gidl.h: Update prototypes.
6145
6146         * glib/dbus-gparser.c (basic_type_from_string): Delete.
6147         (validate_signature): New function, just validates signature and
6148         sets GError.
6149         (parse_property, parse_arg): Invoke validate_signature.  Store
6150         signature instead of just type code.
6151
6152         * glib/dbus-gvalue.c (base_type_from_signature): New utility
6153         function to return a primary type for a signature, dropping
6154         information about types in container types.
6155         (dbus_gvalue_genmarshal_name_from_type)
6156         (dbus_gvalue_binding_type_from_type)
6157         (dbus_gvalue_ctype_from_type): Update to take full signature
6158          instead of type code.
6159         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
6160
6161         * glib/dbus-gvalue.h: Update prototypes for above.
6162
6163         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
6164         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
6165         (introspect_properties, introspect_signals, write_interface):
6166         Update to handle signatures, and remove usage of
6167         _dbus_gutils_type_to_string.
6168         (handle_introspect): Print out type codes instead of e.g. "string"
6169         in hardcoded introspection XML; also use x_AS_STRING constants
6170         instead of hardcoding in string.
6171
6172         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
6173         to string.  Remove usage of _dbus_gutils_type_to_string.
6174
6175         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
6176
6177         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
6178         deletion.
6179         
6180         * glib/dbus-binding-tool-glib.c (compute_marshaller)
6181         (compute_marshaller_name, generate_glue): Handle signature change
6182         to string.
6183         (write_formal_parameters, write_args_for_direction): Ditto, and
6184         remove FIXME.
6185
6186         * tools/dbus-tree-view.c (type_to_string): Delete.
6187         (info_set_func_text): Update to print full signatures.
6188
6189         * test/glib/test-service-glib.xml: Change types to new
6190         introspection format.
6191
6192 2005-02-26  Havoc Pennington  <hp@redhat.com>
6193
6194         * doc/TODO: remove the "guid" item
6195
6196         * test/glib/test-profile.c (no_bus_thread_func): use open_private
6197         (with_bus_thread_func): use open_private
6198
6199         * dbus/dbus-connection.c (dbus_connection_open_private): new
6200         function that works like the old dbus_connection_open()
6201         (dbus_connection_open): now returns an existing connection if
6202         possible
6203
6204         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
6205         through the GUID to the transport
6206
6207         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
6208         GUID in hex-encoded form.
6209
6210         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
6211         pass GUID argument in to the transport
6212
6213         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
6214         guid argument
6215
6216         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
6217
6218         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
6219
6220 2005-02-25  Havoc Pennington  <hp@redhat.com>
6221
6222         * doc/dbus-specification.xml: document the GUID thing
6223
6224         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
6225         globally unique ID for the server, and put a "guid=hexencoded"
6226         field in the address
6227
6228         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
6229
6230         * dbus/dbus-message.c: ditto
6231
6232         * dbus/dbus-dataslot.c: ditto
6233
6234         * dbus/dbus-list.c: ditto
6235
6236         * dbus/dbus-internals.h: wait, just include
6237         dbus-threads-internal.h here
6238         
6239         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
6240         use in main library
6241
6242         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
6243
6244 2005-02-24  Colin Walters  <walters@verbum.org>
6245
6246         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
6247
6248 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
6249
6250         * glib/Makefile.am: added dbus-gobject.h to sources list
6251         so distcheck doesn't fail
6252         
6253 2005-02-24  Havoc Pennington  <hp@redhat.com>
6254
6255         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
6256         you must disconnect before unref, since locking and other things
6257         are screwed up otherwise. Fix assorted other locking stuff.
6258
6259         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
6260         fix compilation
6261
6262         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
6263         into a private header and don't export from the library
6264
6265         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
6266
6267 2005-02-24  Colin Walters  <walters@verbum.org>
6268         
6269         * dbus/dbus-signature.c: New file; implements various functions
6270         related to type signatures.  Includes an interator for parsing,
6271         validation functions.
6272         (dbus_type_is_basic): Moved here from
6273         dbus-marshal-basic.c:_dbus_type_is_basic.
6274         (dbus_type_is_container): Moved here from
6275         dbus-marshal-basic.c:_dbus_type_is_container.
6276
6277         All callers of _dbus_type_is_container and _dbus_type_is_basic
6278         updated, and include dbus-signature.h.
6279
6280         * dbus/dbus-signature.h: New file; prototypes for the above.
6281
6282         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
6283         dbus-signature.h.
6284
6285         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
6286         function factored out of _dbus_first_type_in_signature.
6287         (_dbus_first_type_in_signature_c_str): New function; returns first
6288         type code for a type signature character.
6289
6290         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
6291         handle function moves.
6292
6293         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
6294
6295         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
6296         function; skips to next complete type in type signature.
6297         Implemented using previous skip_one_complete_type.  Now
6298         skip_one_complete_type just delegates to
6299         _dbus_type_signature_next.
6300
6301         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
6302         to dbus-signature.c
6303         (_dbus_type_is_container): Ditto.
6304
6305         * doc/dbus-specification.xml: Update introspection sample to
6306         use real type signatures.
6307
6308         * dbus/dbus-test.h: Prototype signature test.
6309
6310         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
6311         signature tests.
6312
6313         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
6314
6315 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
6316
6317         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
6318         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
6319
6320 2005-02-21  Colin Walters  <walters@verbum.org>
6321
6322         * dbus/dbus-test-main.c (main): Take optional specific test
6323         argument.
6324
6325         * dbus/dbus-test.c (run_test): New function, runs a test function
6326         with no data directory.
6327         (run_data_test): Like above, but takes data directory.
6328         (dbus_internal_do_not_use_run_tests): Take
6329         specific test argument.  Replace lots of cut n' paste code
6330         with run_test and run_data_test.
6331
6332         * dbus/dbus-test.h: Update prototype for
6333         dbus_internal_do_not_use_run_tests.
6334
6335 2005-02-20  Havoc Pennington  <hp@redhat.com>
6336
6337         Fix bugs reported by Daniel P. Berrange
6338         
6339         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
6340         (protected_change_watch): new function
6341         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
6342         (_dbus_server_add_watch): change to work like the
6343         dbus-connection.c equivalents; like those, probably kind of
6344         busted, but should at least mostly work for now
6345         (dbus_server_disconnect): drop the lock if we were already
6346         disconnected, patch from Daniel P. Berrange
6347
6348         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
6349         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
6350         same stuff
6351
6352         * doc/TODO: todo about unscrewing this mess
6353
6354 2005-02-19  Colin Walters  <walters@verbum.org>
6355
6356         * glib/dbus-binding-tool-glib.c
6357         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6358
6359         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6360         as errno.h and sys/stat.h.
6361         (lose): New function, prints error with
6362         newline and exits.
6363         (lose_gerror): Similar, but takes GError for message.
6364         (main): Add --output argument to specify output file to write to,
6365         instead of always printing to stdout.  In this mode, determine
6366         timestamps on source files to see whether any are newer than the
6367         target file.  If not, exit.  Also convert a number of error
6368         messages to use lose (since it's shorter), and switch to using
6369         g_io_channel_shutdown.
6370
6371 2005-02-19  Havoc Pennington  <hp@redhat.com>
6372
6373         * glib/dbus-gobject.c
6374         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6375
6376         * glib/dbus-glib.c: fix doxygen warnings
6377
6378         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6379         is found on an <arg>
6380
6381 2005-02-17  Colin Walters  <walters@verbum.org>
6382
6383         * glib/dbus-gobject.h: Don't export
6384         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6385         
6386         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6387         (invoke_object_method): Handle it.
6388
6389         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6390         Handle rename.
6391         
6392 2005-02-17  Colin Walters  <walters@verbum.org>
6393
6394         * bus/.cvsignore, doc/.cvsignore
6395         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6396         Update.
6397
6398 2005-02-17  Colin Walters  <walters@verbum.org>
6399         
6400         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6401         Rename to DBUS_SERVICE_DBUS.
6402         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6403         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6404         Change the value from "org.freedesktop.Local"
6405         to "org.freedesktop.DBus.Local".
6406         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6407         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6408         DBUS_INTERFACE_INTROSPECTABLE.
6409         Change the value from "org.freedesktop.Introspectable"
6410         to "org.freedesktop.DBus.Introspectable".
6411         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6412         DBUS_INTERFACE_PROPERTIES.
6413         Change the value from "org.freedesktop.Properties"
6414         to "org.freedesktop.DBus.Properties".
6415         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6416         DBUS_INTERFACE_PEER.
6417         Change the value from "org.freedesktop.Peer"
6418         to "org.freedesktop.DBus.Peer".
6419         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6420         DBUS_INTERFACE_LOCAL.
6421         Change the value from "org.freedesktop.Local"
6422         to "org.freedesktop.DBus.Local".
6423
6424         All other users of those constants have been changed.
6425
6426         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6427
6428         * glib/dbus-gobject.c (handle_introspect): Use constants.
6429
6430         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6431
6432 2005-02-17  Colin Walters  <walters@verbum.org>
6433
6434         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6435         (parse_node, parse_interface, parse_method, parse_signal)
6436         (parse_property, parse_annotation): Lose if we're currently in an
6437         annotation.
6438         (parse_annotation): New function.
6439         (parser_start_element, parser_end_element): Handle annotation.
6440         (parse_method, parse_interface): Remove support for c_name attribute,
6441         switch to annotations.
6442
6443         * glib/dbus-gidl.h (interface_info_get_binding_names)
6444         (method_info_get_binding_names)
6445         (interface_info_get_binding_name, method_info_get_binding_name)
6446         (interface_info_set_binding_name, method_info_set_binding_name):
6447         Remove.
6448         (interface_info_get_annotations, method_info_get_annotations)
6449         (interface_info_get_annotation, method_info_get_annotation)
6450         (interface_info_add_annotation, method_info_add_annotation):
6451         Prototype.
6452
6453         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6454         for "bindings".
6455         (struct MethodInfo): Ditto.
6456         Straightfoward conversion of binding methods into annotation methods
6457         as prototyped.
6458
6459         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6460
6461         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6462
6463         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6464         Use new annotation API.
6465
6466         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6467         annotation element.
6468         
6469         * doc/dbus-specification.xml: Discuss introspection annotations,
6470         include list of well-known annotations.
6471
6472         * test/glib/test-service-glib.xml: Make validate against new DTD.
6473
6474 2005-02-17  Colin Walters  <walters@verbum.org>
6475
6476         This patch is based on initial work from
6477         Paul Kuliniewicz <kuliniew@purdue.edu>.
6478
6479         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6480         initialization of GValue from dbus type to here.
6481         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6482         for the "glib-genmarshal" program from a DBus type.
6483         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6484         into the C name for it we use in the glib bindings.
6485         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6486         glib C type (not GValue).
6487         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6488
6489         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6490         from dbus-gobject.c.
6491
6492         * glib/dbus-gutils.h: Prototype it.
6493
6494         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6495         (marshal_dbus_message_to_g_marshaller): Use new shared function
6496         dbus_glib_marshal_dbus_message_to_gvalue_array.
6497
6498         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6499         Will be changed once we have annotations.
6500
6501         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6502         GStaticRWLock.  Callers updated.
6503         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6504         (string_table_next): New function for iterating over zero-terminated
6505         string value array.
6506         (string_table_lookup): New function; retrieves specific entry in
6507         array.
6508         (get_method_data): New function; look up method data in object data chunk.
6509         (object_error_domain_prefix_from_object_info)
6510         (object_error_code_from_object_info): New functions, but not implemented yet.
6511         (method_interface_from_object_info): New function; retrieve interface name.
6512         (method_name_from_object_info): New function; retrieve method name.
6513         (method_arg_info_from_object_info): New function; retrieve argument data.
6514         (arg_iterate): New function; iterates over serialized argument data.
6515         (method_dir_signature_from_object_info): New function; returns a
6516         GString holding type signature for arguments for just one
6517         direction (input or output).
6518         (method_input_signature_from_object_info)
6519         (method_output_signature_from_object_info): New functions.
6520         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6521         converts dbus message arguments into a GValue array.  Used for both
6522         signal handling and method invocation.
6523         (struct DBusGlibWriteIterfaceData): New utility structure.
6524         (write_interface): New function; generate introspection XML for
6525         an interface.
6526         (introspect_interfaces): New function; gathers all interface->methods,
6527         generates introspection XML for them.
6528         (handle_introspect): Invoke introspect_interfaces.
6529         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6530         (lookup_object_and_method): New function; examines an incoming message
6531         and attempts to match it up (via interface, method name, and argument
6532         signature) with a known object and method.
6533         (gerror_domaincode_to_dbus_error_name): New function; converts a
6534         GError domain and code into a DBus error name.  Needs GError data
6535         added to object introspection to work well.
6536         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6537         GError.
6538         (invoke_object_method): New function to invoke an object method
6539         looked up via lookup_object_and_method.  Parses the incoming
6540         message, turns it into a GValue array, then invokes the marshaller
6541         specified in the DBusGMethodInfo.  Creates a new message with
6542         either return values or error message as appropriate.
6543         (gobject_message_function): Invoke lookup_object_and_method and
6544         invoke_object_method.
6545
6546         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6547         (enum DBusBindingOutputMode): New enum for binding output modes.
6548         (pretty_print): Print binding names.
6549         (dbus_binding_tool_error_quark): GError bits.
6550         (version): Fix typo.
6551         (main): Create GIOChannel for output.  Parse new --mode argument,
6552         possible values are "pretty-print", "glib-server", "glib-client".
6553         Use mode to invoke appropriate function.
6554         
6555         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6556
6557         * glib/dbus-glib-tool.h: New header, just includes GError bits
6558         for now.
6559
6560         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6561         maps binding style to name.
6562         (struct MethodInfo): Ditto.
6563         (get_hash_keys, get_hash_key): Utility function, returns keys for
6564         a GHashTable.
6565         (interface_info_new, method_info_new): Initialize bindings.
6566         (interface_info_unref, method_info_unref): Destroy bindings.
6567         (method_info_get_binding_names, method_info_get_binding_name)
6568         (interface_info_get_binding_names, interface_info_get_binding_name):
6569         Functions for retrieving binding names.
6570         (method_info_set_binding_name, interface_info_set_binding_name):
6571         Functions for setting binding names.
6572
6573         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6574         for glib binding generation.
6575
6576         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6577         and client-side glib glue generation.
6578
6579         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6580         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6581         dbus-glib-tool.h.
6582
6583         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6584         of using GClosureMarshal directly.
6585         (struct DBusGObjectInfo): Add n_infos member.
6586
6587         * test/glib/test-service-glib.xml: New file; contains introspection data
6588         for MyTestObject used in test-service-glib.c.
6589
6590         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6591         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6592         (my_object_uppercase, my_object_many_args): New test methods.
6593         (main): Use dbus_g_object_class_install_info to include generated object
6594         info.
6595
6596         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6597         as well as client-side bindings.
6598
6599         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6600         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6601         using both the dbus_gproxy stuff directly as well as the generated bindings.
6602
6603 2005-02-15  Havoc Pennington  <hp@redhat.com>
6604
6605         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6606         complete a pending call, don't run filters first.
6607
6608         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6609         dbus_pending_call_steal_reply
6610
6611         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6612         _dbus_connection_block_pending_call
6613         (dbus_pending_call_get_reply): change to steal_reply and return a
6614         ref
6615
6616         * dbus/dbus-connection.c
6617         (dbus_connection_send_with_reply_and_block): port to work in terms
6618         of DBusPendingCall
6619         (_dbus_connection_block_pending_call): replace block_for_reply
6620         with this
6621
6622 2005-02-14  Havoc Pennington  <hp@redhat.com>
6623
6624         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6625         properly handle looking up group information by name; fix 
6626         from j@bootlab.org
6627
6628 2005-02-13  Havoc Pennington  <hp@redhat.com>
6629
6630         * dbus/dbus-connection.c (dbus_connection_return_message) 
6631         (dbus_connection_borrow_message): hold dispatch lock while message
6632         is outstanding
6633         (_dbus_connection_block_for_reply): hold dispatch lock while we
6634         block for the reply, so nobody steals our reply
6635         (dbus_connection_pop_message): hold the dispatch lock while we
6636         pluck the message
6637
6638 2005-02-13  Havoc Pennington  <hp@redhat.com>
6639
6640         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6641         (_dbus_connection_release_dispatch)
6642         (_dbus_connection_acquire_io_path)
6643         (_dbus_connection_release_io_path): make the mutex and condvar
6644         control access to the "acquired" flag. Drop the connection lock
6645         while waiting on the condvar. Hopefully these are baby steps in
6646         roughly the right direction.
6647
6648 2005-02-13  Havoc Pennington  <hp@redhat.com>
6649
6650         * dbus/dbus-connection.c: use separate mutexes for the condition
6651         variables; this is some kind of baseline for sanity, but the
6652         condition variables still aren't used correctly afaict
6653
6654 2005-02-13  Havoc Pennington  <hp@redhat.com>
6655
6656         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6657         fix a double-unlock
6658
6659         * dbus/dbus-connection.c
6660         (_dbus_connection_detach_pending_call_unlocked): add this
6661
6662         Initial semi-correct pass through to fix thread locking; there are
6663         still some issues with the condition variable paths I'm pretty
6664         sure
6665         
6666         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6667         lock/unlock calls
6668
6669         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6670         rename to add _unlocked
6671         (struct DBusConnection): move "dispatch_acquired" and
6672         "io_path_acquired" to use only one bit each.
6673         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6674         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6675         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6676         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6677         (_dbus_connection_remove_timeout) 
6678         (_dbus_connection_toggle_timeout): drop lock when calling out to
6679         user functions; done in a hacky/bad way.
6680         (_dbus_connection_send_and_unlock): add a missing unlock
6681         (_dbus_connection_block_for_reply): add a missing unlock
6682
6683         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6684         drop lock in a hacky probably unsafe way to call out to user
6685         function
6686
6687 2005-02-12  Havoc Pennington  <hp@redhat.com>
6688
6689         * tools/dbus-tree-view.c (info_set_func_text): display more
6690         details on args
6691
6692         * bus/driver.c (bus_driver_handle_list_services): list the bus
6693         driver
6694
6695         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6696
6697         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6698         (method_info_get_n_args): new function
6699
6700 2005-02-12  Havoc Pennington  <hp@redhat.com>
6701
6702         * bus/driver.c (bus_driver_handle_introspect): add introspection
6703         for bus driver
6704
6705 2005-02-12  Havoc Pennington  <hp@redhat.com>
6706
6707         * bus/driver.c: put the signature of each bus driver method in the
6708         table of handlers and check it on incoming calls; this isn't
6709         really useful, but going to add introspect support in a minute.
6710
6711 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6712
6713         * mono/Connection.cs: The unpredictability of finalizers in mono
6714         prevents us from deterministically disconnecting the filters from
6715         the Service class's finalizer, so move tracking of filters and
6716         matches here.  Add API for that.
6717
6718         * mono/Service.cs: Remove the code, add code which calls the
6719         methods now on the Connection class.
6720
6721 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6722
6723         * python/dbus.py (class Sender): added to support dbus signals better
6724         (Bus::add_signal_receiver): added expand_args parameter which defaults
6725         to True.  When expand args is True the signal handler will pass the 
6726         message arguments as parameters to the signal handler.  If False
6727         revert to previous behavior where the signal handler must get the
6728         argument list from the message.  This is to help port applications
6729         like HAL that have a tendancy to send variable length argument lists.
6730         self._match_rule_to_receivers is now a dict of dicts.
6731         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6732         removing it from a list
6733         (Bus::_signal_func): change signal handlers so that interface,
6734         signal_name, service, path and message are packed into a Sender
6735         object and that is passed to the handler.  If expand_args is True
6736         extract the args list from the message and append it to the parameter
6737         list
6738         
6739         * python/dbus_bindings.pyx.in (class Signature): added to support 
6740         signiature types
6741         (MessageIter::__init__): changed iteration limit to match D-BUS
6742         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6743         STRUCT and VARIENT type support
6744         (MessageIter::python_value_to_dbus_sig): made recursive to support
6745         recursive types
6746         (MessageIter::append*): added Signature, dict, tuple 
6747         support
6748
6749         * python/examples/example-client.py: added examples of getting tuples
6750         and dicts
6751
6752         * python/examples/example-service.py: added examples of sending tuples
6753         and dicts
6754
6755         * python/examples/example-signal-recipient.py: Fixed to handle new
6756         signal callback format
6757
6758 2005-02-10  Havoc Pennington  <hp@redhat.com>
6759
6760         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6761         (call dbus_g_proxy_add_signal)
6762
6763         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6764         escape the hostname
6765         (_dbus_server_new_for_domain_socket): escape the path
6766
6767         * dbus/dbus-address.c (dbus_address_escape_value): new
6768         (dbus_address_unescape_value): new
6769         (dbus_parse_address): unescape values
6770
6771         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6772
6773         * doc/dbus-specification.xml: explain how to escape values in
6774         addresses
6775
6776 2005-02-10  Havoc Pennington  <hp@redhat.com>
6777
6778         * dbus/dbus-message-factory.c (generate_special): modify test to
6779         avoid using a non-basic dict key
6780
6781         * dbus/dbus-marshal-validate-util.c: add test for the below
6782
6783         * doc/dbus-specification.xml: require that dict keys are a basic
6784         type
6785
6786         * dbus/dbus-marshal-validate.c
6787         (_dbus_validate_signature_with_reason): require that dict key is a
6788         basic type
6789
6790 2005-02-10  Havoc Pennington  <hp@redhat.com>
6791
6792         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6793         change to be _and_unlock instead of _unlocked
6794
6795         * dbus/dbus-connection.c
6796         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6797         have no_update so we can find this bug quickly in future
6798
6799 2005-02-10  Havoc Pennington  <hp@redhat.com>
6800
6801         * dbus/dbus-message-util.c (verify_test_message): tests for string
6802         array
6803
6804         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6805         support for arrays of string/signature/path
6806
6807 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6808
6809         * dbus/dbus-connection.c
6810         (_dbus_connection_queue_received_message_link,
6811         _dbus_connection_message_sent): Add the path to
6812         the verbose output.
6813         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6814         _dbus_connection_send_preallocated_unlocked(), updated the
6815         dispatch status, and unlocks.  Fixes a bug where certain
6816         situations (like a broken pipe) could cause a Disconnect message
6817         to not be sent, tricking the bus into thinking a service was still
6818         there when the process had quit.
6819         (_dbus_connection_send_preallocated): Call
6820         _dbus_connection_send_preallocated_and_unlock().
6821         (_dbus_connection_send_and_unlock): Added.  Calls
6822         _dbus_connection_send_preallocated_and_unlock().
6823         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6824         (dbus_connection_send_with_reply): Update the dispatch status and
6825         unlock.
6826
6827         * mono/Service.cs (~Service): Added.  Removes the filter so that
6828         we don't get unmanaged code calling back into a GCed delegate.
6829         (RemoveFilter); Added.
6830
6831 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6832
6833         * dbus/dbus-message.c (dbus_message_iter_open_container):
6834         - Removed check for iterator type being an array because
6835         get_arg_type does not work with writer iterators
6836         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6837
6838 2005-02-07  Havoc Pennington  <hp@redhat.com>
6839
6840         * doc/dbus-specification.xml: some more language cleanups; add
6841         stuff about how to deal with invalid protocol and extension
6842         points; add _ to allowed chars in auth commands; add EXTENSION_
6843         auth command prefix
6844
6845 2005-02-06  Havoc Pennington  <hp@redhat.com>
6846
6847         * s/expected/required/ in a couple places for clarity
6848
6849 2005-02-07  Colin Walters  <walters@verbum.org>
6850
6851         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6852         sender or proposed_recipient.
6853
6854 2005-02-06  Havoc Pennington  <hp@redhat.com>
6855
6856         * dbus/dbus-message-factory.c (generate_special): more tests
6857
6858         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6859         array length that exceeds the maximum
6860
6861 2005-02-05  Havoc Pennington  <hp@redhat.com>
6862
6863         * dbus/dbus-message-factory.c (generate_special): more test cases,
6864         increasing coverage
6865
6866         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6867         reason why a signature was invalid
6868
6869         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6870         skip the length of the string before we look at it in validation
6871
6872         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6873         equal_substring
6874
6875         * dbus/dbus-message.c (_dbus_message_loader_new): default
6876         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6877
6878 2005-02-05  Havoc Pennington  <hp@redhat.com>
6879
6880         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6881         if the signature of a variant was empty
6882         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6883         struct with no element type)
6884
6885         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6886         mangled messages to break things
6887
6888 2005-02-04  Havoc Pennington  <hp@redhat.com>
6889
6890         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6891         g_quark_try_string() so it actually can return 0
6892         (dbus_g_proxy_connect_signal): ditto
6893
6894 2005-02-04  Havoc Pennington  <hp@redhat.com>
6895
6896         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6897         bogus warning
6898         (tristring_from_message): assert cleanly on null path/interface
6899         (should not be possible though I decided later)
6900         (dbus_g_proxy_dispose): move proxy manager unregistration here
6901         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6902         g_return_if_fail() checks
6903
6904 2005-02-04  Havoc Pennington  <hp@redhat.com>
6905
6906         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6907
6908         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6909         (with some minor changes)
6910
6911         * doc/dbus-specification.xml: add deprecated attribute to
6912         introspection format
6913
6914 2005-01-31  Havoc Pennington  <hp@redhat.com>
6915
6916         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6917         think it's sort of right
6918
6919 2005-01-30  Havoc Pennington  <hp@redhat.com>
6920
6921         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6922
6923 2005-01-30  Havoc Pennington  <hp@redhat.com>
6924
6925         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6926
6927         * autogen.sh: change to autotools 1.9
6928
6929         * glib/dbus-gproxy.c: completely change how signals work
6930         (dbus_g_proxy_add_signal): new function to specify signature of a
6931         signal
6932         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6933         and g_warning if the incoming message has the wrong signature.
6934
6935 2005-01-30  Havoc Pennington  <hp@redhat.com>
6936
6937         * tools/dbus-names-model.c (have_names_notify): fix this
6938
6939         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6940         up the string array handling a bit 
6941
6942 2005-01-30  Havoc Pennington  <hp@redhat.com>
6943
6944         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6945         (dbus_g_pending_call_cancel): new function
6946
6947         * dbus/dbus-glib.h: move GType decls for connection/message here;
6948         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6949         here, just kind of rationalizing how we handle all that
6950
6951         * tools/dbus-names-model.c: new file for a tree model listing the
6952         services on a bus
6953
6954         * tools/dbus-tree-view.c (model_new): use proper typing on the
6955         model rows
6956
6957 2005-01-30  Havoc Pennington  <hp@redhat.com>
6958
6959         * glib/dbus-gmain.c: add a custom GSource back that just checks
6960         whether the message queue has anything in it; otherwise, there are 
6961         cases where we won't see messages in the queue since there was no 
6962         IO visible to the glib main loop
6963
6964         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6965         increase default message timeout to 25 seconds
6966
6967 2005-01-30  Havoc Pennington  <hp@redhat.com>
6968
6969         * test/glib/test-profile.c (no_bus_stop_server): remove the
6970         warning about the g_warning that I just fixed
6971
6972         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6973         custom source, seems to be a lot easier to understand and work
6974         better.
6975
6976 2005-01-30  Havoc Pennington  <hp@redhat.com>
6977
6978         I think this main loop thing is conceptually broken, but here are 
6979         some band aids. I'll maybe rewrite it in a minute.
6980         
6981         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6982         custom GSource, so don't pass it in; confusing
6983         (gsource_server_finalize, gsource_connection_finalize): add
6984         finalize handlers that remove all the watches.  
6985
6986 2005-01-30  Havoc Pennington  <hp@redhat.com>
6987
6988         * glib/dbus-gobject.c (introspect_properties): fix the XML
6989         generated
6990
6991         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6992         which effectively detects the use of freed messages
6993
6994         * glib/dbus-gobject.c (handle_introspect): modify and return the
6995         reply message instead of the incoming message
6996
6997         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6998         gee, maybe it should SEND THE XML instead of just making a string
6999         and freeing it again ;-)
7000
7001         * tools/dbus-print-message.c (print_message): improve printing of
7002         messages
7003
7004         * configure.in: add debug-glib.service to the output
7005
7006 2005-01-30  Havoc Pennington  <hp@redhat.com>
7007
7008         dbus-viewer introspected and displayed the bus driver
7009         
7010         * dbus/dbus-object-tree.c 
7011         (object_tree_test_iteration): add tests for a handler registered on "/"
7012
7013         * dbus/dbus-object-tree.c
7014         (_dbus_decompose_path): fix to handle path "/" properly
7015         (run_decompose_tests): add tests for path decomposition
7016         
7017         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
7018         properly
7019
7020         * glib/dbus-gobject.c (handle_introspect): fix quotes
7021
7022         * test/glib/run-test.sh: support launching the bus, then running
7023         dbus-viewer
7024
7025         * test/glib/test-service-glib.c (main): put in a trivial gobject
7026         subclass and register it on the connection
7027
7028         * bus/driver.c (bus_driver_handle_introspect): implement
7029         introspection of the bus driver service
7030
7031         * dbus/dbus-protocol.h: add #defines for the XML namespace,
7032         identifiers, doctype decl
7033
7034         * bus/driver.c (bus_driver_handle_get_service_owner): handle
7035         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
7036         returning the service unchanged.
7037         (bus_driver_handle_message): remove old check for reply_serial in
7038         method calls, now the message type deals with that
7039         (bus_driver_handle_message): handle NULL interface
7040
7041         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
7042
7043         * glib/dbus-gloader-expat.c (description_load_from_string): allow
7044         -1 for len
7045
7046         * tools/dbus-viewer.c: add support for introspecting a service on
7047         a bus
7048
7049         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
7050         (dbus_g_pending_call_unref): add
7051
7052 2005-01-29  Havoc Pennington  <hp@redhat.com>
7053
7054         * tools/dbus-tree-view.c: add support for displaying properties.
7055         (run dbus-viewer with an introspect xml file as arg, then resize
7056         the window so the tree elements show up, not sure what that is)
7057
7058         * glib/dbus-gobject.c (handle_introspect): return
7059         org.freedesktop.Properties and org.freedesktop.Introspectable
7060         interfaces when we are introspected.
7061
7062         * doc/dbus-specification.xml: allow empty interface name when 
7063         Get/Set a property
7064
7065 2005-01-29  Havoc Pennington  <hp@redhat.com>
7066
7067         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
7068         though it uses glib, it could be extended for any binding in
7069         principle
7070
7071         * glib/dbus-gobject.c (gobject_message_function): change to the
7072         new way properties work
7073
7074         * dbus/dbus-protocol.h: add the new interfaces
7075
7076         * doc/dbus-specification.xml: document the introspection format,
7077         Introspectable interface, and add an org.freedesktop.Properties
7078         interface.
7079
7080         * glib/dbus-gparser.c: add support for a <property> element
7081
7082         * glib/dbus-gidl.c: add PropertyInfo
7083
7084         * glib/dbus-gobject.c (handle_introspect): put the outermost
7085         <node> outside the signal and property descriptions.
7086         (introspect_properties): export properties as <property> rather
7087         than as method calls
7088
7089 2005-01-28  Havoc Pennington  <hp@redhat.com>
7090
7091         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
7092         related to authentication protocol
7093
7094 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
7095
7096         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
7097                 - BUS_ACTIVATION -> BUS_STARTER
7098                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
7099                 - class MessageIter (__init__): Added recursion checking 
7100                 so we throw a nice error instead of just disconnecting from the
7101                 bus.
7102                 (get): Added arg_type parameter for recursion.
7103                 Removed the nil type
7104                 Added signiture type placeholder (not implemented)
7105                 Added struct type placeholder (not implemented)
7106                 Added varient type placeholder (not implemented)
7107                 Commented out dict type for now     
7108                 (get_element_type): renamed from get_array_type
7109                 (get_*): changed to use the dbus_message_iter_get_basic API
7110                 (get_*_array): removed in favor of recursive get_array method
7111                 (get_array): new recursive method which calls get to marshal
7112                 the elements of the array
7113                 (value_to_dbus_sig): New method returns the corrasponding
7114                 dbus signiture to a python value
7115                 (append): Comment out dict handling for now
7116                 Handle lists with the new recursive API
7117                 Comment out None handling for now
7118                 (append_nil): removed
7119                 (append_*): changed to use dbus_message_iter_append_basic API
7120                 (append_*_array): removed in favor of recursive append_array 
7121                 method
7122                 (__str__): Make it easier to print out recursive iterators
7123                 for debugging
7124                 - class Message (__str__): moved type inspection to the
7125                 MessageIter class' __str__ method
7126                 (get_iter): Added an append parameter wich defaults to False
7127                 If True use the new API's to create an append iterator
7128
7129         * python/dbus.py: Update to use new bindings API
7130                 - TYPE_ACTIVATION -> TYPE_STARTER
7131                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
7132                 - class ActivationBus -> class StarterBus
7133                 - class RemoteObject (__call__): get an append iterator
7134                 - (_dispatch_dbus_method_call): get an append iterator
7135                 - class Object (emit_signal): get an append iterator
7136
7137         * python/examples/: Fixed up the examples to work with the new API
7138                 
7139 2005-01-28  Joe Shaw  <joeshaw@novell.com>
7140
7141         * configure.in: Bump version up to 0.30.
7142
7143         * HACKING: Add a release item to bump the version number up after 
7144         a release.
7145
7146 2005-01-28  Havoc Pennington  <hp@redhat.com>
7147
7148         * doc/dbus-specification.xml: update to describe 16-bit types and
7149         dict entries
7150
7151         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
7152         assertion
7153
7154         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
7155         type
7156
7157         * dbus/dbus-marshal-recursive.c: implement
7158
7159 2005-01-27  Havoc Pennington  <hp@redhat.com>
7160
7161         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
7162
7163         * configure.in: find the right type for 16 and 32 bit ints as well
7164         as 64
7165
7166         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
7167         the 16-bit types so people don't have to stuff them in 32-bit or
7168         byte arrays.
7169
7170 2005-01-27  Havoc Pennington  <hp@redhat.com>
7171
7172         * dbus/dbus-message.c: byteswap the message if you init an
7173         iterator to read/write from it
7174         
7175         * dbus/dbus-marshal-byteswap.c: new file implementing 
7176         _dbus_marshal_byteswap()
7177
7178         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
7179
7180 2005-01-26  Havoc Pennington  <hp@redhat.com>
7181         
7182         * dbus/dbus-marshal-validate-util.c: break this out (and fix
7183         build, apparently - nobody noticed?)
7184         
7185 2005-01-26  Havoc Pennington  <hp@redhat.com>
7186
7187         * dbus/dbus-marshal-recursive.h: remove todo comment
7188
7189 2005-01-25  Joe Shaw  <joeshaw@novell.com>
7190
7191         * Land the mono binding changes to conform to the new APIs.
7192
7193         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
7194         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
7195
7196         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
7197         type code as a string.
7198         (InitAppending): Rename dbus_message_append_iter_init() to
7199         dbus_message_iter_init_append().
7200
7201         * mono/BusDriver.cs: Rename ServiceEventHandler to
7202         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
7203         Rename ServiceOwnerChanged to NameOwnerChanged.
7204
7205         * mono/Connection.cs: Rename BaseService to UniqueName, and the
7206         underlying C call.
7207
7208         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
7209
7210         * mono/Service.cs: Rename Exists to HasOwner, internally rename
7211         dbus_bus_acquire_service() to dbus_bus_request_name().
7212
7213         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
7214         of Type.UnderlyingSystemType to get the correct element type for
7215         the array.
7216         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
7217         dbus_message_get_{element|arg}_type() instead of
7218         dbus_message_iter_init_array_iterator().
7219         (Append): Replace dbus_message_iter_append_array() with
7220         dbus_message_iter_open_container() and
7221         dbus_message_iter_close_container().
7222
7223         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
7224         types have been removed.
7225         
7226         * mono/DBusType/*.cs: Replace calls of
7227         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
7228         but specify the type in the DllImport extern declaration.  Ditto
7229         for dbus_message_iter_append_[type]() ->
7230         dbus_message_iter_append_basic().
7231
7232         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
7233         NameOwnerChangedHandler.
7234
7235 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
7236
7237         * python/dbus_bindings.pyx.in: Rename of methods and bindings
7238                 - get_base_service -> get_unique_name
7239                 - bus_get_base_service -> bus_get_unique_name
7240                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
7241                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
7242                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
7243                 - bus_activate_service -> bus_start_service_by_name
7244                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
7245                 - bus_acquire_service -> bus_request_name
7246                 - dbus_bus_acquire_service -> dbus_bus_request_name
7247                 - bus_service_exists -> bus_name_has_owner
7248                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
7249
7250         * python/dbus.py: Rename of methods
7251                 - activate_service -> start_service_by_name
7252                 - bus_acquire_service -> bus_request_name
7253                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
7254                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
7255
7256         
7257 2005-01-24  Joe Shaw  <joeshaw@novell.com>
7258
7259         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
7260         signature for the method that can't be found.
7261
7262         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
7263         the message has any arguments, we need to call
7264         _dbus_type_reader_get_current_type(), not
7265         _dbus_type_reader_has_next().
7266
7267 2005-01-24  Havoc Pennington  <hp@redhat.com>
7268
7269         * dbus/dbus-message-factory.c: more testing of message validation
7270
7271         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
7272         header
7273
7274 2005-01-23  Havoc Pennington  <hp@redhat.com>
7275
7276         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
7277         get this all working, not many tests in the framework yet though
7278
7279 2005-01-22  Havoc Pennington  <hp@redhat.com>
7280
7281         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
7282         tutorial, based on work from David Wheeler.
7283
7284 2005-01-21  Havoc Pennington  <hp@redhat.com>
7285
7286         * dbus/dbus-bus.c: add more return_if_fail checks
7287
7288         * dbus/dbus-message.c (load_message): have the "no validation"
7289         mode (have to edit the code to toggle the mode for now though)
7290
7291         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
7292         skips all validation; I want to use this at least for benchmark
7293         baseline, I'm not sure if it should be a publicly-available switch.
7294
7295 2005-01-21  Havoc Pennington  <hp@redhat.com>
7296
7297         * glib/dbus-gmain.c: don't put the GLib bindings in the same
7298         toplevel doxygen group as the low-level API stuff
7299
7300         * dbus/dbus.h: note that libdbus is the low-level API
7301
7302 2005-01-20  Havoc Pennington  <hp@redhat.com>
7303
7304         * update-dbus-docs.sh: script to update docs on the web site, only
7305         works for me though. neener.
7306
7307 2005-01-20  Havoc Pennington  <hp@redhat.com>
7308
7309         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
7310         code can reveal bugs in it
7311
7312 2005-01-20  Havoc Pennington  <hp@redhat.com>
7313
7314         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
7315         select() version, patches from Tor Lillqvist
7316
7317 2005-01-20  Havoc Pennington  <hp@redhat.com>
7318
7319         * doc/dbus-tutorial.xml: replace > with &gt;
7320
7321         * bus/services.c (bus_registry_acquire_service): validate the name
7322         and return a better error if it's no good.
7323
7324         * doc/dbus-specification.xml: note NO_AUTO_START change
7325
7326         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
7327         from AUTO_START, we're toggling the default
7328
7329         * bus/dispatch.c: adapt the tests to change of auto-start default
7330
7331 2005-01-18  Havoc Pennington  <hp@redhat.com>
7332
7333         * rename dbus-daemon-1 to dbus-daemon throughout
7334
7335 2005-01-18  Havoc Pennington  <hp@redhat.com>
7336
7337         * Throughout, grand renaming to strip out the use of "service",
7338         just say "name" instead (or "bus name" when ambiguous).  Did not
7339         change the internal code of the message bus itself, only the
7340         programmer-facing API and messages.
7341         
7342         * doc/dbus-specification.xml: further update the message bus section
7343         
7344         * bus/config-parser.c (all_are_equiv): fix bug using freed string
7345         in error case
7346
7347 2005-01-17  Havoc Pennington  <hp@redhat.com>
7348
7349         * dbus/dbus-types.h: remove 16-bit types since we don't use them
7350         ever
7351
7352         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7353         "invalid name character" not only non-ASCII
7354
7355         * doc/dbus-specification.xml: further update spec, message bus 
7356         parts are still out-of-date but the marshaling etc. stuff is now
7357         accurate-ish
7358
7359 2005-01-17  Havoc Pennington  <hp@redhat.com>
7360
7361         * doc/dbus-specification.xml: partially update spec
7362
7363 2005-01-17  Havoc Pennington  <hp@redhat.com>
7364
7365         * Throughout, align variant bodies according to the contained
7366         type, rather than always to 8. Should save a fair bit of space in
7367         message headers.
7368         
7369         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7370         fix handling of case where p == end
7371
7372         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7373
7374 2005-01-17  Havoc Pennington  <hp@redhat.com>
7375
7376         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7377
7378         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7379         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7380         are marshaling/unmarshaling a boolean.
7381
7382 2005-01-16  Havoc Pennington  <hp@redhat.com>
7383
7384         This is about it on what can be disabled/deleted from libdbus
7385         easily, back below 150K anyhow. Deeper cuts are more work than 
7386         just turning the code off as I've done here.
7387         
7388         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7389         signed int convenience funcs
7390
7391         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7392         verbose mode
7393
7394         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7395         things out of libdbus
7396
7397         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7398         
7399         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7400         tests-enabled-only, though it should probably be deleted)
7401
7402         * dbus/dbus-message-util.c: same stuff
7403
7404         * dbus/dbus-auth-util.c: same stuff
7405
7406 2005-01-16  Havoc Pennington  <hp@redhat.com>
7407
7408         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7409
7410         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7411         way for stripping down dbus-userdb.c stuff included in libdbus.
7412         Rename _dbus_parse_uid for consistency.
7413
7414 2005-01-16  Havoc Pennington  <hp@redhat.com>
7415
7416         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7417         name the assertion failed in
7418
7419         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7420         (_dbus_return_val_if_fail): assert that the name of the function
7421         containing the check doesn't start with '_', since we only want to 
7422         use checks on public functions
7423         
7424         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7425         checks to assertions
7426
7427         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7428         change checks to asserts for private function
7429
7430         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7431         to asserts for private function
7432
7433         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7434         broken assertion that was breaking make check
7435         (_dbus_type_reader_array_is_empty): remove this rather than fix
7436         it, was only used in assertions
7437
7438 2005-01-16  Havoc Pennington  <hp@redhat.com>
7439
7440         * test/unused-code-gc.py: hacky script to find code that's used
7441         only by the bus (not libdbus) or used only by tests or not used at
7442         all. It has some false alarms, but looks like we can clean up a
7443         lot of size from libdbus.
7444
7445         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7446         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7447         
7448 2005-01-16  Havoc Pennington  <hp@redhat.com>
7449
7450         * Add and fix docs according to Doxygen warnings throughout
7451         source.
7452         
7453         * dbus/dbus-marshal-recursive.c
7454         (_dbus_type_reader_array_is_empty): change this to just call
7455         array_reader_get_array_len() and make it static
7456
7457         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7458         from get_array_type
7459         (dbus_message_iter_init_append): rename from append_iter_init
7460
7461         * dbus/dbus-marshal-recursive.c
7462         (_dbus_type_reader_get_element_type): rename from
7463         _dbus_type_reader_get_array_type
7464
7465 2005-01-15  Havoc Pennington  <hp@redhat.com>
7466
7467         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7468
7469         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7470         when DBUS_DISABLE_ASSERT
7471         (_dbus_marshal_set_basic): be sure we align for the string length
7472
7473         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7474         this look faster
7475
7476         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7477         inline macro version
7478         (_dbus_string_set_byte): provide inline macro version
7479
7480 2005-01-15  Havoc Pennington  <hp@redhat.com>
7481
7482         * Land the new message args API and type system.
7483
7484         This patch is huge, but the public API change is not 
7485         really large. The set of D-BUS types has changed somewhat, 
7486         and the arg "getters" are more geared toward language bindings;
7487         they don't make a copy, etc.
7488
7489         There are also some known issues. See these emails for details
7490         on this huge patch:
7491         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7492         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7493         
7494         * dbus/dbus-marshal-*: all the new stuff
7495
7496         * dbus/dbus-message.c: basically rewritten
7497
7498         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7499         freed blocks to be all non-nul bytes so using freed memory is less
7500         likely to work right
7501
7502         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7503         DBUS_FAIL_MALLOC=N environment variable, so you can do
7504         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7505         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7506         thorough.
7507
7508         * qt/message.cpp: port to the new message args API
7509         (operator<<): use str.utf8() rather than str.unicode()
7510         (pretty sure this is right from the Qt docs?)
7511
7512         * glib/dbus-gvalue.c: port to the new message args API
7513
7514         * bus/dispatch.c, bus/driver.c: port to the new message args API
7515
7516         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7517         "locked" flag to TRUE and align_offset to 0; I guess we never
7518         looked at these anyhow, but seems cleaner.
7519
7520         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7521         move allocation padding macro to this header; use it to implement
7522         (_DBUS_STRING_STATIC): ability to declare a static string.
7523
7524         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7525         change to return TRUE if the interface is not set.
7526
7527         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7528         to dbus-marshal-validate.[hc]
7529
7530         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7531         dbus-internals.c
7532
7533         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7534         to dbus-marshal-*.[hc]
7535
7536         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7537         function here from dbus-marshal.c
7538
7539 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7540
7541         * NEWS: Update for 0.23.
7542
7543         * configure.in: Release 0.23.
7544
7545 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7546
7547         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7548         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7549         behind.
7550
7551         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7552         uninstall"
7553
7554         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7555         is an enum, get the enum's underlying type.  Another mono
7556         1.1.3 fix.
7557
7558 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7559
7560         Patch from Sjoerd Simons <sjoerd@luon.net>
7561
7562         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7563         DESTDIR.  It breaks stuff.
7564
7565 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7566
7567         Patch from Tambet Ingo <tambet@ximian.com>
7568
7569         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7570         calling type.GetElementType().  The code previously depended on
7571         broken Mono behavior, which was fixed in Mono 1.1.3.
7572
7573         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7574         Activator.CreateInstance() so that the class's constructor is
7575         called with the right parameters.
7576
7577 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7578
7579         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7580
7581         * dbus/dbus-connection.c
7582         (_dbus_connection_queue_received_message_link): Call
7583         _dbus_connection_remove_timeout() instead of the _locked()
7584         variant, since it's always called from
7585         _dbus_connection_handle_watch(), which handles the locking.
7586         Removed the _locked() variant since it's no longer used.
7587
7588 2005-01-03  Havoc Pennington  <hp@redhat.com>
7589
7590         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7591         return
7592         
7593 2004-12-26  Havoc Pennington  <hp@redhat.com>
7594
7595         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7596
7597 2005-01-03  Havoc Pennington  <hp@redhat.com>
7598
7599         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7600         floating point
7601
7602         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7603
7604 2005-01-02  Havoc Pennington  <hp@redhat.com>
7605
7606         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7607
7608 2005-01-01  Havoc Pennington  <hp@redhat.com>
7609
7610         * configure.in: add -Wfloat-equal
7611
7612 2005-01-01  Havoc Pennington  <hp@redhat.com>
7613
7614         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7615         for a variety of reasons '==' doesn't do this.
7616
7617 2004-12-31  Havoc Pennington  <hp@redhat.com>
7618
7619         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7620         I keep wishing I had
7621
7622 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7623
7624         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7625
7626 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7627
7628         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7629         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7630         dbus-protocol.h.  Because they are defines and not enums they are not
7631         autogenerated.
7632
7633 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7634
7635         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7636         dbus_bus_activate_service
7637
7638         * python/dbus.py (Bus.activate_service): activate a service on the
7639         bus.
7640
7641 2004-12-24  Havoc Pennington  <hp@redhat.com>
7642
7643         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7644         file format has also changed and I haven't adapted to that yet
7645         
7646         * Makefile.am: load .gcno files from latest gcc
7647
7648 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7649         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7650
7651         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7652         lowlevel binding
7653
7654         * python/dbus.py (get_unix_user): Added binding to 
7655         call dbus_bindings.bus_get_unix_user
7656
7657         * python/extract.py: Modified the proto_pat regex to
7658         handle unsigned long
7659
7660 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7661
7662         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7663         better POSIX compliance.
7664
7665 2004-12-19  Havoc Pennington  <hp@redhat.com>
7666
7667         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7668         (_dbus_string_insert_8_aligned): new functions
7669
7670         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7671
7672 2004-12-18  Havoc Pennington  <hp@redhat.com>
7673
7674         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7675         macro
7676
7677         * dbus/dbus-message.c: fix a comment, and add a still-unused
7678         not-implemented function
7679
7680         * dbus/dbus-marshal.h: fix comment
7681
7682         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7683
7684 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7685
7686         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7687         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7688         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7689         Type.UnderlyingSystemType to get the actual system type
7690         underneath.  This code previously depended on the broken Mono
7691         behavior, which was fixed in 1.1.3.
7692
7693 2004-11-27  Havoc Pennington  <hp@redhat.com>
7694
7695         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7696         are disabled
7697         (_dbus_string_get_const_data): inline when asserts are disabled
7698
7699         * dbus/dbus-message.c: record the _dbus_current_generation of
7700         creation so we can complain if dbus_shutdown() is used improperly.
7701         Do this only if checks are enabled.
7702
7703         * dbus/dbus-connection.c: ditto
7704         
7705 2004-11-26  Havoc Pennington  <hp@redhat.com>
7706
7707         * test/glib/test-profile.c: add with_bus mode to profile echoes
7708         that go through the bus.
7709
7710         * test/glib/run-test.sh: add ability to run test-profile
7711
7712         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7713         config file reload.
7714
7715 2004-11-26  Havoc Pennington  <hp@redhat.com>
7716
7717         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7718         thing was implemented
7719
7720 2004-11-26  Havoc Pennington  <hp@redhat.com>
7721
7722         * test/glib/test-profile.c: tweak a bit, add support for some
7723         made-up minimal malloc overhead with plain sockets, since in 
7724         real life some sort of buffers are unavoidable thus we could 
7725         count them in the theoretical best case
7726
7727 2004-11-26  Havoc Pennington  <hp@redhat.com>
7728
7729         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7730         where I was trying to cache one too many messages
7731
7732 2004-11-26  Havoc Pennington  <hp@redhat.com>
7733
7734         * dbus/dbus-message.c: reimplement message cache as an array which 
7735         makes the cache about twice as fast and saves maybe 1.5% overall
7736
7737 2004-11-26  Havoc Pennington  <hp@redhat.com>
7738
7739         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7740         message cache lock here
7741
7742 2004-11-26  Havoc Pennington  <hp@redhat.com>
7743
7744         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7745         the "char byte_order" next to each other to save 4 bytes
7746         (dbus_message_new_empty_header): reduce preallocation, since the
7747         message cache should achieve a similar effect
7748         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7749         message cache that keeps a few DBusMessage around in a pool,
7750         another 8% speedup or so.
7751
7752         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7753
7754 2004-11-25  Havoc Pennington  <hp@redhat.com>
7755
7756         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7757         to write, without reading or blocking, try it before the poll()
7758         and skip the poll() if nothing remains to write. This is about a
7759         3% speedup in the echo client/server
7760
7761 2004-11-25  Havoc Pennington  <hp@redhat.com>
7762
7763         The primary change here is to always write() once before adding
7764         the write watch, which gives us about a 10% performance increase.
7765         
7766         * dbus/dbus-transport-unix.c: a number of modifications to cope
7767         with removing messages_pending
7768         (check_write_watch): properly handle
7769         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7770         messages_pending stuff
7771         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7772         AUTHENTICATED cases
7773         (unix_handle_watch): after writing, see if the write watch can be
7774         removed
7775         (unix_do_iteration): assert that write_watch/read_watch are
7776         non-NULL rather than testing that they aren't, since they 
7777         aren't allowed to be NULL. check_write_watch() at the end so 
7778         we add the watch if we did not finish writing (e.g. got EAGAIN)
7779
7780         * dbus/dbus-transport-protected.h: remove messages_pending call,
7781         since it resulted in too much inefficient watch adding/removing; 
7782         instead we now require that the transport user does an iteration 
7783         after queueing outgoing messages, and after trying the first
7784         write() we add a write watch if we got EAGAIN or exceeded our 
7785         max bytes to write per iteration setting
7786
7787         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7788         function
7789
7790         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7791         freed and then accessed, valgrind flagged this bug, fix it
7792
7793         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7794         as the last valid field plus 1, where really it is equal to the
7795         last valid field. Corrects some message corruption issues.
7796
7797         * dbus/dbus-mainloop.c: verbosity changes
7798
7799         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7800         instead of aborting in one of the test codepaths
7801
7802         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7803         caused not printing the pid ever again if a verbose was missing
7804         the newline at the end
7805         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7806
7807         * dbus/dbus-connection.c: verbosity changes; 
7808         (dbus_connection_has_messages_to_send): new function
7809         (_dbus_connection_message_sent): no longer call transport->messages_pending
7810         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7811         try to write() immediately, so we can avoid the write watch. This
7812         is the core purpose of this patchset
7813         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7814         dump the outgoing message queue, so nobody will get confused
7815         trying to send them or thinking stuff is pending to be sent
7816
7817         * bus/test.c: verbosity changes
7818
7819         * bus/driver.c: verbosity/assertion changes
7820
7821         * bus/dispatch.c: a bunch of little tweaks to get it working again
7822         because this patchset changes when/where you need to block.
7823
7824 2004-11-23  Havoc Pennington  <hp@redhat.com>
7825
7826         * test/glib/test-profile.c: modify to accept a plain_sockets
7827         argument in which case it will bench plain sockets instead of
7828         libdbus, for comparison purposes.
7829
7830 2004-11-22  Havoc Pennington  <hp@redhat.com>
7831
7832         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7833         threads for more time, so sysprof can get a grip on it.
7834
7835         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7836         pointless variable
7837
7838 2004-11-13  Havoc Pennington  <hp@redhat.com>
7839
7840         * test/glib/test-profile.c: fix this thing up a bit
7841
7842         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7843         preallocation sizes by a fair bit; not sure if this will be an
7844         overall performance win or not, but it does reduce reallocs.
7845
7846         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7847         the test hack that forced constant realloc if asserts are
7848         disabled, so we can profile sanely. Sprinkle in some
7849         _DBUS_UNLIKELY() which are probably pointless, but before I
7850         noticed the real performance problem I put them in.
7851         (_dbus_string_validate_utf8): micro-optimize this thing a little
7852         bit, though callgrind says it didn't help; then special-case
7853         ascii, which did help a lot; then be sure we detect nul bytes as
7854         invalid, which is a bugfix.
7855         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7856         superstition; use memset to nul the padding instead of a manual
7857         loop.
7858         (_dbus_string_get_length): inline this as a
7859         macro; it showed up in the profile because it's used for loop
7860         tests and so forth
7861
7862 2004-11-10  Colin Walters  <walters@verbum.org>
7863
7864         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7865         for extra paranoia.
7866
7867 2004-11-09  Colin Walters  <walters@verbum.org>
7868
7869         * dbus/dbus-string.c (_dbus_string_get_length): New
7870         function, writes DBusString to C buffer.
7871
7872         * dbus/dbus-string.h: Prototype it.
7873
7874         * dbus/dbus-message.c (dbus_message_type_to_string): New
7875         function, converts message type into C string.
7876
7877         * dbus/dbus-message.h: Prototype it.
7878
7879         * bus/selinux.c (bus_selinux_check): Take source pid,
7880         target pid, and audit data.  Pass audit data to
7881         avc_has_perm.
7882         (log_audit_callback): New function, appends extra
7883         audit information.
7884         (bus_selinux_allows_acquire_service): Also take
7885         service name, add it to audit data.
7886         (bus_selinux_allows_send): Also take message
7887         type, interface, method member, error name,
7888         and destination, and add them to audit data.
7889         (log_cb): Initialize func_audit.
7890         
7891         * bus/selinux.h (bus_selinux_allows_acquire_service)
7892         (bus_selinux_allows_send): Update prototypes 
7893
7894         * bus/services.c (bus_registry_acquire_service): Pass
7895         service name to bus_selinux_allows_acquire_service.
7896
7897         * bus/bus.c (bus_context_check_security_policy): Pass
7898         additional audit data.  Move assignment of dest
7899         to its own line.
7900
7901 2004-11-07  Colin Walters  <walters@verbum.org>
7902
7903         * dbus/dbus-transport-unix.c (do_authentication): Always
7904         initialize auth_completed.
7905         
7906 2004-11-07  Colin Walters  <walters@verbum.org>
7907
7908         * bus/bus.c (load_config): Break into three
7909         separate functions: process_config_first_time_only,
7910         process_config_every_time, and process_config_postinit.
7911         (process_config_every_time): Move call of
7912         bus_registry_set_service_context_table into
7913         process_config_postinit.
7914         (process_config_postinit): New function, does
7915         any processing that needs to happen late
7916         in initialization (and also on reload).
7917         (bus_context_new): Instead of calling load_config,
7918         open config parser here and call process_config_first_time_only
7919         and process_config_every_time directly.  Later, after
7920         we have forked but before changing UID,
7921         invoke bus_selinux_full_init, and then call
7922         process_config_postinit.
7923         (bus_context_reload_config): As in bus_context_new,
7924         load parse file inside here, and call process_config_every_time
7925         and process_config_postinit.
7926
7927         * bus/services.h, bus/services.c
7928         (bus_registry_set_service_context_table): Rename
7929         from bus_registry_set_sid_table.  Take string hash from config
7930         parser, and convert them here into SIDs.
7931
7932         * bus/config-parser.c (struct BusConfigParser): Have
7933         config parser only store a mapping of service->context
7934         string.
7935         (merge_service_context_hash): New function.
7936         (merge_included): Merge context string hashes instead
7937         of using bus_selinux_id_table_union.
7938         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7939         simply create a new string hash.
7940         (bus_config_parser_unref): Unref it.
7941         (start_selinux_child): Simply insert strings into hash,
7942         don't call bus_selinux_id_table_copy_over.
7943
7944         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7945         (bus_selinux_id_table_copy_over): Delete.
7946
7947 2004-11-03  Colin Walters  <walters@verbum.org>
7948
7949         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7950         variables.
7951         
7952 2004-11-03  Colin Walters  <walters@verbum.org>
7953
7954         * bus/test-main.c (test_pre_hook): Fix test logic,
7955         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7956
7957 2004-11-02  Colin Walters  <walters@redhat.com>
7958
7959         * bus/selinux.c (bus_selinux_init): Split into two functions,
7960         bus_selinux_pre_init and bus_selinux_post_init.
7961         (bus_selinux_pre_init): Just determine whether SELinux is
7962         enabled.
7963         (bus_selinux_post_init): Do everything else.
7964
7965         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7966         config file, and bus_selinux_post_init after.  This ensures that
7967         we don't lose the policyreload notification thread that
7968         bus_selinux_init created before forking previously.
7969         
7970         * bus/test-main.c (test_pre_hook): Update for split.
7971
7972 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7973
7974         Patch from Johan Fischer <linux@fischaz.com>
7975         
7976         * mono/doc/Makefile.am (install-data-local): Added directory
7977         install for DESTDIR
7978
7979 2004-10-29  Colin Walters  <walters@redhat.com>
7980
7981         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7982         parameter for fd to write pid to.       
7983
7984         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7985         
7986         * bus/bus.c (bus_context_new): Pass print_pid_fd
7987         to _dbus_become_daemon (bug #1720)
7988
7989 2004-10-29  Colin Walters  <walters@redhat.com>
7990
7991         Patch from Ed Catmur <ed@catmur.co.uk>
7992
7993         * mono/doc/Makefile.am (install-data-local): Handle
7994         DESTDIR.
7995
7996 2004-10-29  Colin Walters  <walters@redhat.com>
7997
7998         * bus/.cvsignore, qt/.cvsignore: Update.
7999
8000 2004-10-29  Colin Walters  <walters@redhat.com>
8001
8002         Patch from Kristof Vansant <de_lupus@pandora.be>
8003
8004         * configure.in: Detect Slackware.
8005         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
8006         * bus/rc.messagebus.in: New file.
8007
8008 2004-10-29  Colin Walters  <walters@redhat.com>
8009
8010         * tools/dbus-monitor.c (filter_func): Return
8011         DBUS_HANDLER_RESULT_HANDLED in filter function
8012         for now.  See:
8013         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
8014
8015 2004-10-29  Colin Walters  <walters@redhat.com>
8016
8017         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
8018
8019         * bus/services.c (bus_registry_acquire_service): 
8020         Correctly retrieve service name from DBusString
8021         for printing.
8022
8023 2004-10-29  Colin Walters  <walters@redhat.com>
8024
8025         * dbus/dbus-glib.h: Update documentation to not
8026         refer to internal APIs.
8027
8028 2004-10-27  Joe Shaw  <joeshaw@novell.com>
8029
8030         * mono/Arguments.cs (GetDBusTypeConstructor):
8031         type.UnderlyingSystemType will return "System.Byte" if you do it
8032         on "byte[]", which is not what we want.  So check the type.IsArray
8033         property and use System.Array instead.
8034
8035 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
8036
8037         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
8038         the DBusUserInfo structure since this is passed into the function.
8039         This would cause a double free when the function that allocated
8040         the structure would try to free it when an error occured.
8041
8042         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
8043         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
8044         for service activation to avoid 32bit/64bit parallel install issues
8045
8046 2004-10-21  Colin Walters  <walters@verbum.org>
8047
8048         * AUTHORS: Fix my email address, the @gnu.org one
8049         has been bouncing for some time.  Also add J5.
8050         
8051 2004-10-21  Colin Walters  <walters@verbum.org>
8052
8053         * dbus/dbus-transport-unix.c (do_authentication): Return
8054         authentication status to callers.
8055         (unix_handle_watch): If we completed authentication this round,
8056         don't do another read.  Instead wait until the next iteration,
8057         after we've read any pending data in the auth buffer.
8058         (unix_do_iteration): Ditto.
8059         (unix_handle_watch): Updated for new do_authentication prototype.
8060
8061 2004-10-18  Colin Walters  <walters@verbum.org>
8062
8063         * bus/selinux.c (bus_selinux_enabled): Handle
8064         --disable-selinux case.
8065         
8066 2004-10-18  Colin Walters  <walters@verbum.org>
8067
8068         * bus/selinux.h: Add bus_selinux_enabled.
8069         
8070         * bus/selinux.c (bus_selinux_enabled): Implement it.
8071         
8072         * bus/config-parser.c (struct include): Add
8073         if_selinux_enabled member.
8074         (start_busconfig_child): Parse if_selinux_enabled
8075         attribute for include.
8076         (bus_config_parser_content): Handle it.
8077
8078         * bus/session.conf.in, bus/system.conf.in: Add
8079         inclusion of context mapping to default config files;
8080         conditional on SELinux being enabled.
8081         
8082         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
8083         
8084         * test/data/invalid-config-files/badselinux-1.conf, 
8085         test/data/invalid-config-files/badselinux-2.conf:
8086         Test files for bad syntax.
8087         
8088 2004-10-17  Colin Walters  <walters@verbum.org>
8089
8090         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
8091         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
8092         format specifier mismatches.
8093
8094 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8095
8096         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
8097         format string.
8098
8099         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
8100         pointer (bug #1540, Leonardo Boiko).
8101
8102 2004-09-28  Jon Trowbridge  <trow@ximian.com>
8103
8104         * mono/BusDriver.cs: Changed BusDriver struct to remove
8105         the ServiceCreated and ServiceDeleted events and replace them
8106         with the new ServiceOwnerChanged event.
8107
8108         * mono/example/BusListener.cs: Added a new example program,
8109         which listens for and reports any ServiceOwnerChanged events
8110         on the bus driver.
8111
8112         * mono/example/Makefile.am (DESTDIR): Build changes for the
8113         new BusListener.cs example.
8114
8115 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8116
8117         * bus/signals.c (bus_match_rule_parse): validate the components of
8118         match rules (bug #1439).
8119
8120         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
8121
8122 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8123
8124         * doc/dbus-specification.xml: document ServiceOwnerChanged
8125         signal.
8126         
8127         * bus/driver.c, bus/driver.h, bus/services.c: Use
8128         ServiceOwnerChanged signal instead of ServiceCreated and
8129         ServiceDeleted.
8130         
8131         * bus/dispatch.c: update testcase for the new signal.
8132
8133 2004-09-20  Jon Trowbridge  <trow@ximian.com>
8134
8135         Patch from Nat Friedman <nat@novell.com>
8136
8137         * mono/Makefile.am: A number of small build fixes to allow "make
8138         distcheck" to succeed.
8139
8140         * mono/example/Makefile.am: "make distcheck" fixes.
8141
8142         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
8143         key in @srcdir@.
8144
8145         * test/Makefile.am: "make distcheck" fixes.
8146
8147 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8148
8149         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
8150
8151         * doc/busconfig.dtd: update the DTD for the at_console attribute.
8152
8153         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
8154         messages after the first one (bug #1389).
8155         
8156         * bus/dispatch.c (check_double_hello_message): add a test case for
8157         the double hello message bug.
8158         (check_existent_service_activation): fix check of spawning error.
8159         
8160 2004-09-16  David Zeuthen  <david@fubar.dk>
8161
8162         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
8163
8164 2004-09-12  David Zeuthen  <david@fubar.dk>
8165
8166         Patch from Kay Sievers <kay.sievers@vrfy.org>
8167
8168         * bus/bus.c (bus_context_new):
8169         * bus/bus.h:
8170         * bus/main.c (usage)
8171         (main):
8172         Add commandline option --nofork to override configuration file
8173         setting.
8174
8175 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8176
8177         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
8178         compilers don't like it (bug #974).
8179
8180 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
8181
8182         * qt/connection.*: Applied patch by Jérôme Lodewyck
8183         <lodewyck@clipper.ens.fr> to integrate an existing
8184         connection into the Qt eventloop
8185
8186 2004-08-30  Jon Trowbridge  <trow@ximian.com>
8187
8188         * mono/BusDriver.cs: Added.  This is a class for interacting with
8189         the org.freedesktop.DBus service.
8190
8191         * mono/Message.cs: Added a mechanism to expose the message that is
8192         currently being dispatched via the static Message.Current
8193         property.  Added Message.Sender and Message.Destination
8194         properties.
8195
8196         * mono/Handler.cs: Expose the dispatched message via
8197         Message.Current when handling method calls.
8198
8199         * mono/Service.cs: Expose the dispatched message via
8200         Message.Current when handling signal emissions.
8201         
8202         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
8203         Connection.BaseService property.
8204
8205 2004-08-28  Havoc Pennington  <hp@redhat.com>
8206
8207         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
8208
8209         More fixes from Steve Grubb
8210         
8211         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
8212         (_dbus_listen_tcp_socket): fix fd leak
8213
8214         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
8215         EINTR to a bit lower in the code
8216
8217 2004-08-26  Jon Trowbridge  <trow@ximian.com>
8218
8219         * bus/driver.c (bus_driver_handle_service_exists): Respond with
8220         TRUE if we are inquiring about the existence of the built-in
8221         org.freedesktop.DBus service.
8222
8223 2004-08-25  John Palmieri  <johnp@redhat.com>
8224         * bus/config-parser.c:
8225         (struct PolicyType): Add POLICY_CONSOLE
8226         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
8227         (start_busconfig_child): Sets up console element when
8228         <policy at_console=""> is encountered in a policy file
8229         (append_rule_from_element): Convert console elements to console
8230         rules.
8231
8232         * bus/policy.c: 
8233         (bus_policy_create_client_policy): Add console rules to the client
8234         policy based on if the client is at the console
8235         (bus_policy_append_console_rule): New function for adding a
8236         console rule to a policy
8237         (bus_policy_merge): Handle console rule merging
8238
8239         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
8240         where we check for console user files
8241         
8242         * dbus/dbus-sysdeps.c:
8243         (_dbus_file_exists): New function which checks if the given
8244         file exists
8245         (_dbus_user_at_console): New function which does the system
8246         specific process of checking if the user is at the console
8247
8248         * dbus/dbus-userdb.c:
8249         (_dbus_is_console_user): New function converts a UID to user name
8250         and then calls the system specific _dbus_user_at_console to 
8251         see if the user is at the console and therefor a console user
8252
8253 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8254
8255         * bus/config-parser.c (set_limit):
8256         * bus/dbus-daemon-1.1.in:
8257         * test/data/valid-config-files/many-rules.conf: set the
8258         max_match_rules_per_connection limt from the config file. 
8259
8260         * doc/busconfig.dtd: update the DTD.
8261
8262         * bus/driver.c: remove some unused variables.
8263
8264 2004-08-24  Mikael Hallendal  <micke@imendio.com>
8265
8266         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
8267         it's been replaced by dbus_g_bus_get
8268
8269 2004-08-23  Colin Walters  <walters@redhat.com>
8270
8271         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8272
8273         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
8274
8275         * bus/selinux.c: Create a thread for policy reload notification.
8276         (bus_selinux_get_policy_root): Implement.
8277
8278         * bus/config-parser.c (start_busconfig_child)
8279         (bus_config_parser_content): Support SELinux-root relative
8280         inclusion.
8281
8282         * configure.in <HAVE_SELINUX>: Add -lpthread.
8283         
8284         * bus/test-main.c (test_pre_hook, test_post_hook): New.
8285         (test_post_hook): Move memory checking into here.
8286         (test_pre_hook, test_post_hook): Move SELinux checks in
8287         here, but conditional on a DBUS_TEST_SELINUX environment
8288         variable.  Unfortunately we can't run the SELinux checks
8289         as a normal user, since they won't have any permissions
8290         for /selinux.  So this will have to be tested manually
8291         for now, until we have virtualization for most of
8292         libselinux.
8293         
8294 2004-08-23  Havoc Pennington  <hp@redhat.com>
8295
8296         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
8297         drop supplementary groups, suggested by Steve Grubb
8298
8299 2004-08-20  Colin Walters  <walters@redhat.com>
8300
8301         * bus/config-parser.c (start_busconfig_child): Remove some unused
8302         variables.
8303         
8304         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
8305         warning.
8306
8307 2004-08-17  Joe Shaw  <joeshaw@novell.com>
8308
8309         * configure.in: If --enable-mono is passed in, if we can't find
8310         mono error out.
8311
8312         * mono/Makefile.am: Use /gacutil to install assemblies into the
8313         GAC and not /root.
8314
8315 2004-08-12  Havoc Pennington  <hp@redhat.com>
8316
8317         * NEWS: update for 0.22
8318
8319         * configure.in: release 0.22
8320
8321 2004-08-11  Colin Walters  <walters@redhat.com>
8322
8323         * tools/dbus-send.c (main, usage): Add --reply-timeout
8324         argument.
8325
8326 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8327
8328         * bus/bus.c (process_config_first_time_only): get rid of an unused
8329         DBusError that was causing a memoy leak (bug #989).
8330
8331         * dbus/dbus-keyring.c, dbus/dbus-message.c:
8332         fix compilation on Solaris/Forte C (bug #974)
8333
8334         * bus/main.c (main): plug two minuscule memleaks.
8335
8336 2004-08-10  Havoc Pennington  <hp@redhat.com>
8337
8338         * doc/dbus-tutorial.xml: add some more info on GLib bindings
8339
8340 2004-08-09  Havoc Pennington  <hp@redhat.com>
8341
8342         * COPYING: switch to Academic Free License version 2.1 instead of
8343         2.0, to resolve complaints about patent termination clause.
8344
8345 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
8346
8347         * README: added documentation for the --enable-python 
8348         configure switch.
8349
8350 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8351
8352         * bus/config-parser.c (bus_config_parser_new): fix an invalid
8353         _unref in the SELinux support.
8354
8355         * doc/busconfig.dtd: update DTD for SELinux support.
8356
8357         * bus/config-loader-libxml.c: fix error handler and parser
8358         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8359
8360         * configure.in: remove the warning about libxml2.
8361
8362         * dbus/dbus-bus.c: silence doxygen warning.
8363
8364 2004-07-31  Colin Walters  <walters@redhat.com>
8365
8366         * configure.in: Move #error in SELinux check to its own line.
8367
8368 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8369
8370         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8371         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8372         dbus_error_set.
8373
8374         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8375         broken by the change in the _SET_OOM macros.
8376
8377 2004-07-31  Colin Walters  <walters@redhat.com>
8378
8379         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8380         BUS_SET_OOM.
8381
8382 2004-07-31  Colin Walters  <walters@redhat.com>
8383
8384         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8385         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8386         AC_MSG_CHECKING.
8387
8388 2004-07-24  Havoc Pennington  <hp@redhat.com>
8389
8390         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8391
8392         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8393         functionality
8394
8395         * configure.in: add --enable-selinux
8396         
8397         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8398
8399         * bus/main.c (main): initialize and shut down selinux
8400
8401         * bus/connection.c: store SELinux ID on each connection, to avoid 
8402         repeated getting of the string context and converting it into 
8403         an ID
8404
8405         * bus/bus.c (bus_context_get_policy): new accessor, though it
8406         isn't used
8407         (bus_context_check_security_policy): check whether the security
8408         context of sender connection can send to the security context of
8409         recipient connection
8410
8411         * bus/config-parser.c: add parsing for <selinux> and <associate>
8412         
8413         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8414         implement dbus_connection_get_unix_fd()
8415
8416         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8417         function, used by the selinux stuff
8418         
8419 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8420
8421         * bus/config-loader-libxml.c: complete the implementation of
8422         libxml backend for config file loader. Doesn't work with full OOM
8423         test yet. 
8424         
8425         * configure.in: change error when selecting libxml into a warning.
8426         
8427         * test/data/invalid-config-files: add two non-well-formed XML
8428         files. 
8429         
8430         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8431         
8432         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8433         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8434         be necessary to read all the buffer. (bug #894)
8435
8436         * bus/activation.c (bus_activation_activate_service): fix a
8437         potential assertion failure (bug #896). Small optimization in the
8438         case of auto-activation messages.
8439
8440         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8441         add test case for byte-through-vararg bug (#901). patch by Kimmo
8442         Hämäläinen. 
8443
8444 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8445
8446         * python/dbus.py:
8447         * python/dbus_bindings.pyx.in:
8448         Add dbus.init_gthreads (), allow emit_signal to pass
8449         arguments to the signal.
8450         
8451 2004-07-24  Havoc Pennington  <hp@redhat.com>
8452
8453         * AUTHORS: add some people, not really comprehensively, let me
8454         know if I missed you
8455
8456 2004-07-24  Havoc Pennington  <hp@redhat.com>
8457
8458         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8459         Owen
8460
8461         * test/Makefile.am (DIST_SUBDIRS): here also
8462
8463 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8464
8465         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8466         breaking build on Solaris, reported by Farhad Saberi on the ML.
8467
8468         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8469         va_arg invocation to account for integer promotion in the case of
8470         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8471
8472         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8473         _dbus_list_get_first_link, not _dbus_list_get_first.
8474
8475         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8476
8477         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8478         handler functions so that the asserts in _dbus_object_subtree_unref
8479         do not fail.
8480
8481         * dbus/dbus-transport-unix.c (do_reading):
8482         _dbus_transport_queue_messages return value is of type
8483         dbus_bool_t, not DBusDispatchStatus.
8484         
8485 2004-07-19  David Zeuthen  <david@fubar.dk>
8486
8487         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8488
8489         * bus/dispatch.c:
8490         (check_get_connection_unix_user): Debug says GetProperty; but the
8491         method is called GetConnectionUnixUser
8492         (check_get_connection_unix_process_id): New function
8493         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8494         also call check_get_connection_unix_process_id()
8495         
8496         * bus/driver.c:
8497         (bus_driver_handle_get_connection_unix_process_id): New function,
8498         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8499         interface
8500         
8501         * dbus/dbus-auth.c:
8502         (handle_server_data_external_mech): Set pid from the credentials
8503         obtained from the socket
8504         
8505         * dbus/dbus-connection.c:
8506         (dbus_connection_get_unix_process_id): New function
8507         
8508         * dbus/dbus-connection.h: 
8509         Add prototype for dbus_connection_get_unix_process_id
8510         
8511         * dbus/dbus-transport.c:
8512         (_dbus_transport_get_unix_process_id): New function
8513         
8514         * dbus/dbus-transport.h:
8515         Add prototype for _dbus_transport_get_unix_process_id
8516         
8517 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8518
8519         * dbus/dbus-message.c: Message counter fix, patch by Christian
8520         Hammond <chipx86@gnupdate.org>
8521
8522 2004-07-18  Seth Nickell  <seth@gnome.org>
8523
8524         * python/dbus.py:
8525         * python/dbus_bindings.pyx.in:
8526         * python/tests/test-client.py:
8527
8528         Add dbus.ByteArray and dbus_bindings.ByteArray
8529         types so that byte streams can be passed back.
8530
8531         Give jdahlin the heaps of credit that are so
8532         rightfully his.
8533         
8534 2004-07-12  Seth Nickell  <seth@gnome.org>
8535
8536         * python/dbus.py:
8537
8538         Add message argument to the default object_method_handler
8539         function.
8540         
8541         * python/dbus_bindings.pyx.in:
8542
8543         Automatically return NIL when passed an empty list
8544         (we can't pass back a list since lists are typed
8545         and we don't have any idea what type the the client
8546         intended the list to be... :-( )
8547         
8548 2004-07-10  Seth Nickell  <seth@gnome.org>
8549
8550         * python/examples/Makefile.am:
8551
8552         Fix distcheck breakage caused by new examples.
8553
8554 2004-07-10  Seth Nickell  <seth@gnome.org>
8555
8556         * python/dbus.py:
8557
8558         Add "message" argument to service-side dbus.Object
8559         methods. This will break existing services written
8560         using the python bindings, but will allow extraction
8561         of all the message information (e.g. who its from).
8562
8563         Add improved "object oriented" signal handling/emission.
8564         
8565         * python/examples/example-service.py:
8566
8567         Nix this example.
8568         
8569         * python/examples/example-signal-emitter.py:
8570         * python/examples/example-signal-recipient.py:
8571
8572         Two new examples that show how to emit and receive
8573         signals using the new APIs.
8574         
8575         * python/examples/example-signals.py:
8576         * python/examples/gconf-proxy-service.py:
8577         * python/examples/gconf-proxy-service2.py:
8578
8579         Add "message" argument to service methods.
8580
8581 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8582
8583         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8584         * dbus/bus.c (dbus_bus_get_unix_user)
8585         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8586         method of org.freedesktop.DBus interface.
8587
8588         * bus/dispatch.c: test case
8589
8590 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8591
8592         * python/Makefile.am: switched include directory from glib/ to dbus/
8593         since dbus-glib.h moved
8594  
8595 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8596
8597         * configure.in: prevent building the gcj stuff and libxml loader
8598         since they are broken.
8599
8600 2004-06-20  Havoc Pennington  <hp@redhat.com>
8601
8602         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8603         codes from the dbus error names
8604         
8605         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8606         as dbus/dbus-glib.h and that breakage is now visible due to 
8607         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8608         
8609         * glib/dbus-glib.h: s/gproxy/g_proxy/
8610
8611         * dbus/dbus-shared.h: new header to hold stuff shared with
8612         binding APIs
8613         
8614         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8615         than dbus-errors.h
8616
8617         * glib/dbus-glib.h (dbus_set_g_error): move to
8618         dbus-glib-lowlevel.h
8619
8620         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8621         of stuff to enable this
8622
8623         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8624
8625         * a bunch of other changes with the same basic "separate glib 
8626         bindings from dbus.h" theme
8627         
8628 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8629
8630         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8631
8632         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8633
8634 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8635
8636         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8637         the reply value of the ServiceExists message.
8638
8639 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8640
8641         * python/dbus_bindings.pyx.in: No longer need to parse path
8642         elements and pass them as arrays of strings.  The C API now
8643         accepts plain path strings.
8644         (_build_parsed_path): removed 
8645
8646 2004-06-07  Havoc Pennington  <hp@redhat.com>
8647
8648         * doc/TODO: remove auto-activation item since it's done; sort
8649         items by importance/milestone
8650
8651 2004-06-07  Havoc Pennington  <hp@redhat.com>
8652
8653         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8654         random signature when using REQUIRED_FIELDS (this hack won't work
8655         in the long term)
8656
8657         * dbus/dbus-message.c: change the signature to be a header field,
8658         instead of message->signature special-case string. Incremental
8659         step forward. Then we can fix up code to send the signature in the
8660         message, then fix up code to validate said signature, then fix up
8661         code to not put the typecodes inline, etc.
8662         (load_one_message): don't make up the signature after the fact
8663         (decode_header_data): require signature field for the known
8664         message types
8665
8666         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8667
8668         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8669
8670 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8671
8672         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8673
8674         * mono/Handler.cs: Updated to follow new path argument for
8675         (un-)registering objects.
8676
8677         * mono/example/Makefile.am:
8678         * mono/Makefile.am:
8679         * configure.in: Bumped required version for mono and use new -pkg
8680         syntax for deps
8681
8682 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8683
8684         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8685         registration functions take the path argument as char* instead of
8686         char**.
8687
8688         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8689         split off the path decompostion part of
8690         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8691         warnings. 
8692
8693         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8694         
8695 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8696  
8697         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8698         machine approach.  A state is implemented as a function that
8699         handles incoming events as specified for that state.
8700         
8701         * doc/dbus-specification.xml: Update auth protocol state machine
8702         specification to match implementation.  Remove some leftover
8703         base64 examples.
8704
8705 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8706
8707         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8708         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8709         quiet doxygen.
8710
8711         * Doxyfile.in: remove deprecated options.
8712
8713         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8714         glib/test-thread.h, glib/test-thread-client.c,
8715         glib/test-thread-server.c, glib/test-profile.c,
8716         glib/test-dbus-glib.c: remove these unused files.
8717
8718 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8719
8720         * dbus/dbus-object-tree.c
8721         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8722         non-fallback handlers (bug #684).
8723         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8724         (find_subtree_recurse): report wether the returned subtree is an
8725         exact match or a "fallback" match higher up in the tree.
8726         (object_tree_test_iteration): update test case.
8727
8728 2004-06-01  Seth Nickell  <seth@gnome.org>
8729
8730         * python/dbus_bindings.pyx.in:
8731         * python/tests/test-client.py:
8732
8733         Round off basic type support. Add dicts (yay!), and 
8734         remaining array types.
8735
8736         Make MessageIter more general so it works for dicts too.
8737
8738         Mark all loop variables as C integers.
8739         
8740 2004-05-31  Havoc Pennington  <hp@redhat.com>
8741
8742         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8743         "in" before "out"
8744
8745         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8746
8747         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8748         option that runs the tests, and start filling in some code
8749         including for starters just dumping the interfaces to stdout
8750
8751         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8752
8753         * test/data/valid-introspection-files/lots-of-types.xml: test of
8754         an example introspection file
8755
8756         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8757         "node" (I think...)
8758
8759 2004-05-31  Seth Nickell  <seth@gnome.org>
8760
8761         * python/dbus_bindings.pyx.in:
8762         * python/tests/test-client.py:
8763
8764         Test Suite: 1
8765         Python Bindings: 0
8766
8767         Fix string array memory trashing bug... oops...
8768
8769 2004-05-30  Seth Nickell  <seth@gnome.org>
8770
8771         * python/dbus.py:
8772
8773         Add a nicer-but-less-flexible alternate API for handling 
8774         calls to virtual objects in dbus.ObjectTree.
8775
8776         Screw up the argument order to the dbus.Object constructor
8777         for consistency with dbus.ObjectTree (and to make dbus_methods
8778         optional for future extension)
8779         
8780         * python/examples/Makefile.am:
8781         * python/examples/gconf-proxy-service.py:
8782         * python/examples/gconf-proxy-service2.py:
8783
8784         Alternate implementation of gconf-proxy-service using the
8785         nicer dbus.ObjectTree API.
8786         
8787         * python/examples/example-service.py:
8788         * python/tests/test-server.py
8789
8790         Reverse the argument order to deal with dbus.Object constructor
8791         changes.
8792         
8793 2004-05-30  Seth Nickell  <seth@gnome.org>
8794
8795         * python/examples/example-client.py:
8796         * python/examples/example-service.py:
8797
8798         Take it back. Lists seem to work but they're broken
8799         in the test suite. Make the base examples use
8800         lists (works fine).
8801
8802 2004-05-30  Seth Nickell  <seth@gnome.org>
8803
8804         * python/dbus_bindings.pyx.in:
8805         * python/tests/test-client.py:
8806
8807         Add some more tests and fix errors that crop up.
8808         Unfortunately, currently it seems like marshalling
8809         and unmarshalling of lists is completely broken :-(
8810
8811 2004-05-30  Seth Nickell  <seth@gnome.org>
8812
8813         * python/dbus_bindings.pyx.in:
8814
8815         Add support for ObjectPath type.
8816
8817         * python/dbus.py:
8818
8819         Refactor message handling code to a common function.
8820         
8821         * python/tests/test-client.py:
8822         * python/tests/test-server.py:
8823
8824         Add tests that check to make sure values of all types
8825         can be echoed from a service w/o mangling.
8826         
8827 2004-05-29  Seth Nickell  <seth@gnome.org>
8828
8829         * python/dbus.py:
8830
8831         Add ObjectTree class which allows implementation
8832         of trees of "virtual" objects. Basically the python
8833         wrapper for "register_fallback".
8834         
8835         * python/examples/Makefile.am
8836         * python/examples/gconf-proxy-client.py:
8837         * python/examples/gconf-proxy-service.py:
8838
8839         Implement a simple GConf proxy service that supports
8840         get/set on string and int GConf keys using the ObjectTree.
8841         
8842 2004-05-29  Seth Nickell  <seth@gnome.org>
8843
8844         * python/dbus.py:
8845         * python/examples/example-client.py:
8846         * python/examples/example-service.py:
8847         * python/examples/list-system-services.py:
8848
8849         Add SessionBus, SystemBus and ActivationBus classes
8850         so you don't need to know the special little BUS_TYPE
8851         flag.
8852         
8853 2004-05-29  Havoc Pennington  <hp@redhat.com>
8854
8855         * bus/config-parser.c (process_test_valid_subdir): temporarily
8856         stop testing config parser OOM handling, since expat has issues
8857         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8858
8859         * bus/dbus-daemon-1.1.in: change requested_reply to
8860         send_requested_reply/receive_requested_reply so we can send the
8861         replies, not just receive them.
8862
8863         * bus/config-parser.c: parse the new
8864         send_requested_reply/receive_requested_reply
8865
8866         * bus/policy.c (bus_client_policy_check_can_send): add
8867         requested_reply argument and use it
8868
8869         * bus/bus.c (bus_context_check_security_policy): pass through
8870         requested_reply status to message send check
8871
8872         * bus/system.conf.in: adapt to requested_reply change
8873         
8874 2004-05-28  Havoc Pennington  <hp@redhat.com>
8875
8876         * test/glib/test-service-glib.c (main): remove unused variable
8877
8878         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8879
8880         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8881         from the enum, no longer in use.
8882
8883         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8884         works right.
8885
8886         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8887         whether error_name passed in is a valid error name.
8888
8889 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8890
8891         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8892         OBJECT_PATH and OBJECT_PATH_ARRAY
8893
8894 2004-05-28  Seth Nickell  <seth@gnome.org>
8895
8896         * python/examples/Makefile.am:
8897
8898         Forget to add Makefile.am. Do not pass go.
8899
8900 2004-05-28  Michael Meeks  <michael@ximian.com>
8901
8902         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8903         fix no int64 case.
8904
8905         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8906
8907         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8908         (_dbus_message_iter_get_basic_type_array): impl.
8909         drastically simplify ~all relevant _get methods to use these.
8910         (_dbus_message_iter_append_basic_array),
8911         (dbus_message_iter_append_basic): impl
8912         drastically simplify ~all relevant _append methods to use these.
8913
8914         * dbus/dbus-message-builder.c (parse_basic_type) 
8915         (parse_basic_array, lookup_basic_type): impl.
8916         (_dbus_message_data_load): prune scads of duplicate /
8917         cut & paste coding.
8918
8919         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8920         (_dbus_demarshal_basic_type): implement,
8921         (demarshal_and_validate_len/arg): beef up debug.
8922         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8923
8924 2004-05-27  Seth Nickell  <seth@gnome.org>
8925
8926         * configure.in:
8927         * python/Makefile.am:
8928
8929         Include the example python apps in the tarball.
8930         
8931         * python/examples/list-system-services.py
8932
8933         Add a python new example that fetches the list of services
8934         from the system bus.
8935         
8936 2004-05-27  Seth Nickell  <seth@gnome.org>
8937
8938         * python/dbus.py:
8939         * python/dbus_bindings.pyx.in:
8940
8941         Fix failure to notify that a signal was not handled,
8942         resulted in hung functions.
8943         
8944 2004-05-25  Colin Walters  <walters@redhat.com>
8945
8946         * tools/dbus-monitor.c (main): Monitor all types of messages.
8947
8948 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8949
8950         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8951         which unregisters the object path and disposes the handler.
8952
8953 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8954  
8955         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8956          
8957         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8958         operands to && so we call dbus_message_iter_next () for the last
8959         argument also.
8960
8961 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8962
8963         * dbus/dbus-object-tree.c
8964         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8965         children even if the requested path isn't registered.
8966         (object_tree_test_iteration): test object_tree_list_registered.
8967
8968         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8969         it to 0.
8970         
8971 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8972
8973         * doc/TODO: Remove resolved items.
8974
8975         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8976         field.
8977         
8978         * bus/connection.c (bus_connections_expect_reply): Enforce the
8979         per-connection limit on pending replies.
8980         
8981         Patch from Jon Trowbridge <trow@ximian.com>:
8982  
8983         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8984         up a watch that triggers a config reload when one end of the pipe
8985         becomes readable.
8986         (signal_handler): Instead of doing the config reload in our SIGHUP
8987         handler, just write to the reload pipe and let the associated
8988         watch handle the reload when control returns to the main loop.
8989  
8990         * bus/driver.c (bus_driver_handle_reload_config): Added.
8991         Implements a ReloadConfig method for requesting a configuration
8992         file reload via the bus driver.
8993  
8994 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8995
8996         * HACKING: Updated release instructions concerning the wiki page.
8997
8998 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8999
9000         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
9001         filter against auth->allowed_mechs; we only add allowed mechs in
9002         record_mechanisms().
9003  
9004         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
9005         ALLOWED_MECHS to auth-script format so we can set the list of
9006         allowed mechanisms.
9007  
9008         * data/auth/client-out-of-mechanisms.auth-script: New test to
9009         check client disconnects when it is out of mechanisms to try.
9010  
9011         * dbus/dbus-auth.c (process_command): Remove check for lines
9012         longer that 1 MB; we only buffer up maximum 16 kB.
9013  
9014         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
9015         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
9016         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
9017         assume there might be unused bytes.
9018  
9019         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
9020         client-out-of-mechs, it is handled in process_reject(). Move check
9021         for max failures to send_rejected(), as it's a server-only thing.
9022
9023         * dbus/dbus-auth.c: Factor out protocol reply code into functions
9024         send_auth(), send_data(), send_rejected(), send_error(),
9025         send_ok(), send_begin() and send_cancel().
9026
9027 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
9028
9029         Remove base64 encoding, replace with hex encoding. Original patch
9030         from trow@ximian.com, added error handling.
9031
9032         * dbus/dbus-string.c (_dbus_string_base64_encode)
9033         (_dbus_string_base64_decode): Remove.
9034         (_dbus_string_hex_decode): Add end_return argument so we can
9035         distinguish between OOM and invalid hex encoding.
9036         (_dbus_string_test): Remove base64 tests and add test case for
9037         invalid hex.
9038
9039         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
9040         Replace base64 with hex.
9041
9042         * test/data/auth/invalid-hex-encoding.auth-script: New test case
9043         for invalid hex encoded data in auth protocol.
9044
9045 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9046
9047         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
9048         leak.
9049
9050 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
9051
9052         * mono/dbus-sharp.dll.config.in: Added for GAC
9053         * mono/dbus-sharp.snk: Added for GAC
9054         * mono/Assembly.cs.in: Added for GAC
9055         * mono/Makefile.am: Changes for GAC installation        
9056         * configure.in: Added refs for dbus-sharp.dll.config.in and
9057         Assembly.cs.in. More fixes for mono testing
9058         * mono/example/Makefile.am: Changed var to CSC
9059         * Makefile.am: Changed flag name to DBUS_USE_CSC
9060
9061 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
9062
9063         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
9064         * mono/doc/*: Added documentation framework
9065         * configure.in: Added monodoc check
9066         * README: Added description of mono configure flags
9067
9068 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
9069
9070         * doc/dbus-specification.xml: Added a "Required" column to the 
9071         header fields table and changed the "zero or more" verbage in
9072         the above paragraph to read "The header must contain the required 
9073         named header fields and zero or more of the optional named header 
9074         fields".
9075         * test/data/invalid-messages/*.message: Added the required PATH 
9076         named header field to the tests so that they don't fail on 
9077         'Missing path field'
9078
9079 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
9080
9081         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
9082         the stack by implicitly defining variable and parameter types and
9083         removing the hack of defining C pointers as python objects and later
9084         casting them.
9085
9086 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
9087
9088         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
9089
9090 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
9091
9092         * mono/DBusType/Dict.cs: Handle empty dicts
9093         * mono/DBusType/Array.cs: Handle empty arrays
9094         * mono/Arguments.cs: Handle empty arguments
9095
9096 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
9097
9098         * dbus-sharp.pc.in: Modified to include include Libs and Requires
9099         field
9100
9101 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
9102
9103         * test/data/valid-messages/standard-*.message: Update message
9104         test scripts to new header field names.
9105
9106 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
9107
9108         * test/break-loader.c (randomly_do_n_things): tracked down buffer
9109         overflow to times_we_did_each_thing array which would chop off the
9110         first character of the failure_dir string. Increased the size of
9111         the array to 7 to reflect the number of random mutation functions
9112         we have.
9113
9114 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
9115
9116         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
9117         unix_server->watch here, it is unreffed in disconnect.
9118         (_dbus_server_new_for_tcp_socket): convert NULL host to
9119         "localhost" here so we don't append NULL to address.
9120         
9121         * dbus/dbus-server.c (_dbus_server_test): Add test case for
9122         various addresses, including tcp with no explicit host.
9123
9124 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9125
9126         * dbus/dbus-message.c (decode_header_data, decode_string_field):
9127         fix incorrect setting of .name_offset in the HeaderField (it was
9128         off by two bytes, positioned right after the name and typecode)
9129
9130         * bus/bus.c (bus_context_new, bus_context_unref): test before
9131         calling dbus_server_free_data_slot and _dbus_user_database_unref
9132         in case of an error.
9133
9134         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
9135         by libdbus-gtool.
9136
9137 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
9138
9139         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
9140         _dbus_poll() instead of select().
9141
9142 2004-04-15  Jon Trowbridge  <trow@ximian.com>
9143
9144         * bus/main.c (signal_handler): Reload the configuration files
9145         on SIGHUP.
9146         (main): Set up our SIGHUP handler.
9147
9148         * bus/bus.c (struct BusContext): Store the config file, user and
9149         fork flag in the BusContext.
9150         (process_config_first_time_only): Added.  Contains the code
9151         (previously in bus_context_new) for setting up the BusContext from
9152         the BusConfigParser that should only be run the first time the
9153         config files are read.
9154         (process_config_every_time): Added.  Contains the code (previously
9155         in bus_context_new) for setting up the BusContext from the
9156         BusConfigParser that should be run every time the config files are
9157         read.
9158         (load_config): Added.  Builds a BusConfigParser from the config
9159         files and passes the resulting structure off to
9160         process_config_first_time_only (assuming this is the first time)
9161         and process_config_every_time.
9162         (bus_context_new): All of the config-related code has been moved
9163         to process_config_first_time_only and process_config_every_time.
9164         Now this function just does the non-config-related initializations
9165         and calls load_config.
9166         (bus_context_reload_config): Added.
9167
9168 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9169
9170         * bus/driver.c (bus_driver_handle_get_service_owner):
9171         implement a GetServiceOwner method.
9172         * doc/dbus-specification.xml: document it.
9173         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
9174         
9175         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
9176         implement, using the bus GetServiceOwner method.
9177
9178         * test/glib/test-dbus-glib.c:
9179         use dbus_gproxy_new_for_service_owner so that we can receive the
9180         signal. 
9181
9182 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
9183
9184         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9185         dbus/dbus-message.c, dbus/dbus-protocol.h
9186         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
9187
9188         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9189         dbus/dbus-message.c, dbus/dbus-protocol.h
9190         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
9191
9192         * dbus/dbus-internals.c (_dbus_header_field_to_string):
9193         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
9194         DBUS_HEADER_FIELD_SENDER resolves to "sender"
9195
9196         * doc/dbus-specification.xml (Header Fields Table):
9197         s/SERVICE/DESTINATION
9198         s/SENDER_SERVICE/SENDER
9199
9200
9201 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9202
9203         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
9204         a few seconds.
9205
9206 2004-04-13  Michael Meeks  <michael@ximian.com>
9207
9208         * glib/dbus-gobject.c (handle_introspect): split out
9209         (introspect_properties): this.
9210         (handle_introspect): implement this.
9211
9212         * test/glib/Makefile.am: use the absolute path so the bus
9213         daemon's chdir ("/") doesn't kill us dead.
9214
9215         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
9216
9217 2004-04-12  Jon Trowbridge  <trow@ximian.com>
9218
9219         * bus/config-parser.c (struct BusConfigParser): Added
9220         included_files field.
9221         (seen_include): Added.  Checks whether or not a file has already
9222         been included by any parent BusConfigParser.
9223         (bus_config_parser_new): Copy the parent's included_files.
9224         (include_file): Track which files have been included, and fail on
9225         circular inclusions.
9226         (process_test_valid_subdir): Changed printf to report if we are
9227         testing valid or invalid conf files.
9228         (all_are_equiv): Changed printf to be a bit clearer about
9229         what we are actually doing.
9230         (bus_config_parser_test): Test invalid configuration files.
9231
9232 2004-04-09  Jon Trowbridge  <trow@ximian.com>
9233
9234         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
9235         argument.  If non-null, the newly-constructed BusConfigParser will
9236         be initialized with the parent's BusLimits instead of the default
9237         values.
9238         (include_file): When including a config file, pass in
9239         the current parser as the parent and then copy the BusLimits
9240         from the included BusConfigParser pack to the current parser.
9241         (process_test_valid_subdir): Renamed from process_test_subdir.
9242         (process_test_equiv_subdir): Added.  Walks through a directory,
9243         descending into each subdirectory and loading the config files
9244         it finds there.  If any subdirectory contains two config files
9245         that don't produce identical BusConfigParser structs, fail.
9246         For now, the BusConfigParser's BusPolicies are not compared.
9247         (bus_config_parser_test): Call both process_test_valid_subdir and
9248         process_test_equiv_subdir.
9249
9250         * bus/config-loader-libxml.c (bus_config_load): Take a parent
9251         argument and pass it along to the call to bus_config_parser_new.
9252         Also made a few small changes to allow this code to compile.
9253
9254         * bus/config-loader-expat.c (bus_config_load): Take a parent
9255         argument and pass it along to the call to bus_config_parser_new.
9256
9257         * bus/bus.c (bus_context_new): Load the config file
9258         with a NULL parent argument.
9259
9260 2004-03-29  Michael Meeks  <michael@ximian.com>
9261
9262         * glib/dbus-gobject.c (introspect_properties): split
9263         out, fix mangled 'while' flow control.
9264         (introspect_signals): implement.
9265         (handle_introspect): update.
9266
9267 2004-03-29  Michael Meeks  <michael@ximian.com>
9268
9269         * glib/dbus-gobject.c (set_object_property): split out / 
9270         re-work, use the property type, and not the message type(!)
9271         (get_object_property): ditto.
9272
9273         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
9274         (dbus_gvalue_marshal): make this code re-usable, needed
9275         for signals too, also on both proxy and server side.
9276         Re-write for more efficiency / readability.
9277
9278 2004-03-29  Michael Meeks  <michael@ximian.com>
9279
9280         * dbus/dbus-message.c
9281         (dbus_message_new_error_printf): impl.
9282
9283         * dbus/dbus-connection.c
9284         (dbus_connection_unregister_object_path): fix warning.
9285
9286         * configure.in: fix no-mono-installed situation.
9287
9288 2004-03-27  Havoc Pennington  <hp@redhat.com>
9289
9290         Patch from Timo Teräs:
9291         
9292         * tools/dbus-send.c (main): if --print-reply, assume type is
9293         method call; support boolean type args
9294         
9295         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
9296         bunch of memleak and logic bugs
9297         
9298 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9299
9300         * mono/Arguments.cs:
9301         * mono/Introspector.cs:
9302         * mono/Handler.cs:
9303         * mono/InterfaceProxy.cs:
9304         * mono/Message.cs
9305         * mono/ProxyBuilder.cs:
9306         * mono/Service.cs:
9307         Added InterfaceProxy class to avoid building proxies for every
9308         object.
9309
9310         * dbus-message.h:
9311         * dbus-message.c (dbus_message_append_args_valist)
9312         (dbus_message_iter_get_object_path)
9313         (dbus_message_iter_get_object_path_array)
9314         (dbus_message_iter_append_object_path)
9315         (dbus_message_iter_append_object_path_array):
9316         Added object_path iter functions to handle OBJECT_PATH arguments
9317         
9318 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9319
9320         First checkin of mono bindings.
9321         * configure.in:
9322         * Makefile.am:
9323         Build stuff for the bindings
9324         * dbus-sharp.pc.in: Added for pkgconfig
9325         
9326 2004-03-21  Havoc Pennington  <hp@redhat.com>
9327
9328         * test/test-service.c (main): remove debug spew
9329
9330 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9331
9332         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
9333         arrays
9334
9335         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
9336         (dbus_message_iter_init_array_iterator)
9337         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
9338         indicate whether the iterator is empty
9339
9340         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
9341         warnings
9342
9343 2004-03-19  Havoc Pennington  <hp@redhat.com>
9344
9345         * NEWS: 0.21 updates
9346
9347         * configure.in: 0.21
9348
9349         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
9350         
9351         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
9352         you don't need pyrex to make dist
9353
9354         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
9355         sources; run moc
9356         
9357 2004-03-18  Richard Hult  <richard@imendio.com>
9358
9359         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9360         (dbus_message_set_auto_activation): Add doxygen docs.
9361
9362 2004-03-16  Richard Hult  <richard@imendio.com>
9363
9364         * bus/activation.c: (bus_activation_service_created),
9365         (bus_activation_send_pending_auto_activation_messages),
9366         (bus_activation_activate_service):
9367         * bus/activation.h:
9368         * bus/dispatch.c: (bus_dispatch),
9369         (check_nonexistent_service_auto_activation),
9370         (check_service_auto_activated),
9371         (check_segfault_service_auto_activation),
9372         (check_existent_service_auto_activation), (bus_dispatch_test):
9373         * bus/driver.c: (bus_driver_handle_activate_service):
9374         * bus/services.c: (bus_registry_acquire_service):
9375         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9376         (dbus_message_get_auto_activation):
9377         * dbus/dbus-message.h:
9378         * dbus/dbus-protocol.h: Implement auto-activation.
9379         
9380         * doc/dbus-specification.xml: Add auto-activation to the spec.
9381
9382 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9383
9384         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9385         fix a bug with CUSTOM types.
9386
9387         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9388         a unit test for this bug (used to fail).
9389
9390 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9391
9392         * bus/activation.c:
9393         (babysitter_watch_callback): notify all pending activations waiting for
9394           the same exec that the activation failed.
9395         (bus_activation_activate_service): shortcut the activation if we 
9396           already waiting for the same executable to start up.
9397
9398 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9399
9400         * bus/activation.c: 
9401         - Added service file reloading. 
9402           Each service files directory is kept in an hash table in 
9403           BusActivation and each BusActivationEntry knows what .service-file it
9404           was read from. So when you try to activate a service the bus will 
9405           check if it's been updated, removed or if new .service-files has 
9406           been installed.
9407         - Test code at the bottom for the service file reloading.
9408         * bus/test-main.c: (main):
9409         * bus/test.h:
9410         - added service reloading test.
9411         * dbus/dbus-sysdeps.c: 
9412         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9413
9414 2004-03-08  Michael Meeks  <michael@ximian.com>
9415
9416         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9417         bail immediately if disconnected, to avoid busy loop.
9418
9419         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9420         cleanup cut/paste/inefficiency.
9421
9422 2004-03-01  David Zeuthen  <david@fubar.dk>
9423
9424         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9425         bug where args were used twice. This bug resulted in a segfault
9426         on a Debian/PPC system when starting the messagebus daemon. Include
9427         dbus-sysdeps.h for DBUS_VA_COPY
9428
9429         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9430
9431         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9432         appropriate va_copy implementation. From GLib
9433         
9434 2004-02-24  Joe Shaw  <joe@ximian.com>
9435
9436         * bus/services.c (bus_registry_acquire_service): We need to pass
9437         in the service name to dbus_set_error() to prevent a crash.
9438
9439 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9440
9441         * AUTHORS: Reveal my True identity.
9442
9443 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9444
9445         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9446         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9447
9448 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9449
9450         * doc/TODO: Added not about better error check of configuration files.
9451
9452 2003-12-02  Richard Hult  <richard@imendio.com>
9453
9454         * Update AFL version to 2.0 throughout the source files to reflect
9455         the update that was done a while ago.
9456
9457 2003-12-02  Richard Hult  <richard@imendio.com>
9458
9459         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9460         wrote_dict_key to FALSE on the iter that the dict is appended to,
9461         just like when appending other types. Fixes a bug where a dict
9462         couldn't be put inside a dict.
9463         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9464         (message_iter_test, _dbus_message_test): Add test case for dict
9465         inside dict.
9466
9467 2003-12-01  David Zeuthen  <david@fubar.dk>
9468
9469         * python/dbus.py: Add the actual message when calling the reciever
9470         of a signal such that parameters can be inspected. Add the method
9471         remove_signal_receiver
9472         
9473 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9474
9475         * bus/*.[ch]:
9476         * dbus/*.[ch]:
9477         * glib/*.[ch]: Made ref functions return the pointer
9478
9479 2003-11-25  Zack Rusin  <zack@kde.org>
9480
9481         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9482
9483         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9484         wrappers,
9485
9486         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9487         the Integrator and to better fit with the server,
9488
9489 2003-11-24  Zack Rusin  <zack@kde.org>
9490
9491         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9492         the integrator handles it now
9493
9494         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9495         since QTimer wasn't really meant to be used the way DBusTimeout is
9496
9497 2003-11-24  Zack Rusin  <zack@kde.org>
9498
9499         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9500         Integrator class which integrates D-BUS with the Qt event loop,
9501
9502         * qt/connection.h, qt/connection.cpp: Move all the code which
9503         was dealing with D-BUS integration to the Integrator class,
9504         and start using Integrator,
9505
9506 2003-11-23  Zack Rusin  <zack@kde.org>
9507
9508         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9509         wrapper
9510
9511         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9512         switching namespaces to DBusQt, reworking the class,
9513
9514         * Makefile.cvs: switching dependencies so that it matches KDE 
9515         schematics,
9516         
9517         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9518         the library
9519
9520 2003-11-19  Havoc Pennington  <hp@redhat.com>
9521
9522         * NEWS: update
9523
9524         * configure.in: bump version to 0.20
9525
9526         * configure.in (have_qt): add yet another place to look for qt
9527         (someone hand trolltech a .pc file...)
9528
9529 2003-11-01  Havoc Pennington  <hp@redhat.com>
9530
9531         * doc/dbus-specification.xml: add state machine docs on the auth
9532         protocol; just a first draft, I'm sure it's wrong.      
9533
9534 2003-10-28  David Zeuthen  <david@fubar.dk>
9535
9536         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9537         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9538         
9539 2003-10-28  Havoc Pennington  <hp@redhat.com>
9540
9541         * dbus/dbus-message.c (get_next_field): delete unused function
9542
9543 2003-10-28  Havoc Pennington  <hp@redhat.com>
9544
9545         * bus/expirelist.c (do_expiration_with_current_time): detect
9546         failure of the expire_func due to OOM
9547
9548         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9549
9550         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9551         NoReply error that's now created by the bus when the service exits
9552
9553 2003-10-28  Havoc Pennington  <hp@redhat.com>
9554
9555         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9556         tests for set_path, set_interface, set_member, etc.
9557
9558         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9559
9560         * dbus/dbus-message.c (set_string_field): always just delete and
9561         re-append the field; accept NULL for deletion
9562         (re_align_fields_recurse): reimplement
9563         
9564 2003-10-26  Havoc Pennington  <hp@redhat.com>
9565
9566         * dbus/dbus-connection.c: fix docs to properly describe the
9567         disconnected message
9568         (_dbus_connection_notify_disconnected): remove this function; 
9569         we can't synchronously add the disconnected message, we have to 
9570         do it after we've queued any remaining real messages
9571         (_dbus_connection_get_dispatch_status_unlocked): queue the
9572         disconnect message only if the transport has finished queueing all
9573         its real messages and is disconnected.
9574         (dbus_connection_disconnect): update the dispatch status here
9575
9576 2003-10-22  Havoc Pennington  <hp@redhat.com>
9577
9578         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9579
9580         * bus/connection.c (bus_transaction_send_from_driver): set the
9581         destination to the connection's base service
9582
9583 2003-10-20  Havoc Pennington  <hp@redhat.com>
9584
9585         hmm, make check is currently not passing.
9586         
9587         * doc/dbus-specification.xml: add requirement that custom type
9588         names follow the same rules as interface names.
9589
9590         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9591         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9592         'map'
9593
9594         * doc/dbus-specification.xml: update type codes to match
9595         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9596         CUSTOM. Add type OBJECT_PATH to the spec.
9597
9598 2003-10-17  Havoc Pennington  <hp@redhat.com>
9599
9600         * bus/driver.c (create_unique_client_name): use "." as separator
9601         in base service names instead of '-'
9602
9603         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9604         byte at the end of the string
9605
9606         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9607         optimization macros since string validation seems to be a slow
9608         point.
9609         
9610         * doc/dbus-specification.xml: restrict valid
9611         service/interface/member/error names. Add test suite code for the
9612         name validation.
9613
9614         * dbus/dbus-string.c: limit service/interface/member/error names 
9615         to [0-9][A-Z][a-z]_
9616
9617         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9618         format arg to verbose spew
9619
9620         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9621         memory, return instead of g_error
9622
9623         * test/test-service.c (path_message_func): support emitting a
9624         signal on request
9625
9626         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9627         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9628         assuming the activation bus was the session bus so that services
9629         started manually will still register.
9630         (init_connections_unlocked): fix so that in OOM situation we get
9631         the same semantics when retrying the function
9632         
9633         * test/test-service.c (main): change to use path registration, to
9634         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9635         than DBUS_BUS_SESSION
9636
9637 2003-10-16  Havoc Pennington  <hp@redhat.com>
9638
9639         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9640
9641         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9642         coverage of the tests
9643         (coverage-report.txt): don't move the .da and .bbg files around
9644
9645 2003-10-16  Havoc Pennington  <hp@redhat.com>
9646
9647         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9648         to put there
9649
9650 2003-10-16  Havoc Pennington  <hp@redhat.com>
9651
9652         * bus/connection.c (bus_pending_reply_expired): either cancel or
9653         execute, not both
9654         (bus_connections_check_reply): use unlink, not remove_link, as we
9655         don't want to free the link; fixes double free mess
9656
9657         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9658         where no reply was received
9659
9660         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9661         fix a refcount leak
9662
9663         * bus/signals.c (match_rule_matches): add special cases for the
9664         bus driver, so you can match on sender/destination for it.
9665
9666         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9667         DBUS_PRINT_BACKTRACE is set
9668
9669         * dbus/dbus-internals.c: add pid to assertion failure messages
9670
9671         * dbus/dbus-connection.c: add message type code to the debug spew
9672
9673         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9674         sender=foo not service=foo
9675
9676         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9677         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9678         DBUS_ACTIVATION_ADDRESS instead
9679
9680         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9681         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9682
9683         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9684         context struct
9685
9686         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9687         (dbus_message_iter_get_object_path_array): new function (half
9688         finished, disabled for the moment)
9689         
9690         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9691         DBUS_MESSAGE_TYPE_ERROR
9692
9693         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9694         avoid redirecting stderr to /dev/null
9695         (babysit): close stdin if not doing the "exit_with_session" thing
9696
9697         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9698         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9699         stdout/stdin, so things don't get confused
9700         
9701         * bus/system.conf.in: fix to allow replies, I modified .conf
9702         instead of .conf.in again.
9703
9704 2003-10-14  David Zeuthen  <david@fubar.dk>
9705
9706         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9707         argtype to arg_type when raising unknown arg type exception.
9708         Changed type list to reflect the changes in dbus-protocol.h so 
9709         the bindings actually work.
9710
9711 2003-10-14  Havoc Pennington  <hp@redhat.com>
9712
9713         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9714         to have a bug keeping it from outputting the .da files sometimes
9715         (string_get_string): don't append garbage nul bytes to the string.
9716
9717 2003-10-15  Seth Nickell  <seth@gnome.org>
9718
9719         * python/Makefile.am:
9720
9721         Include dbus_h_wrapper.h in the dist tarball.
9722
9723 2003-10-14  Havoc Pennington  <hp@redhat.com>
9724
9725         * bus/bus.c (bus_context_check_security_policy): revamp this to
9726         work more sanely with new policy-based requested reply setup
9727
9728         * bus/connection.c (bus_transaction_send_from_driver): set bus
9729         driver messages as no reply
9730
9731         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9732         requested_reply attribute on allow/deny rules
9733
9734         * bus/system.conf: add <allow requested_reply="true"/>
9735
9736         * bus/driver.c (bus_driver_handle_message): fix check for replies
9737         sent to the bus driver, which was backward. How did this ever work
9738         at all though? I think I'm missing something.
9739
9740         * dbus/dbus-message.c (decode_header_data): require error and
9741         method return messages to have a reply serial field to be valid
9742         (_dbus_message_loader_queue_messages): break up this function;
9743         validate that reply serial and plain serial are nonzero; 
9744         clean up the OOM/error handling.
9745         (get_uint_field): don't return -1 from this
9746         (dbus_message_create_header): fix signed/unsigned bug
9747
9748         * bus/connection.c (bus_connections_expect_reply): save serial of
9749         the incoming message, not reply serial
9750
9751 2003-10-14  Havoc Pennington  <hp@redhat.com>
9752
9753         * bus/connection.c: implement pending reply tracking using
9754         BusExpireList
9755
9756         * bus/bus.c (bus_context_check_security_policy): verify that a
9757         reply is pending in order to allow a reply to be sent. Deny 
9758         messages of unknown type.
9759
9760         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9761
9762         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9763         (bus_context_get_reply_timeout): new
9764
9765 2003-10-13  Seth Nickell  <seth@gnome.org>
9766
9767         * python/Makefile.am:
9768
9769         Pass "make distcheck": remove a couple files from DIST_FILES
9770         that weren't included in the final version.
9771
9772 2003-10-12  Havoc Pennington  <hp@pobox.com>
9773
9774         Added test code that 1) starts an actual bus daemon and 2) uses
9775         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9776         more testing possible, but this is the basic framework.
9777         
9778         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9779         empty proxy lists from the proxy list hash
9780
9781         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9782         couple of return_if_fail checks
9783
9784         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9785         to allocate, so everything is cleared to NULL as it should be.
9786
9787         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9788         source as data to dbus_connection_set_timeout_functions() as the 
9789         timeout functions expected
9790
9791         * test/glib/run-test.sh: add a little script to start up a message
9792         bus and run tests using it
9793
9794         * tools/dbus-launch.1: updates
9795
9796         * tools/dbus-launch.c (main): add --config-file option
9797
9798         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9799         that could never be reached.
9800
9801         * dbus/dbus-message.c (dbus_message_new_method_return) 
9802         (dbus_message_new_error, dbus_message_new_signal): set the
9803         no-reply-expected flag on all these. Redundant, but may
9804         as well be consistent.
9805
9806 2003-10-11  Havoc Pennington  <hp@pobox.com>
9807
9808         * test/decode-gcov.c (function_solve_graph): make broken block
9809         graph a nonfatal error since it seems to be broken. Need to debug
9810         this.
9811
9812         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9813         can't just check type > INVALID < LAST anymore
9814
9815         * dbus/dbus-message.c (dbus_message_get_signature): new function
9816         (dbus_message_has_signature): new function
9817         (struct DBusMessage): add signature field (right now it isn't sent
9818         over the wire, just generated on the fly)
9819         (dbus_message_copy): copy the signature, and init strings to
9820         proper length to avoid some reallocs
9821         (dbus_message_iter_init_array_iterator): return void, since it
9822         can't fail
9823         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9824         (_dbus_message_loader_queue_messages): add silly temporary hack to
9825         fill in message->signature on load
9826
9827         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9828         characters, so they are relatively human-readable.
9829
9830 2003-10-11  Havoc Pennington  <hp@pobox.com>
9831
9832         * dbus/dbus-message.c (_dbus_message_test): add more test
9833         coverage, but #if 0 for now since they uncover a bug 
9834         not fixed yet; I think in re_align_field_recurse()
9835         (re_align_field_recurse): add FIXME about broken assertion
9836
9837         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9838
9839         * bus/connection.c: share a couple code bits with expirelist.c
9840
9841         * bus/expirelist.h, bus/expirelist.c: implement a generic
9842         expire-items-after-N-seconds facility, was going to share between
9843         expiring connections and replies, decided not to use for expiring
9844         connections for now.
9845
9846         * COPYING: include AFL 2.0 (still need to change all the file headers)
9847
9848 2003-10-09  Havoc Pennington  <hp@redhat.com>
9849
9850         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9851         gcc 3.3. Not that we do anything about it yet.
9852
9853         * bus/signals.c (bus_match_rule_parse): impose max length on the
9854         match rule text
9855
9856         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9857
9858 2003-10-09  Havoc Pennington  <hp@redhat.com>
9859
9860         Make matching rules theoretically work (add parser).
9861         
9862         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9863         the case where destination is explicitly specified as bus driver
9864         and someone else is eavesdropping.
9865         
9866         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9867         definition of eavesdropping and assertion
9868
9869         * tools/dbus-send.c (main): use dbus_message_type_from_string
9870
9871         * bus/signals.c (bus_match_rule_parse): implement
9872
9873         * dbus/dbus-message.c (dbus_message_type_from_string): new
9874
9875         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9876
9877 2003-10-02  Havoc Pennington  <hp@pobox.com>
9878
9879         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9880         dbus_gproxy_oneway_call
9881
9882         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9883         (dbus_server_setup_with_g_main): fix to allow calling them more
9884         than once on the same args
9885         (dbus_bus_get_with_g_main): new function
9886
9887 2003-10-02  Havoc Pennington  <hp@redhat.com>
9888
9889         * doc/dbus-tutorial.xml: write some stuff
9890
9891 2003-09-29  Havoc Pennington  <hp@pobox.com>
9892
9893         * configure.in: split checks for Doxygen from XML docs, check for
9894         xmlto
9895
9896         * doc/Makefile.am: XML-ify all the docs, and add a blank
9897         dbus-tutorial.xml
9898
9899 2003-09-29  Havoc Pennington  <hp@pobox.com>
9900
9901         * Merge dbus-object-names branch. To see the entire patch 
9902         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9903         it's huuuuge though.
9904         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9905         
9906 2003-09-28  Havoc Pennington  <hp@pobox.com>
9907
9908         * HACKING: update to reflect new server
9909
9910 2003-09-26  Seth Nickell  <seth@gnome.org>
9911
9912         * python/dbus.py:
9913         * python/examples/example-signals.py:
9914
9915         Start implementing some notions of signals. The API
9916         is really terrible, but they sort of work (with the
9917         exception of being able to filter by service, and to
9918         transmit signals *as* a particular service). Need to
9919         figure out how to make messages come from the service
9920         we registered :-(
9921         
9922         * python/dbus_bindings.pyx.in:
9923
9924         Removed duplicate message_handler callbacks.
9925         
9926 2003-09-25  Havoc Pennington  <hp@redhat.com>
9927
9928         * bus/session.conf.in: fix my mess
9929
9930 2003-09-25  Havoc Pennington  <hp@pobox.com>
9931
9932         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9933
9934 2003-09-25  Seth Nickell  <seth@gnome.org>
9935
9936         * python/examples/example-service.py:
9937
9938         Johan notices complete wrong code in example-service, but
9939         completely wrong in a way that works exactly the same (!).
9940         Johan is confused, how could this possibly work? Example
9941         code fails to serve purpose of making things clear.
9942         Seth fixes.
9943
9944 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9945
9946         * doc/dbus-specification.sgml: don't require header fields
9947         to be 4-byte aligned and specify that fields should be
9948         distinguished from padding by the fact that zero is not
9949         a valid field name.
9950         
9951         * doc/TODO: remove re-alignment item and add item to doc
9952         the OBJECT_PATH type.
9953         
9954         * dbus/dbus-message.c:
9955         (HeaderField): rename the original member to value_offset
9956         and introduce a name_offset member to keep track of where
9957         the field actually begins.
9958         (adjust_field_offsets): remove.
9959         (append_int_field), (append_uint_field),
9960         (append_string_field): don't align the start of the header
9961         field to a 4-byte boundary.
9962         (get_next_field): impl finding the next marhsalled field
9963         after a given field.
9964         (re_align_field_recurse): impl re-aligning a number of
9965         already marshalled fields.
9966         (delete_field): impl deleting a field of any type and
9967         re-aligning any following fields.
9968         (delete_int_or_uint_field), (delete_string_field): remove.
9969         (set_int_field), (set_uint_field): no need to re-check
9970         that we have the correct type for the field.
9971         (set_string_field): ditto and impl re-aligning any
9972         following fields.
9973         (decode_header_data): update to take into account that
9974         the fields aren't 4-byte aligned any more and the new
9975         way to distinguish padding from header fields. Also,
9976         don't exit when there is too much header padding.
9977         (process_test_subdir): print the directory.
9978         (_dbus_message_test): add test to make sure a following
9979         field is re-aligned correctly after field deletion.
9980         
9981         * dbus/dbus-string.[ch]:
9982         (_dbus_string_insert_bytes): rename from insert_byte and
9983         allow the insert of multiple bytes.
9984         (_dbus_string_test): test inserting multiple bytes.
9985
9986         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9987         warning note to docs about having to re-align any
9988         marshalled values following the string.
9989         
9990         * dbus/dbus-message-builder.c:
9991         (append_string_field), (_dbus_message_data_load):
9992         don't align the header field.
9993         
9994         * dbus/dbus-auth.c: (process_test_subdir): print the
9995         directory.
9996         
9997         * test/break-loader.c: (randomly_add_one_byte): upd. for
9998         insert_byte change.
9999         
10000         * test/data/invalid-messages/bad-header-field-alignment.message:
10001         new test case.
10002         
10003         * test/data/valid-messages/unknown-header-field.message: shove
10004         a dict in the unknown field.
10005
10006 2003-09-25  Seth Nickell  <seth@gnome.org>
10007
10008         * python/dbus.py:
10009         * python/dbus_bindings.pyx.in:
10010
10011         Handle return values.
10012         
10013         * python/examples/example-client.py:
10014         * python/examples/example-service.py:
10015
10016         Pass back return values from the service to the client.
10017         
10018 2003-09-24  Seth Nickell  <seth@gnome.org>
10019
10020         * python/dbus.py:
10021
10022         Connect Object methods (when you are sharing an object) up... pass
10023         in a list of methods to be shared. Sharing all the methods just
10024         worked out too weird. You can now create nice Services over the
10025         DBus in Python. :-)
10026         
10027         * python/dbus_bindings.pyx.in:
10028
10029         Keep references to user_data tuples passed into C functions so 
10030         Python doesn't garbage collect on us.
10031
10032         Implement MethodReturn and Error subclasses of Message for creating
10033         DBusMessage's of those types.
10034         
10035         * python/examples/example-client.py:
10036         * python/examples/example-service.py:
10037
10038         Simple example code showing both how create DBus services and objects,
10039         and how to use them.
10040
10041 2003-09-23  Havoc Pennington  <hp@pobox.com>
10042
10043         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
10044
10045 2003-09-23  Havoc Pennington  <hp@redhat.com>
10046
10047         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
10048         (dbus_gproxy_disconnect_signal): implement
10049         (dbus_gproxy_manager_remove_signal_match): implement
10050         (dbus_gproxy_manager_add_signal_match): implement
10051         (dbus_gproxy_oneway_call): implement
10052
10053 2003-09-23  Havoc Pennington  <hp@pobox.com>
10054
10055         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
10056         subclass. This means dropping the transparent thread safety of the
10057         proxy; you now need a separate proxy per-thread, or your own
10058         locking on the proxy. Probably right anyway.
10059         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
10060
10061 2003-09-22  Havoc Pennington  <hp@redhat.com>
10062
10063         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
10064
10065 2003-09-21  Seth Nickell  <seth@gnome.org>
10066
10067         First checkin of the Python bindings.
10068         
10069         * python/.cvsignore:
10070         * python/Makefile.am:
10071         * python/dbus_bindings.pyx.in:
10072         * python/dbus_h_wrapper.h:
10073
10074         Pieces for Pyrex to operate on, building a dbus_bindings.so
10075         python module for low-level access to the DBus APIs.
10076         
10077         * python/dbus.py:
10078
10079         High-level Python module for accessing DBus objects.
10080
10081         * configure.in:
10082         * Makefile.am:
10083
10084         Build stuff for the python bindings.
10085
10086         * acinclude.m4:
10087
10088         Extra macro needed for finding the Python C header files.
10089
10090 2003-09-21  Havoc Pennington  <hp@pobox.com>
10091
10092         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
10093         implementing the proxy manager, didn't get very far.
10094
10095         * dbus/dbus-bus.c (dbus_bus_add_match): new
10096         (dbus_bus_remove_match): new
10097
10098         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
10099         path_name argument; adjust the other not-yet-implemented 
10100         gproxy constructors to be what I think they should be.
10101
10102 2003-09-21  Havoc Pennington  <hp@pobox.com>
10103
10104         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
10105         by default for message bus connections.
10106
10107         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
10108         exit_on_disconnect flag is set and we process the disconnected
10109         signal.
10110         (dbus_connection_set_exit_on_disconnect): new function
10111
10112 2003-09-21  Havoc Pennington  <hp@pobox.com>
10113
10114         Get matching rules mostly working in the bus; only actually
10115         parsing the rule text remains. However, the client side of
10116         "signal connections" hasn't been started, this patch is only the
10117         bus side.
10118         
10119         * dbus/dispatch.c: fix for the matching rules changes
10120         
10121         * bus/driver.c (bus_driver_handle_remove_match)
10122         (bus_driver_handle_add_match): send an ack reply from these
10123         method calls
10124
10125         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
10126         arguments, reported by Seth Nickell
10127
10128         * bus/config-parser.c (append_rule_from_element): support
10129         eavesdrop=true|false attribute on policies so match rules 
10130         can be prevented from snooping on the system bus.
10131
10132         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
10133         and "destination" in attribute names; fix some docs bugs; 
10134         add eavesdrop=true|false attribute
10135
10136         * bus/driver.c (bus_driver_handle_add_match)
10137         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
10138         messages
10139
10140         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
10141         rid of broadcast service concept, signals are just always broadcast
10142
10143         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
10144         mostly implement matching rules stuff (currently only exposed as signal
10145         connections)
10146
10147 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
10148
10149         * doc/dbus-specification.sgml: Change the header field name
10150         to be an enum and update the rest of the spec to reference
10151         the fields using the conventinal name.
10152
10153         * dbus/dbus-protocol.h: update to reflect the spec.
10154
10155         * doc/TODO: add item to remove the 4 byte alignment requirement.
10156         
10157         * dbus/dbus-message.c: Remove the code to generalise the
10158         header/body length and serial number header fields as named
10159         header fields so we can reference field names using the 
10160         protocol values.
10161         (append_int_field), (append_uint_field), (append_string_field):
10162         Append the field name as a byte rather than four chars.
10163         (delete_int_or_uint_field), (delete_string_field): reflect the
10164         fact that the field name and typecode now occupy 4 bytes instead
10165         of 8.
10166         (decode_string_field), (decode_header_data): update to reflect
10167         protocol changes and move the field specific encoding from
10168         decode_string_field() back into decode_header_data().
10169         
10170         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
10171         Add utility to aid debugging.
10172         
10173         * dbus/dbus-message-builder.c:
10174         (append_string_field), (_dbus_message_data_load): Update to
10175         reflect protocol changes; Change the FIELD_NAME directive
10176         to HEADER_FIELD and allow it to take the field's conventional
10177         name rather than the actual value.
10178         
10179         * test/data/*/*.message: Update to use HEADER_FIELD instead
10180         of FIELD_NAME; Always align the header on an 8 byte boundary
10181         *before* updating the header length.
10182
10183 2003-09-15  Havoc Pennington  <hp@pobox.com>
10184
10185         * dbus/dbus-pending-call.c: add the get/set object data
10186         boilerplate as for DBusConnection, etc. Use generic object data
10187         for the notify callback.
10188
10189         * glib/dbus-gparser.c (parse_node): parse child nodes
10190
10191         * tools/dbus-viewer.c: more hacking on the dbus-viewer
10192         
10193         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
10194         contain functions shared between the convenience lib and the
10195         installed lib
10196
10197         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
10198         -export-symbols-regex to the GLib library
10199
10200         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
10201         fix the locking in here, and add a default handler for
10202         Introspect() that just returns sub-nodes.
10203
10204 2003-09-14  Havoc Pennington  <hp@pobox.com>
10205
10206         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
10207         rather than gfoo consistent
10208
10209         * glib/dbus-gproxy.h: delete for now, move contents to
10210         dbus-glib.h, because the include files don't work right since we
10211         aren't in the dbus/ subdir.
10212         
10213         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
10214         (dbus_gproxy_end_call): finish
10215         (dbus_gproxy_begin_call): finish
10216
10217         * glib/dbus-gmain.c (dbus_set_g_error): new
10218
10219         * glib/dbus-gobject.c (handle_introspect): include information
10220         about child nodes in the introspection
10221
10222         * dbus/dbus-connection.c (dbus_connection_list_registered): new
10223         function to help in implementation of introspection
10224
10225         * dbus/dbus-object-tree.c
10226         (_dbus_object_tree_list_registered_and_unlock): new function
10227
10228 2003-09-12  Havoc Pennington  <hp@pobox.com>
10229
10230         * glib/dbus-gidl.h: add common base class for all the foo_info
10231         types
10232
10233         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
10234         similar to kdcop
10235
10236         * test/Makefile.am: try test srcdir -ef . in addition to test
10237         srcdir = ., one of them should work (yeah lame)
10238         
10239         * glib/Makefile.am: build the "idl" parser stuff as a convenience
10240         library
10241         
10242         * glib/dbus-gparser.h: make description_load routines return
10243         NodeInfo* not Parser*
10244
10245         * Makefile.am (SUBDIRS): build test dir after all library dirs
10246
10247         * configure.in: add GTK+ detection
10248
10249 2003-09-07  Havoc Pennington  <hp@pobox.com>
10250
10251         * Make Doxygen contented.
10252
10253 2003-09-07  Havoc Pennington  <hp@pobox.com>
10254
10255         * doc/dbus-specification.sgml: more updates
10256
10257 2003-09-06  Havoc Pennington  <hp@pobox.com>
10258
10259         * doc/dbus-specification.sgml: partial updates
10260
10261         * bus/dbus-daemon-1.1.in: fix the config file docs for the
10262         zillionth time; hopefully I edited the right file this time.
10263
10264         * bus/config-parser.c (append_rule_from_element): support
10265         send_type, send_path, receive_type, receive_path
10266
10267         * bus/policy.c: add message type and path to the list of things
10268         that can be "firewalled"
10269
10270 2003-09-06  Havoc Pennington  <hp@pobox.com>
10271
10272         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
10273         (dbus_connection_register_object_path): make this not handle
10274         messages to paths below the given path
10275
10276 2003-09-03  Havoc Pennington  <hp@pobox.com>
10277
10278         * test/glib/Makefile.am: add this with random glib-linked test
10279         programs
10280
10281         * glib/Makefile.am: remove the random test programs from here,
10282         leave only the unit tests
10283
10284         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
10285         uscore/javacaps conversion, and fix     
10286         (get_object_property, set_object_property): change to .NET
10287         convention for mapping props to methods, set_FooBar/get_FooBar, 
10288         since one language has such a convention we may as well copy it. 
10289         Plus real methods in either getFooBar or get_foo_bar style won't 
10290         collide with this convention.
10291
10292 2003-09-01  Havoc Pennington  <hp@pobox.com>
10293
10294         * glib/dbus-gparser.c: implement
10295
10296         * glib/dbus-gobject.c: start implementing skeletons support
10297
10298         * configure.in: when disabling checks/assert, also define
10299         G_DISABLE_ASSERT and G_DISABLE_CHECKS
10300
10301 2003-09-01  Havoc Pennington  <hp@pobox.com>
10302
10303         * glib/Makefile.am: rearrange a bunch of files and get "make
10304         check" framework set up
10305
10306 2003-08-31  Havoc Pennington  <hp@pobox.com>
10307
10308         * fix build with --disable-tests
10309
10310 2003-08-30  Havoc Pennington  <hp@pobox.com>
10311
10312         * dbus/dbus-connection.c: purge DBusMessageHandler
10313
10314         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
10315         use callbacks everywhere
10316
10317 2003-08-30  Havoc Pennington  <hp@pobox.com>
10318
10319         * test/data/valid-config-files/system.d/test.conf: change to 
10320         root for the user so warnings don't get printed
10321
10322         * dbus/dbus-message.c: add dbus_message_get_path,
10323         dbus_message_set_path
10324         
10325         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
10326         dispatching to a path
10327
10328         * dbus/dbus-string.c (_dbus_string_validate_path): add
10329
10330         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
10331         (_dbus_marshal_object_path): implement
10332
10333         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
10334         to contain the path to the target object
10335         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
10336         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
10337
10338 2003-08-30  Havoc Pennington  <hp@pobox.com>
10339
10340         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
10341
10342 2003-08-29  Havoc Pennington  <hp@pobox.com>
10343
10344         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
10345         registered
10346         (struct DBusObjectSubtree): shrink this
10347         a lot, since we may have a lot of them
10348         (_dbus_object_tree_free_all_unlocked): implement
10349         (_dbus_object_tree_dispatch_and_unlock): implement
10350
10351 2003-08-29  Havoc Pennington  <hp@pobox.com>
10352
10353         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
10354
10355 2003-08-28  Havoc Pennington  <hp@pobox.com>
10356
10357         purge DBusObjectID
10358         
10359         * dbus/dbus-connection.c: port to no ObjectID, create a
10360         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10361
10362         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10363         everything except UnregisterFunction and MessageFunction
10364         
10365         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10366         add DBUS_TYPE_OBJECT_PATH
10367         
10368         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10369         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10370         path-based object IDs
10371
10372 2003-08-25  Havoc Pennington  <hp@pobox.com>
10373
10374         Just noticed that dbus_message_test is hosed, I wonder when I
10375         broke that. I thought make check was passing earlier...
10376         
10377         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10378         container tree, will replace most of dbus-object-registry
10379
10380         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10381         screwup
10382
10383 2003-08-19  Havoc Pennington  <hp@pobox.com>
10384
10385         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10386         (dbus_message_is_error): fix this function
10387
10388         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10389         match
10390
10391         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10392         reflect clarified man page
10393         (bus_client_policy_check_can_send): ditto
10394         
10395         * bus/session.conf.in: fixup
10396
10397         * bus/system.conf.in: fixup
10398
10399 2003-08-18  Havoc Pennington  <hp@redhat.com>
10400
10401         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10402
10403         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10404         dumb bug created earlier (wrong order of args to
10405         decode_header_data())
10406         
10407         * tools/dbus-send.c: port
10408
10409         * tools/dbus-print-message.c (print_message): port
10410
10411         * test/data/*messages: port all messages over
10412         
10413         * dbus/dbus-message-builder.c: support including 
10414         message type
10415         
10416         * bus/driver.c: port over
10417         
10418         * bus/dispatch.c: port over to new stuff
10419
10420         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10421         rename disconnect signal to "Disconnected"
10422
10423 2003-08-17  Havoc Pennington  <hp@pobox.com>
10424
10425         This doesn't compile yet, but syncing up so I can hack on it from
10426         work. What are branches for if not broken code? ;-)
10427         
10428         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10429         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10430         DBUS_HEADER_FIELD_ERROR_NAME
10431         
10432         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10433         for the interface+member pairs
10434         (string_hash): change to use g_str_hash algorithm
10435         (find_direct_function, find_string_function): refactor these to
10436         share most code.
10437         
10438         * dbus/dbus-message.c: port all of this over to support 
10439         interface/member fields instead of name field
10440
10441         * dbus/dbus-object-registry.c: port over
10442         
10443         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10444         from _dbus_string_validate_name
10445
10446         * bus/dbus-daemon-1.1: change file format for the 
10447         <deny>/<allow> stuff to match new message naming scheme
10448
10449         * bus/policy.c: port over
10450
10451         * bus/config-parser.c: parse new format
10452         
10453 2003-08-16  Havoc Pennington  <hp@pobox.com>
10454
10455         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10456         broken assertion
10457
10458         * glib/dbus-gproxy.c: some hacking
10459
10460 2003-08-15  Havoc Pennington  <hp@redhat.com>
10461
10462         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10463
10464         * dbus/dbus-connection.c
10465         (dbus_connection_send_with_reply_and_block): factor out internals;
10466         change to convert any error replies to DBusError instead of 
10467         returning them as a message
10468
10469 2003-08-15  Havoc Pennington  <hp@pobox.com>
10470
10471         * dbus/dbus-connection.c, 
10472         dbus/dbus-pending-call.c: Finish the pending call stuff
10473
10474 2003-08-14  Havoc Pennington  <hp@redhat.com>
10475
10476         * dbus/dbus-pending-call.c: start on new object that will replace
10477         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10478         replies
10479
10480         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10481         with remote interfaces
10482
10483         * dbus/dbus-gidl.c: do the boring boilerplate in here
10484         
10485 2003-08-12  Havoc Pennington  <hp@pobox.com>
10486
10487         * bus/dispatch.c (bus_dispatch): make this return proper 
10488         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10489
10490         * dbus/dbus-errors.c (dbus_set_error): use
10491         _dbus_string_append_printf_valist
10492
10493         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10494         (_dbus_string_append_printf): new
10495
10496         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10497         UNKNOWN_METHOD
10498
10499         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10500         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10501         message is unhandled.
10502
10503 2003-08-11  Havoc Pennington  <hp@pobox.com>
10504
10505         * bus/test.c (client_disconnect_handler): change to return
10506         HANDLED (would have been REMOVE_MESSAGE)
10507
10508         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10509         HANDLED/NOT_YET_HANDLED instead of
10510         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10511         should be used.
10512
10513 2003-08-10  Havoc Pennington  <hp@pobox.com>
10514
10515         * tools/dbus-send.c (main): add --type argument, for now
10516         supporting only method_call and signal types.
10517
10518         * tools/dbus-print-message.c: print message type
10519
10520         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10521         init connection->objects
10522
10523         * doc/dbus-specification.sgml: fix sgml
10524
10525         * bus/*.c: port over to object-instance API changes
10526
10527         * test/test-service.c: ditto
10528         
10529         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10530         name, we will have to fix up the rest of the code to also handle
10531         this
10532         (dbus_message_new): generic message-creation call
10533         (set_string_field): allow appending name field
10534
10535 2003-08-06  Havoc Pennington  <hp@pobox.com>
10536
10537         * dbus/dbus-object-registry.c: implement signal connection 
10538         and dispatch
10539
10540         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10541
10542         * dbus/dbus-internals.c (_dbus_memdup): new function
10543
10544 2003-08-02  Havoc Pennington  <hp@pobox.com>
10545
10546         * dbus/dbus-message.c (dbus_message_get_no_reply)
10547         (dbus_message_set_no_reply): add these and remove
10548         set_is_error/get_is_error
10549
10550         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10551         remove the ERROR flag, since there's now an ERROR type
10552
10553 2003-08-01  Havoc Pennington  <hp@pobox.com>
10554
10555         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10556         implement
10557
10558         * dbus/dbus-message.c (dbus_message_get_type): new function
10559
10560         * doc/dbus-specification.sgml: add "type" byte to messages
10561
10562 2003-08-01  Havoc Pennington  <hp@pobox.com>
10563
10564         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10565         a message type enum to distinguish kinds of message
10566         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10567         that need not be replied to
10568
10569 2003-08-01  Havoc Pennington  <hp@pobox.com>
10570
10571         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10572         (unpack_8_octets): fix no-64-bit-int bug
10573
10574         * dbus/dbus-object-registry.c (validate_id): validate the 
10575         connection ID bits, not just the instance ID.
10576
10577         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10578         the connection-global 33 bits of the object ID
10579
10580         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10581         object ID in the new way
10582
10583         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10584         define server/client/instance bits.
10585
10586 2003-07-30  Havoc Pennington  <hp@pobox.com>
10587
10588         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10589         build
10590
10591 2003-07-13  Havoc Pennington  <hp@pobox.com>
10592
10593         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10594         fields to DBusObjectVTable and DBusObjectInfo
10595
10596 2003-07-12  Havoc Pennington  <hp@pobox.com>
10597
10598         * dbus/dbus-object-registry.c: implement unit test,
10599         fix bugs discovered in process
10600
10601         * dbus/dbus-connection.c: remove handler_table and
10602         register_handler(), add DBusObjectRegistry usage
10603
10604         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10605         (dbus_object_id_set_null): new functions
10606
10607 2003-07-08  Havoc Pennington  <hp@pobox.com>
10608
10609         * dbus/dbus-object.c: implement some of this
10610
10611         * dbus/dbus-object-registry.c
10612         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10613         param
10614         (_dbus_object_registry_new): handle OOM
10615
10616 2003-07-08  Havoc Pennington  <hp@pobox.com>
10617
10618         * dbus/dbus-object.h: sketch out an API for registering objects
10619         with a connection, that allows us to use as little as 24 bytes
10620         per object and lets application code represent an object in 
10621         any conceivable way.
10622
10623         * dbus/dbus-object-registry.c: implement the hard bits of the
10624         DBusConnection aspect of object API. Not yet wired up.
10625         
10626 2003-07-06  Havoc Pennington  <hp@pobox.com>
10627
10628         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10629         (_dbus_marshal_object_id): new
10630         (_dbus_demarshal_object_id): new
10631         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10632         consolidate identical switch cases. Don't conditionalize handling
10633         of DBUS_TYPE_UINT64, need to handle the type always.
10634         (_dbus_marshal_validate_arg): consolidate identical cases, and
10635         handle DBUS_TYPE_OBJECT_ID
10636
10637         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10638
10639         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10640
10641 2003-09-28  Havoc Pennington  <hp@pobox.com>
10642
10643         * real 0.13 release
10644
10645 2003-09-28  Havoc Pennington  <hp@pobox.com>
10646
10647         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10648         to work with Debian db2html
10649
10650 2003-09-28  Havoc Pennington  <hp@pobox.com>
10651
10652         * configure.in: 0.13
10653
10654         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10655         stylesheet-images for benefit of Debian
10656         
10657         Change back to using filesystem-linked sockets for the system
10658         bus, so only root can create the default system bus address.
10659         
10660         * bus/system.conf.in: change to use
10661         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10662
10663         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10664         from here.
10665
10666         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10667         here, and AC_DEFINE DBUS_SYSTEM_PATH
10668
10669 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10670
10671         * doc/TODO:
10672         * doc/busconfig.dtd:
10673         Add busconfig DTD.
10674         
10675 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10676
10677         * doc/dbus-specification.sgml:
10678         Add activation reply values.
10679         
10680 2003-08-05  Havoc Pennington  <hp@redhat.com>
10681
10682         * configure.in: 0.12
10683
10684 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10685
10686         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10687         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10688         (add_watch), (remove_watch), (create_source):
10689         Refcount fds, fixes some reentrancy issues.
10690         
10691 2003-07-30  Havoc Pennington  <hp@redhat.com>
10692
10693         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10694         bus address to be abstract if we have abstract sockets
10695
10696         * NEWS: update
10697
10698 2003-07-28  Havoc Pennington  <hp@redhat.com>
10699
10700         * bus/messagebus.in: fix to avoid processname/servicename 
10701         confusion, from Michael Kearey
10702         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10703         
10704 2003-07-23  Havoc Pennington  <hp@pobox.com>
10705
10706         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10707         fix from Andy Hanton to remove broken "+1"
10708
10709 2003-07-16  Havoc Pennington  <hp@pobox.com>
10710
10711         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10712         babysitter process, as suggested by Thomas Leonard, so 
10713         an "eval `dbus-launch --exit-with-session`" will actually 
10714         return
10715
10716 2003-07-16  Havoc Pennington  <hp@pobox.com>
10717
10718         * configure.in: print out EXPANDED_* variables in the summary at
10719         the end; clean up the code that computes EXPANDED_ variables and
10720         get the ones using exec_prefix right. Should make things work
10721         when you build without --prefix
10722
10723 2003-06-29  Havoc Pennington  <hp@pobox.com>
10724
10725         * mono/Test.cs (class Test): fire up a main loop and run it
10726
10727         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10728         done once, the app has to do it
10729
10730 2003-06-26  Havoc Pennington  <hp@pobox.com>
10731
10732         * mono/Connection.cs: set up connection with the glib main loop
10733
10734 2003-07-01  Havoc Pennington  <hp@redhat.com>
10735
10736         * doc/dbus-specification.sgml: clarify the format of a type code,
10737         change suggested by Jim Blandy
10738
10739 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10740
10741         * doc/Makefile.am:
10742         * tools/Makefile.am: Don't assume srcdir == builddir.
10743
10744         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10745         the allocated block.
10746         (_dbus_memory_test): New function.
10747         * dbus/dbus-test.h: Add _dbus_memory_test ().
10748         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10749
10750         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10751         of %c%c%c%c.
10752         (dbus_message_new): Remove obsolete @todo.
10753
10754         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10755         (_dbus_marshal_set_uint64): Fix comment.
10756
10757         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10758         hardcode FIELD_REPLY_SERIAL.
10759
10760         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10761         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10762
10763         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10764         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10765
10766 2003-06-24  Havoc Pennington  <hp@pobox.com>
10767
10768         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10769
10770 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10771
10772         * configure.in:
10773         * gcj/.cvsignore:
10774         * gcj/Hello.java:
10775         * gcj/Makefile.am:
10776         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10777         * gcj/org/.cvsignore:
10778         * gcj/org/Makefile.am:
10779         * gcj/org/freedesktop/.cvsignore:
10780         * gcj/org/freedesktop/Makefile.am:
10781         * gcj/org/freedesktop/dbus/.cvsignore:
10782         * gcj/org/freedesktop/dbus/Makefile.am:
10783         * gcj/org/freedesktop/dbus/Message.java: (Message),
10784         (Message.Message):
10785         * gcj/org/freedesktop/dbus/natMessage.cc:
10786         Fix the build system.
10787
10788 2003-06-22  Havoc Pennington  <hp@pobox.com>
10789
10790         * mono/Connection.cs: add more bindings
10791
10792         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10793         more than once.
10794
10795 2003-06-22  Havoc Pennington  <hp@pobox.com>
10796
10797         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10798         Start wrapping more stuff.
10799
10800 2003-06-22  Havoc Pennington  <hp@pobox.com>
10801
10802         * mono/Message.cs: implement Message.Wrap() that ensures we only
10803         have a single C# wrapper per DBusMessage, assuming it works which
10804         it probably doesn't.
10805
10806         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10807         (dbus_message_free_data_slot): new
10808         (dbus_message_set_data): new
10809         (dbus_message_get_data): new
10810
10811 2003-06-22  Havoc Pennington  <hp@pobox.com>
10812
10813         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10814         (_dbus_data_slot_allocator_alloc): rework these to keep a
10815         reference count on each slot and automatically manage a global
10816         slot ID variable passed in by address
10817
10818         * bus/bus.c: convert to new dataslot API
10819
10820         * dbus/dbus-bus.c: convert to new dataslot API
10821
10822         * dbus/dbus-connection.c: convert to new dataslot API
10823
10824         * dbus/dbus-server.c: convert to new dataslot API
10825
10826         * glib/dbus-gmain.c: ditto
10827
10828         * bus/test.c: ditto
10829
10830         * bus/connection.c: ditto
10831
10832 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10833
10834         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10835         after the gcj checks so that the correct configuration tags
10836         will be added to libtool.
10837
10838         * dbus-glib-1.pc.in: No need to specify any includes since
10839         dbus-1.pc.in has those.
10840
10841 2003-06-22  Havoc Pennington  <hp@pobox.com>
10842
10843         * mono/*, gcj/*, configure.in, Makefile.am:
10844         Check in makefiles and subdirs for mono and gcj bindings.
10845         Neither binding actually exists, just trying to get through
10846         all the build and other boring bits.
10847
10848 2003-06-21  Philip Blundell  <philb@gnu.org>
10849
10850         * tools/dbus-monitor.1: Updated.
10851
10852         * tools/dbus-send.1: Likewise.
10853
10854 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10855
10856         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10857         for hangup and error after checking read so we won't discard
10858         pending data if both hangup and read are set.
10859
10860 2003-06-19  Philip Blundell  <philb@gnu.org>
10861
10862         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10863
10864         * tools/dbus-send.c: Accept both --system and --session.
10865
10866         * tools/dbus-monitor.c: Same here.
10867
10868 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10869
10870         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10871         from C++ (Patch by Miloslav Trmac).
10872
10873 2003-06-15  Joe Shaw  <joe@assbarn.com>
10874
10875         * configure.in: Check for socklen_t.
10876
10877         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10878
10879         * test/test-segfault.c: Add #include <sys/time.h>
10880
10881         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10882         dbus-launch needs it.
10883
10884 2003-06-09  Havoc Pennington  <hp@redhat.com>
10885
10886         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10887         SUN_LEN, it breaks abstract socket usage
10888
10889         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10890         starts of lines.
10891
10892 2003-06-04  Havoc Pennington  <hp@pobox.com>
10893
10894         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10895         using unix:abstract=/foo, and when listening in a tmpdir
10896         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10897
10898         * dbus/dbus-transport.c (_dbus_transport_open): support
10899         unix:abstract=/foo
10900
10901         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10902         support abstract sockets
10903
10904         * dbus/dbus-transport-unix.c
10905         (_dbus_transport_new_for_domain_socket): support abstract sockets
10906
10907         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10908         toggle as an argument, implement abstract namespace support
10909         (_dbus_listen_unix_socket): ditto
10910
10911         * configure.in: add --enable-abstract-sockets and implement
10912         a configure check for autodetection of the right value.
10913
10914 2003-06-01  Havoc Pennington  <hp@pobox.com>
10915
10916         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10917         in /tmp (though on Linux this will end up being useless,
10918         when we add abstract namespace support)
10919
10920         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10921         subst'ing it
10922
10923 2003-05-28  Colin Walters  <walters@verbum.org>
10924
10925         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10926
10927 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10928
10929         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10930
10931 2003-05-17  Colin Walters  <walters@gnu.org>
10932
10933         * tools/dbus-send.c: Don't exit with an error code if --help was
10934         passed.  Default to using the session bus instead of the system
10935         one.
10936
10937         * tools/dbus-launch.c: Ditto.
10938
10939         * tools/dbus-monitor.c: Ditto.
10940
10941         * tools/dbus-send.1: Update with new arguments.
10942
10943         * tools/dbus-launch.c: Emit code to export variables.  New
10944         arguments -s and -c to specify shell syntax, and a bit of code to
10945         autodetect syntax.  Also, allow specifying a program to run.
10946
10947         * tools/dbus-launch.1: Update with new arguments.
10948
10949         * tools/dbus-send.1: Ditto.
10950
10951         * tools/dbus-monitor.1: Ditto.
10952
10953 2003-05-17  Havoc Pennington  <hp@pobox.com>
10954
10955         * bus/config-parser.c (merge_included): merge in policies from
10956         child configuration file.
10957
10958         * bus/policy.c (bus_policy_merge): function to merge two policies
10959         together
10960
10961 2003-05-16  Havoc Pennington  <hp@redhat.com>
10962
10963         * dbus/dbus-connection.c: disable verbose lock spew
10964
10965         * tools/dbus-send.c: add --print-reply command line option
10966
10967         * tools/dbus-print-message.h (print_message): new util function
10968         shared by dbus-send and dbus-monitor
10969
10970         * tools/dbus-monitor.c (handler_func): exit on disconnect
10971
10972         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10973         disconnected, don't try to use the read_watch
10974
10975         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10976         so we can find this bug more easily
10977
10978 2003-05-16  Havoc Pennington  <hp@redhat.com>
10979
10980         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10981         NULL as DBusHashTable is annoyingly likely to do.
10982
10983 2003-05-16  Colin Walters  <walters@verbum.org>
10984
10985         * tools/dbus-monitor.c: Add --session argument and usage()
10986         function.
10987
10988         * tools/dbus-monitor.1: Update with new --session arg.
10989
10990         * bus/Makefile.am (install-data-hook): Create
10991         $(libdir)/dbus-1.0/services so that the session bus is happy.
10992
10993 2003-05-15  Havoc Pennington  <hp@redhat.com>
10994
10995         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10996         on non-x86. ifdef's are evil.
10997
10998 2003-05-15  Havoc Pennington  <hp@redhat.com>
10999
11000         * configure.in: 0.11
11001
11002         * NEWS: update
11003
11004         * bus/Makefile.am (initddir): apparently we are supposed to put
11005         init scripts in /etc/rc.d/init.d not /etc/init.d
11006
11007         * bus/Makefile.am: remove the "you must --enable-tests to make
11008         check" as it broke distcheck
11009
11010         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
11011
11012 2003-05-13  James Willcox  <jwillcox@gnome.org>
11013
11014         * configure.in:
11015         * bus/activation.c: (bus_activation_service_created),
11016         (bus_activation_activate_service):
11017         * bus/driver.c: (bus_driver_send_service_deleted),
11018         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11019         (bus_driver_send_service_acquired),
11020         (bus_driver_send_welcome_message),
11021         (bus_driver_handle_list_services):
11022         * bus/session.conf.in:
11023         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
11024         (dbus_bus_service_exists), (dbus_bus_activate_service):
11025         * dbus/dbus-bus.h:
11026
11027         Add some convenience API which lets you activate a service, and did a
11028         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
11029         and dbus_message_get_args()
11030
11031 2003-05-11  Havoc Pennington  <hp@pobox.com>
11032
11033         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
11034         calling _dbus_marshal_validate_arg() for every byte in a byte
11035         array, etc.
11036
11037         * dbus/dbus-message-handler.c: use atomic reference counting to
11038         reduce number of locks slightly; the global lock in here sucks
11039
11040         * dbus/dbus-connection.c
11041         (_dbus_connection_update_dispatch_status_and_unlock): variant of
11042         update_dispatch_status that can be called with lock held; then use
11043         in a couple places to reduce locking/unlocking
11044         (dbus_connection_send): hold the lock over the whole function
11045         instead of acquiring it twice.
11046
11047         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
11048
11049         * bus/connection.c (bus_connections_setup_connection): fix access
11050         to already-freed memory.
11051
11052         * dbus/dbus-connection.c: keep a little cache of linked list
11053         nodes, to avoid using the global linked list alloc lock in the
11054         normal send-message case. Instead we just use the connection lock
11055         that we already have to take.
11056
11057         * dbus/dbus-list.c (_dbus_list_find_last): new function
11058
11059         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
11060         change to use a struct for the atomic type; fix docs,
11061         they return value before increment, not after increment.
11062
11063         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
11064         (_dbus_string_append_8_aligned): new functions to try to
11065         microoptimize this operation.
11066         (reallocate_for_length): break this out of set_length(), to
11067         improve profile info, and also so we can consider inlining the
11068         set_length() part.
11069
11070         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
11071         strings with some preallocation, cuts down on our calls to realloc
11072         a fair bit. Though if we can get the "move entire string to empty
11073         string" optimization below to kick in here, it would be better.
11074
11075         * dbus/dbus-string.c (_dbus_string_move): just call
11076         _dbus_string_move_len
11077         (_dbus_string_move_len): add a special case for moving
11078         an entire string into an empty string; we can just
11079         swap the string data instead of doing any reallocs.
11080         (_dbus_string_init_preallocated): new function
11081
11082 2003-05-11  Havoc Pennington  <hp@pobox.com>
11083
11084         Write a "test-profile" that does echo client-server with threads;
11085         profile reveals lock contention, memcpy/realloc of buffers, and
11086         UTF-8 validation as hot spots. 20% of lock contention eliminated
11087         with dbus_atomic_inc/dec implementation on x86.  Much remaining
11088         contention is global mempool locks for GList and DBusList.
11089
11090         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
11091         x86 implementation
11092
11093         * dbus/dbus-connection.c (struct DBusConnection): use
11094         dbus_atomic_t for the reference count
11095
11096         * dbus/dbus-message.c (struct DBusMessage): declare
11097         dbus_atomic_t values as volatile
11098
11099         * configure.in: code to detect ability to use atomic integer
11100         operations in assembly, from GLib patch
11101
11102         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
11103         time, tired of it being wrong in threads and forked processes
11104
11105         * glib/test-profile.c: a little program to bounce messages back
11106         and forth between threads and eat CPU
11107
11108         * dbus/dbus-connection.c: add debug spew macros for debugging
11109         thread locks; include config.h at top; fix deadlock in
11110         dbus_connection_flush()
11111
11112 2003-05-08  Havoc Pennington  <hp@pobox.com>
11113
11114         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
11115         data from getting written, and there wasn't a good reason to
11116         use _exit really.
11117
11118         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
11119         dbus_verbose lines in test coverage
11120         (main): add list of functions sorted by # of untested blocks
11121         to the coverage report
11122
11123         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
11124
11125         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
11126
11127         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
11128         extend test coverage
11129
11130         * test/data/auth/cancel.auth-script: test canceling an
11131         authentication
11132
11133         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
11134         aren't used. in CVS history if we end up needing them.
11135
11136 2003-05-04  Havoc Pennington  <hp@pobox.com>
11137
11138         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
11139         unit test
11140
11141         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
11142         function, which assumed length was in # of strings, not bytes
11143
11144         * dbus/dbus-message.c (_dbus_message_test): add tests for some
11145         missing coverage
11146
11147         * dbus/dbus-connection.c
11148         (_dbus_connection_queue_received_message): disable function for
11149         now, we are only using it in test mode
11150
11151         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11152         remove a mistaken FIXME
11153
11154 2003-05-04  Havoc Pennington  <hp@pobox.com>
11155
11156         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
11157         unlock mutex on successful return, patch from Anders Gustafsson
11158
11159 2003-05-04  Havoc Pennington  <hp@pobox.com>
11160
11161         * dbus-glib-1.pc.in (Requires): fix dependencies, from
11162         Anders Gustafsson
11163
11164 2003-05-04  Havoc Pennington  <hp@pobox.com>
11165
11166         * tools/dbus-launch.c: implement
11167
11168         * bus/main.c (main), bus/bus.c (bus_context_new):
11169         implement --print-pid and --fork
11170
11171 2003-05-03  Havoc Pennington  <hp@redhat.com>
11172
11173         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
11174         the address had no value, and add to test suite. Fix and
11175         regression test from Miloslav Trmac
11176
11177 2003-05-03  Havoc Pennington  <hp@pobox.com>
11178
11179         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
11180         watch is invalid when handled
11181
11182         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
11183         dbus-launch utility to launch the bus from a shell script.  Didn't
11184         actually implement dbus-launch yet, it's just a placeholder still.
11185
11186 2003-05-03  Havoc Pennington  <hp@pobox.com>
11187
11188         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
11189         daemon; also documents daemon config file, so replaces
11190         doc/config-file.txt. Corrected some stuff from config-file.txt in
11191         the process of moving it.
11192
11193 2003-05-03  Havoc Pennington  <hp@pobox.com>
11194
11195         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
11196         add some man pages
11197
11198 2003-05-03  Colin Walters  <walters@verbum.org>
11199
11200         * dbus/dbus-sysdeps.c (fill_user_info): Test against
11201         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
11202
11203         * Makefile.am: Update to use new .pc versioning scheme.
11204
11205 2003-05-02  Havoc Pennington  <hp@redhat.com>
11206
11207         * bus/system.conf.in: allow send/receive to/from message bus
11208         service
11209
11210 2003-04-30  Havoc Pennington  <hp@redhat.com>
11211
11212         * configure.in: print a note when building with unit tests and
11213         without assertions
11214
11215 2003-04-30  Havoc Pennington  <hp@redhat.com>
11216
11217         * Makefile.am: add a check-local that complains if you didn't
11218         configure with --enable-tests
11219
11220 2003-04-29  Havoc Pennington  <hp@redhat.com>
11221
11222         * glib/dbus-gmain.c: docs cleanups
11223
11224         * dbus/dbus-types.h: add docs on int64 types
11225
11226         * dbus/dbus-memory.c: fix docs to avoid putting private API in
11227         public API docs section
11228
11229 2003-04-29  Havoc Pennington  <hp@redhat.com>
11230
11231         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
11232         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
11233         parallel install API version, not with the D-BUS package version.
11234
11235         * HACKING: move some of README over here
11236
11237         * README: updates, and document API/ABI policy
11238
11239         * configure.in: reindentation
11240
11241 2003-04-29  Havoc Pennington  <hp@redhat.com>
11242
11243         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
11244         to use this library" to be sure people have the right
11245         expectations.
11246
11247 2003-04-28  Havoc Pennington  <hp@redhat.com>
11248
11249         * configure.in: add --enable-docs which by default is auto yes if
11250         doxygen and db2html found, no otherwise; but can be forced on/off
11251
11252         * doc/Makefile.am: conditionalize whether to build docs on
11253         --enable-docs
11254
11255 2003-04-28  Havoc Pennington  <hp@redhat.com>
11256
11257         * configure.in: 0.10
11258
11259         * NEWS: update
11260
11261         * bus/system.conf.in: add <includedir>system.d</includedir>
11262
11263         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
11264         username was provided but not uid
11265
11266         * bus/config-parser.c (struct BusConfigParser): keep track of
11267         whether the parser is toplevel or was included; change some
11268         of the error handling if it's included.
11269
11270 2003-04-27  Havoc Pennington  <hp@pobox.com>
11271
11272         Unbreak my code...
11273
11274         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11275         report correct status if we finish processing authentication
11276         inside this function.
11277
11278         * bus/activation.c (try_send_activation_failure): use
11279         bus_transaction_send_error_reply
11280
11281         * bus/connection.c (bus_connection_get_groups): return an error
11282         explaining the problem
11283
11284         * bus/bus.c (bus_context_check_security_policy): implement
11285         restriction here that inactive connections can only send the
11286         hello message. Also, allow bus driver to send anything to
11287         any recipient.
11288
11289         * bus/connection.c (bus_connection_complete): create the
11290         BusClientPolicy here instead of on-demand.
11291         (bus_connection_get_policy): don't return an error
11292
11293         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
11294         sender field in message being replied to
11295
11296         * bus/bus.c (bus_context_check_security_policy): fix silly typo
11297         causing it to return FALSE always
11298
11299         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
11300         we checked sender rather than destination
11301
11302 2003-04-25  Havoc Pennington  <hp@redhat.com>
11303
11304         test suite is slightly hosed at the moment, will fix soon
11305
11306         * bus/connection.c (bus_connections_expire_incomplete): fix to
11307         properly disable the timeout when required
11308         (bus_connection_set_name): check whether we can remove incomplete
11309         connections timeout after we complete each connection.
11310
11311         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
11312         probably still broken.
11313
11314         * bus/services.c (bus_registry_acquire_service): implement max
11315         number of services owned, and honor allow/deny rules on which
11316         services a connection can own.
11317
11318         * bus/connection.c (bus_connection_get_policy): report errors here
11319
11320         * bus/activation.c: implement limit on number of pending
11321         activations
11322
11323 2003-04-25  Havoc Pennington  <hp@redhat.com>
11324
11325         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
11326         where we used >= 0 instead of != DBUS_UID_UNSET.
11327
11328 2003-04-25  Havoc Pennington  <hp@redhat.com>
11329
11330         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
11331         were toggled without add/remove, fix from Anders Gustafsson
11332
11333 2003-04-24  Havoc Pennington  <hp@redhat.com>
11334
11335         * test/data/valid-config-files/basic.conf: add <limit> tags to
11336         this test
11337
11338         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
11339         <limit> tag in configuration file.
11340
11341 2003-04-24  Havoc Pennington  <hp@redhat.com>
11342
11343         * bus/dispatch.c: somehow missed some name_is
11344
11345         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
11346         (_dbus_timeout_set_interval): new
11347
11348         * bus/connection.c (bus_connections_setup_connection): record time
11349         when each connection is first set up, and expire them after the
11350         auth timeout passes.
11351
11352 2003-04-24  Havoc Pennington  <hp@redhat.com>
11353
11354         * dbus/dbus-message.c (dbus_message_name_is): rename
11355         (dbus_message_service_is): rename
11356         (dbus_message_sender_is): rename
11357         (dbus_message_get_service): rename
11358
11359 2003-04-24  Havoc Pennington  <hp@redhat.com>
11360
11361         * configure.in: add --enable-checks
11362
11363         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11364
11365         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11366         to use thread locks.
11367         (_dbus_connection_handler_destroyed_locked): move some private
11368         functions into proper docs group
11369
11370         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11371         _dbus_return_val_if_fail
11372
11373         Throughout: use dbus_return_if_fail
11374
11375 2003-04-23  James Willcox  <jwillcox@gnome.org>
11376
11377         * glib/dbus-glib.h:
11378         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11379         (dbus_connection_setup_with_g_main),
11380         (dbus_server_setup_with_g_main):
11381         * glib/test-dbus-glib.c: (main):
11382         * glib/test-thread-client.c: (main):
11383         * glib/test-thread-server.c: (new_connection_callback), (main):
11384         * tools/dbus-monitor.c: (main):
11385
11386         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11387         and dbus_server_setup_with_g_main().
11388
11389 2003-04-20  Havoc Pennington  <hp@pobox.com>
11390
11391         * doc/dbus-specification.sgml: document the restrictions on
11392         message and service names
11393
11394 2003-04-22  Havoc Pennington  <hp@redhat.com>
11395
11396         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11397         support, and do some code cleanups to share more code and
11398         speed up array marshal/demarshal.
11399
11400         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11401
11402         * configure.in: generate dbus-arch-deps.h
11403
11404         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11405         64-bit typecodes
11406
11407 2003-04-22  Havoc Pennington  <hp@redhat.com>
11408
11409         * test/data/valid-messages/opposite-endian.message: fix test
11410         to use proper type for rply field
11411
11412         * test/data/invalid-messages: add tests for below validation
11413
11414         * dbus/dbus-message.c (decode_header_data): validate field types,
11415         and validate that named fields are valid names
11416         (decode_name_field): consider messages in the
11417         org.freedesktop.Local. namespace to be invalid.
11418
11419         * dbus/dbus-string.c (_dbus_string_validate_name): new
11420
11421 2003-04-19  Havoc Pennington  <hp@pobox.com>
11422
11423         * bus/driver.c (bus_driver_handle_hello): check limits and
11424         return an error if they are exceeded.
11425
11426         * bus/connection.c: maintain separate lists of active and inactive
11427         connections, and a count of each. Maintain count of completed
11428         connections per user. Implement code to check connection limits.
11429
11430         * dbus/dbus-list.c (_dbus_list_unlink): export
11431
11432         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11433         number of bytes in the message queue for a connection
11434
11435 2003-04-18  Havoc Pennington  <hp@pobox.com>
11436
11437         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11438
11439         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11440         memleaks
11441
11442         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11443         on realloc be sure to update the pointer in the keyring
11444
11445         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11446         offset to avoid writing to unallocated memory
11447
11448         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11449         try the next mechanism, so we properly handle OOM
11450
11451         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11452         on OOM.
11453         (_dbus_keyring_new): fix OOM bug
11454         (_dbus_keyring_new_homedir): always set error; impose a maximum
11455         number of keys we'll load from the file, mostly to speed up the
11456         test suite and make its OOM checks more useful, but also for
11457         general sanity.
11458
11459         * dbus/dbus-auth.c (process_error_server): reject authentication
11460         if we get an error from the client
11461         (process_cancel): on cancel, send REJECTED, per the spec
11462         (process_error_client): send CANCEL if we get an error from the
11463         server.
11464
11465 2003-04-18  Havoc Pennington  <hp@pobox.com>
11466
11467         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11468         debug spew
11469
11470         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11471         handling problem
11472
11473         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11474         about DBUS_TEST_HOMEDIR once
11475
11476         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11477         the environment
11478
11479         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11480         config file so we test the right thing
11481
11482         Throughout: assorted docs improvements
11483
11484 2003-04-18  Havoc Pennington  <hp@pobox.com>
11485
11486         * glib/dbus-gmain.c: adapt to watch changes
11487
11488         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11489
11490         * dbus/dbus-server.h: remove dbus_server_handle_watch
11491
11492         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11493
11494         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11495         like DBusTimeout, so we don't need dbus_connection_handle_watch
11496         etc.
11497
11498 2003-04-17  Havoc Pennington  <hp@redhat.com>
11499
11500         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11501         database usage so it all goes via the DBusUserDatabase cache.
11502
11503 2003-04-17  Havoc Pennington  <hp@redhat.com>
11504
11505         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11506         there was an OOM watch we skipped, we always return TRUE so we
11507         iterate again to have a look at it again. Fixes test suite hang.
11508         Code rearrangement also lets us lose some memset and only iterate
11509         over callbacks once.
11510
11511         * bus/driver.c (bus_driver_handle_message): sense of test for
11512         reply was backward
11513
11514 2003-04-16  Havoc Pennington  <hp@pobox.com>
11515
11516         * doc/dbus-specification.sgml: make spec say serials are unsigned
11517
11518         * dbus/dbus-message.h: change message serials to unsigned
11519
11520         * dbus/dbus-connection.c: adapt to message serials being unsigned
11521
11522 2003-04-15  Havoc Pennington  <hp@pobox.com>
11523
11524         * bus/bus.c: create and keep around a shared DBusUserDatabase
11525         object.
11526
11527         * bus/connection.c (bus_connection_get_groups): don't cache
11528         groups for user in the connection object, since user database
11529         object now does that.
11530
11531 2003-04-16  Havoc Pennington  <hp@redhat.com>
11532
11533         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11534         list of size counters
11535         (_dbus_message_loader_putback_message_link): put back a popped link
11536
11537         * dbus/dbus-connection.c
11538         (dbus_connection_set_max_live_messages_size): rename
11539         max_received_size
11540         (dbus_connection_get_outgoing_size): get size of outgoing
11541         queue
11542         (_dbus_connection_set_connection_counter): remove this cruft
11543
11544 2003-04-14  Havoc Pennington  <hp@redhat.com>
11545
11546         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11547         caching, but at some point we might want to be able to use a
11548         different database.
11549
11550         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11551         SHA1 conf file to test the sha1 auth mechanism, since the regular
11552         test always uses EXTERNAL when available.
11553
11554         * configure.in,
11555         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11556         add conf file that requires use of sha1 auth
11557
11558 2003-04-13  Havoc Pennington  <hp@pobox.com>
11559
11560         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11561         from Philip Blundell to send messages and monitor them.
11562
11563 2003-04-13  Havoc Pennington  <hp@pobox.com>
11564
11565         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11566         callbacks
11567
11568         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11569         users
11570
11571         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11572         fix to only recover unused bytes if we're already authenticated
11573         (_dbus_transport_get_is_authenticated): fix to still mark us
11574         authenticated if there are unused bytes.
11575
11576         * bus/dispatch.c: implement security policy checking
11577
11578         * bus/connection.c (bus_transaction_send_from_driver): new
11579
11580         * bus/bus.c (bus_context_check_security_policy): new
11581
11582         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11583         now we just set the DBusError and it gets converted to an error
11584         reply.
11585
11586         * bus/connection.c (allow_user_function): enable code using actual
11587         data from the config file
11588
11589         * bus/policy.c (list_allows_user): handle wildcard rules for
11590         user/group connection perms
11591
11592 2003-04-13  Havoc Pennington  <hp@pobox.com>
11593
11594         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11595
11596         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11597
11598         * bus/policy.c (bus_policy_append_mandatory_rule)
11599         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11600         (bus_policy_append_group_rule): new functions
11601
11602 2003-04-12  Havoc Pennington  <hp@pobox.com>
11603
11604         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11605
11606         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11607         the pid/gid/uid, just for paranoia.
11608
11609         * test/break-loader.c (randomly_do_n_things): find a byte
11610         containing a type code, and randomly change it to a different
11611         type code.
11612
11613 2003-04-12  Havoc Pennington  <hp@pobox.com>
11614
11615         * bus/policy.h: change BusPolicy to be the thing from the config
11616         file, and rename old BusPolicy to BusClientPolicy
11617
11618         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11619         match change in how policy works
11620
11621         * dbus/dbus-internals.h: mark assert_not_reached as
11622         __attribute((noreturn))__
11623
11624 2003-04-11  Havoc Pennington  <hp@redhat.com>
11625
11626         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11627         the broadcast service. Use boolean return for ServiceExists.
11628
11629 2003-04-11  Havoc Pennington  <hp@redhat.com>
11630
11631         * configure.in: add another directory to look for qt in.
11632
11633 2003-04-11  Havoc Pennington  <hp@redhat.com>
11634
11635         * AUTHORS: add Colin Walters
11636
11637 2003-04-11  Havoc Pennington  <hp@redhat.com>
11638
11639         * NEWS: update
11640
11641         * configure.in: 0.9
11642
11643 2003-04-11  Havoc Pennington  <hp@redhat.com>
11644
11645         * bus/messagebus.in: remove pid file when stopping the
11646         message bus, since the bus won't have privileges to remove it
11647         itself.
11648
11649 2003-04-11  Havoc Pennington  <hp@redhat.com>
11650
11651         * bus/bus.c (bus_context_new): move credentials change after
11652         creating pidfile
11653
11654 2003-04-11  Havoc Pennington  <hp@pobox.com>
11655
11656         * test/decode-gcov.c: add "below average functions" to the
11657         coverage report, and change how some of the code works.
11658
11659         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11660         not in the coverage stats.
11661
11662         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11663         couple places so running the test suite doesn't result in megaspam.
11664
11665 2003-04-11  Havoc Pennington  <hp@pobox.com>
11666
11667         * bus/dispatch.c (check_existent_service_activation): accept a no
11668         memory error in a place we didn't before
11669
11670         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11671         in case the first one failed," since the test suite is less
11672         broken now.
11673
11674 2003-04-10  Havoc Pennington  <hp@pobox.com>
11675
11676         * bus/dispatch.c (check_segfault_service_activation): add test
11677         for launching an executable that just crashes.
11678
11679         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11680         don't leave a million cores. We'll see how portable this is.
11681
11682 2003-04-10  Havoc Pennington  <hp@pobox.com>
11683
11684         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11685         the possible parent failures before we fork, so that we don't
11686         fail to create a babysitter after creating the child.
11687
11688         * bus/activation.c (bus_activation_activate_service): kill child
11689         if we don't successfully complete the activation.
11690
11691 2003-04-10  Havoc Pennington  <hp@redhat.com>
11692
11693         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11694         the connection if it's disconnected
11695
11696         * bus/activation.c (bus_activation_service_created): use new
11697         transaction features to roll back removal of pending activation if
11698         we don't successfully create the service after all. Don't remove
11699         pending activation if the function fails.
11700
11701         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11702         (_dbus_list_insert_after_link): new code to facilitate
11703         services.c fixes
11704
11705         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11706         new functionality, so we can preallocate the ability to insert
11707         into a hash table.
11708
11709         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11710         allowing us to put custom hooks in a transaction to be used for
11711         cancelling said transaction
11712
11713         * doc/dbus-specification.sgml: add some discussion of secondary
11714         service owners, and disallow zero-length service names
11715
11716         * bus/services.c (bus_registry_acquire_service): new function,
11717         splits out part of bus_driver_handle_acquire_service() and fixes
11718         a bug where we didn't remove the service doing the acquiring
11719         from the secondary queue if we failed to remove the current owner
11720         from the front of the queue.
11721
11722 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11723
11724         * doc/dbus-specification.sgml:
11725         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11726
11727 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11728
11729         * bus/.cvsignore:
11730         * glib/.cvsignore:
11731         * test/.cvsignore:
11732         Added files to cvsignore
11733
11734         * dbus/dbus-message.h:
11735         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11736         Make get_named() take two out argument and return a boolean.
11737         (dbus_message_iter_get_args_valist):
11738         Update usage of get_named().
11739         (dbus_message_iter_append_byte):
11740         Fix typo
11741         (dbus_message_iter_append_named)
11742         Fix typo
11743         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11744         More tests.
11745
11746 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11747
11748         * dbus/dbus-marshal.[ch]:
11749         Add array_type_pos argument to _dbus_marshal_validate_arg.
11750         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11751
11752         * dbus/dbus-message.[ch]:
11753         Multi-dimensional arrays have full type specification in the
11754         outermost array. Iter code re-arranged to handle this.
11755         Added some more iter tests.
11756
11757         * doc/dbus-specification.sgml:
11758         Add me to authors.
11759         Remove old FIXME.
11760         Update new array encoding description.
11761         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11762
11763         * test/data/invalid-messages/array-with-mixed-types.message:
11764         * test/data/valid-messages/array-of-array-of-uint32.message:
11765         Change to the new array format.
11766
11767         * test/data/invalid-messages/too-short-dict.message:
11768         Fix bug in test.
11769
11770         * test/data/valid-messages/recursive-types.message:
11771         Fix up and extend test.
11772
11773 2003-04-10  Havoc Pennington  <hp@pobox.com>
11774
11775         * bus/dispatch.c: lots of fixes
11776
11777         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11778         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11779         that was crack, broke the test service.
11780
11781         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11782         handling to avoid piling up errors if we get a failure on the
11783         first address.
11784
11785         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11786         pid in assertion failures.
11787
11788         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11789         to some fixed size of file descriptor array. Don't return TRUE
11790         anytime a timeout exists, that led to lots of busy loop silliness
11791         in the tests.
11792
11793 2003-04-09  Havoc Pennington  <hp@redhat.com>
11794
11795         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11796         I'd checked this in earlier but hadn't.
11797
11798 2003-04-09  Havoc Pennington  <hp@redhat.com>
11799
11800         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11801         the activation test (man this is getting old!)
11802
11803 2003-04-09  Havoc Pennington  <hp@redhat.com>
11804
11805         * test/test-utils.c: use dispatch status function to fix this up
11806
11807         * bus/connection.c (connection_watch_callback): don't dispatch
11808         from here
11809         (connection_timeout_callback): don't dispatch from here
11810         (bus_connections_setup_connection): set the dispatch status function
11811         (bus_connection_disconnected): unset it
11812
11813         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11814         used to add a connection to be dispatched
11815         (_dbus_loop_iterate): do the dispatching at the end of each
11816         iteration
11817
11818         * dbus/dbus-connection.c
11819         (dbus_connection_set_dispatch_status_function): new function
11820         allowing us to fix up main loop usage
11821         (_dbus_connection_last_unref): free all the various function
11822         user data
11823         (dbus_connection_dispatch): call the DispatchStatusFunction
11824         whenever this function returns
11825         (dbus_connection_handle_watch): call DispatchStatusFunction
11826         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11827         (reply_handler_timeout): call DispatchStatusFunction
11828         (dbus_connection_flush): call DispatchStatusFunction
11829
11830 2003-04-09  Havoc Pennington  <hp@redhat.com>
11831
11832         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11833         a memory leak
11834
11835         * bus/dispatch.c (check_service_activated): fix bug in test
11836
11837         * dbus/dbus-mainloop.c (check_timeout): fix this up
11838
11839         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11840         verbose output so we can sort out output from different processes,
11841         e.g. in the activation case.
11842
11843 2003-04-08  Colin Walters  <walters@gnu.org>
11844
11845         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11846         the pid file.
11847         (bus_context_new): Set it.
11848         (bus_context_unref): Use it to delete the pid file.
11849
11850 2003-04-08  Havoc Pennington  <hp@redhat.com>
11851
11852         * test/data/invalid-messages/array-with-mixed-types.message:
11853         regression test that fails for the moment
11854
11855         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11856         tests for convenience
11857
11858         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11859         array of nil, it broke things.
11860
11861         * test/data/invalid-messages/array-of-nil.message: regression test
11862
11863         * test/data/valid-messages/array-of-array-of-uint32.message:
11864         happened to write this so added it to suite
11865
11866 2003-04-08  Havoc Pennington  <hp@redhat.com>
11867
11868         * bus/driver.c (bus_driver_handle_acquire_service): init
11869         retval/reply before checking name
11870
11871         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11872         recursion depth argument
11873
11874         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11875         in the public struct for future extension
11876
11877         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11878         typo
11879
11880         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11881         message
11882
11883         * doc/dbus-specification.sgml: fix typo
11884
11885 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11886
11887         Implemented recursive types, named types and new-style iters
11888
11889         * bus/driver.c:
11890         * glib/test-thread-client.c: (thread_func):
11891         * glib/test-thread-server.c: (handle_test_message):
11892         * test/test-service.c: (handle_echo):
11893         Update to new api
11894
11895         * dbus/Makefile.am:
11896         * dbus/dbus-dict.c:
11897         * dbus/dbus-dict.h:
11898         * dbus/dbus.h
11899         Remove DBusDict
11900
11901         * dbus/dbus-internals.c: (_dbus_type_to_string):
11902         Update for new types.
11903
11904         * dbus/dbus-marshal.[ch]:
11905         Implement recursive types and the new marshalling format.
11906         Remove hardcoded dict marshalling.
11907         Marshal named types.
11908
11909         * dbus/dbus-message-builder.c:
11910         Add BYTE_ARRAY.
11911         Remove references to old types
11912
11913         * dbus/dbus-message.[ch]:
11914         New non-refcounted iter API that supports recursive iters.
11915         Use iters for appending, including support for recursive
11916         iters.
11917         Add byte and named type support.
11918         Update everything to new marshalling formats.
11919         Add tests for new API.
11920
11921         * dbus/dbus-protocol.h:
11922         Remove old array types.
11923         Add types: BYTE, ARRAY, DICT, NAMED
11924
11925         * dbus/dbus-string.c:
11926         * dbus/dbus-sysdeps.c:
11927         Make parse_double locale safe.
11928
11929         * dbus/dbus-test-main.c:
11930         Call setlocale.
11931
11932         * dbus/dbus-test.c:
11933         Kill dict test
11934
11935         * doc/dbus-specification.sgml:
11936         Update spec
11937
11938         * test/data/incomplete-messages/missing-body.message:
11939         * test/data/invalid-messages/bad-boolean.message:
11940         * test/data/invalid-messages/bad-boolean-array.message:
11941         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11942         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11943         * test/data/invalid-messages/too-short-dict.message:
11944         * test/data/valid-messages/dict-simple.message:
11945         * test/data/valid-messages/dict.message:
11946         * test/data/valid-messages/emptiness.message:
11947         * test/data/valid-messages/lots-of-arguments.message:
11948         * test/data/valid-messages/no-padding.message:
11949         * test/data/valid-messages/recursive-types.message:
11950         Add missing NAME fields
11951         Fix up dicts & arrays
11952
11953         * test/data/invalid-messages/dict-with-nil-value.message:
11954         Removed, this is not invalid anymore.
11955
11956         * test/data/valid-messages/recursive-types.message:
11957         Add new test for deeply recursive types.
11958
11959 2003-04-07  Havoc Pennington  <hp@pobox.com>
11960
11961         * bus/driver.c (bus_driver_handle_acquire_service): return an
11962         error if you try to acquire a service that starts with ':'
11963
11964 2003-04-07  Havoc Pennington  <hp@redhat.com>
11965
11966         * doc/dbus-specification.sgml: require that base service names
11967         start with ':' and that the base service is created/deleted
11968         as first and last things a connection does on the bus
11969
11970         * bus/dispatch.c (check_existent_service_activation): lots more
11971         work on the activation test; it doesn't fully pass yet...
11972
11973         * test/test-service.c (main): fix so we don't memleak the
11974         connection to the message bus
11975         (filter_func): accept a message asking us to exit
11976
11977 2003-04-06  Havoc Pennington  <hp@pobox.com>
11978
11979         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11980         from Colin Walters
11981
11982         * configure.in: fixes to Qt detection from Colin Walters
11983
11984         * doc/Makefile.am: Only remove generated docbook dirs if they
11985         exist, from Colin Walters
11986
11987         * dbus/dbus-bus.c: change how we set well-known connections to
11988         NULL, so that it works if a single connection is stored in
11989         two well-known array slots.
11990
11991         * test/Makefile.am: remove a lot of stuff that isn't immediately
11992         useful, it's in CVS history if we want it.
11993
11994         * test/test-service.c: use dbus-mainloop instead of that
11995         watch.[hc] crack
11996
11997 2003-04-06  Havoc Pennington  <hp@pobox.com>
11998
11999         * dbus/Makefile.am: split lists of sources into stuff that goes in
12000         the library, util functions that go in the lib and are also used
12001         elsewhere, and util functions that are used in tests/daemon but
12002         don't go in the lib.
12003
12004         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
12005         here so it can be used in test binaries also
12006
12007 2003-04-06  Havoc Pennington  <hp@pobox.com>
12008
12009         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
12010         here in the parent process, so we can return an error if it
12011         fails. Also, move some of the code into the child so the parent
12012         is less hosed if we fail midway through.
12013
12014         * bus/bus.c (bus_context_new): move pidfile detection further up
12015         in the function, before we start overwriting sockets and such.
12016
12017         * bus/messagebus.in: adjust this a bit, not sure if it will work.
12018
12019         * configure.in: add --with-system-pid-file and --with-system-socket
12020
12021 2003-04-06  Colin Walters  <walters@verbum.org>
12022
12023         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
12024
12025         * bus/system.conf.in: Declare a pidfile.
12026
12027         * bus/bus.c (bus_context_new): Test for an existing pid file, and
12028         create one (if appropriate).
12029
12030         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
12031         (struct BusConfigParser) [pidfile]: New.
12032         (element_type_to_name, merge_included, start_busconfig_child)
12033         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
12034         (bus_config_parser_unref): Free it.
12035         (bus_config_parser_get_pidfile): New function.
12036
12037         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
12038
12039         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
12040
12041         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
12042
12043         * dbus/dbus-sysdeps.h: Prototype it.
12044
12045 2003-04-06  Havoc Pennington  <hp@pobox.com>
12046
12047         * bus/bus.c (bus_context_new): print the address in here, rather
12048         than in main(), because we need to do it before forking the daemon
12049
12050         * bus/dispatch.c (send_service_nonexistent_error): set the sender
12051         on the service nonexistent error
12052
12053         * bus/driver.c (bus_driver_handle_acquire_service): set the
12054         sender on the AcquireService reply
12055
12056         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
12057         server also listen on a UNIX socket so services can connect to it.
12058
12059 2003-04-06  Havoc Pennington  <hp@pobox.com>
12060
12061         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
12062         so it detects deadlocks and also we actually init threads when
12063         debugging.
12064
12065 2003-04-06  Havoc Pennington  <hp@pobox.com>
12066
12067         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
12068         save the domain socket name, and unlink it when we disconnect the
12069         server. Means that at least when we exit normally, we won't leave
12070         a bunch of junk in /tmp
12071
12072         * dbus/dbus-transport-unix.c
12073         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
12074         memory management). (I was making a real change here but then
12075         didn't)
12076
12077 2003-04-06  Havoc Pennington  <hp@pobox.com>
12078
12079         * bus/bus.c (bus_context_new): fix wrong handling of
12080         server_data_slot_unref() in the error case.
12081
12082         * dbus/dbus-internals.h (_dbus_assert): change so it passes
12083         "(condition) != 0" to _dbus_real_assert so that
12084         "_dbus_assert (pointer)" doesn't cause a warning
12085
12086         * bus/main.c (main): accept --print-address option to print out
12087         the message bus address
12088
12089         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
12090
12091         * dbus/dbus-transport.c (_dbus_transport_open): special error for
12092         "tmpdir" option to unix: address on client side
12093
12094         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
12095         to unix: address
12096
12097         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
12098         we can use to create sockets in the test suite.
12099
12100         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
12101         cleanly. To be used for testing.
12102
12103         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
12104
12105         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
12106
12107         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12108         handle trying to call this when there's no servers active
12109
12110 2003-04-05  Havoc Pennington  <hp@pobox.com>
12111
12112         * NEWS: update
12113
12114         * configure.in: 0.8
12115
12116 2003-04-05  Havoc Pennington  <hp@pobox.com>
12117
12118         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
12119         crash on startup. Need to get "try starting the daemon"
12120         in the test suite I guess. ;-)
12121
12122         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
12123         tracked the number of open connections; it's better done in
12124         application-specific code as you want it to span all servers etc.
12125
12126 2003-04-05  Havoc Pennington  <hp@pobox.com>
12127
12128         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
12129         patch from Colin Walters
12130
12131 2003-04-05  Havoc Pennington  <hp@pobox.com>
12132
12133         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
12134         reality; in fact multiple mechanisms are allowed.
12135
12136         * dbus/dbus-internals.c (_dbus_real_assert)
12137         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
12138         _dbus_assert_not_reached() into functions, so that they don't show
12139         up in basic block counts for test coverage, and don't use up as
12140         much disk space. Does mean slower execution speed though, so
12141         assumes --disable-asserts is the normal production case.
12142
12143 2003-04-05  Havoc Pennington  <hp@pobox.com>
12144
12145         * test/Makefile.am (dist-hook): also dist *.in files
12146
12147         * NEWS: update
12148
12149         * configure.in: 0.7
12150
12151 2003-04-05  Havoc Pennington  <hp@pobox.com>
12152
12153         * dbus/dbus-string.c: docs warning
12154
12155         * dbus/dbus-spawn.c: missing docs
12156
12157         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
12158
12159 2003-04-05  Havoc Pennington  <hp@pobox.com>
12160
12161         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
12162         magic from GLib
12163
12164         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
12165         to -1 once we've reaped the babysitter
12166         (_dbus_babysitter_handle_watch): do as much work as we can, not
12167         just one go of it
12168
12169         * bus/activation.c: add code using DBusBabysitter so that we
12170         handle it when a service fails to start up properly.
12171         (bus_activation_service_created): don't remove the activation
12172         entries as we go, just let them get removed when we free the pending
12173         activation. Unref reply messages after sending them.
12174
12175 2003-04-05  Havoc Pennington  <hp@pobox.com>
12176
12177         * test/decode-gcov.c (main): print per-directory stats in the report
12178
12179         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
12180
12181 2003-04-05  Havoc Pennington  <hp@pobox.com>
12182
12183         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
12184
12185         * test/decode-gcov.c: hack up a little program to suck data
12186         out of gcov files. Yes this is sort of silly.
12187
12188         * configure.in: define something in config.h and do an
12189         AM_CONDITIONAL when gcov is enabled
12190
12191 2003-04-04  Havoc Pennington  <hp@redhat.com>
12192
12193         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
12194         return a "babysitter" object that is used to monitor the status of
12195         the spawned process and reap it when required.
12196
12197         * test/test-segfault.c, test/test-exit.c,
12198         test/test-sleep-forever.c: binaries that do various lame things,
12199         used in the test suite.
12200
12201         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
12202
12203 2003-04-03  Havoc Pennington  <hp@pobox.com>
12204
12205         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
12206         in preparation for modifying it, dbus-sysdeps is getting
12207         a bit unmanageable.
12208
12209 2003-04-03  Havoc Pennington  <hp@redhat.com>
12210
12211         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
12212         have multiple ones
12213
12214         * bus/*.[hc]: adapt to mainloop change
12215
12216 2003-04-03  Havoc Pennington  <hp@redhat.com>
12217
12218         * bus/activation.c (load_directory): fix up memleaks
12219         (bus_activation_entry_free): free the entry
12220
12221         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
12222         we get one from the message bus; fix memleaks.
12223
12224         * dbus/dbus-message.c (dbus_set_error_from_message): new function
12225
12226 2003-04-03  Havoc Pennington  <hp@pobox.com>
12227
12228         * bus/config-parser.c (bus_config_parser_unref): free
12229         list of mechanisms, bug discovered by test suite enhancements
12230         (putting system.conf and session.conf into suite)
12231
12232         * test/Makefile.am, test/test-service.c: add placeholder for a
12233         test service that we'll activate as part of test suite. Doesn't
12234         do anything yet.
12235
12236         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
12237         setting NULL value, and use system malloc not dbus_malloc()
12238         when we have unavoidable memleakage.
12239
12240         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
12241         didn't work, and support DBUS_BUS_ACTIVATION.
12242
12243         * bus/activation.c (child_setup): pass our well-known bus type to
12244         the child
12245
12246         * bus/config-parser.c: support <type> to specify well-known type
12247
12248         * doc/dbus-specification.sgml: document the env variables to
12249         locate well-known buses and find service activator
12250
12251 2003-04-02  Havoc Pennington  <hp@redhat.com>
12252
12253         * test/Makefile.am (all-local): add a rule to copy tests to
12254         builddir, so we can have generated tests. Use this to remove the
12255         silly hack for testing system.conf and session.conf. Will use this
12256         shortly to generate .service files pointing to test binaries.
12257
12258 2003-04-02  Havoc Pennington  <hp@redhat.com>
12259
12260         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
12261         current alloc and needed new length, not max of the doubled
12262         allocation and needed new length. Also, when building tests,
12263         don't do the double-allocation stuff, just realloc every time.
12264
12265 2003-04-02  Havoc Pennington  <hp@redhat.com>
12266
12267         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
12268         in error messages
12269         (_dbus_string_get_dirname): new
12270         (_dbus_sysdeps_test): new
12271         (_dbus_directory_open): include dirnames in error messages
12272
12273         * bus/config-parser.c: interpret <include> and <includedir> and
12274         <servicedir> relative to config file location if the given
12275         filename is not absolute.
12276
12277         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
12278
12279 2003-04-02  Havoc Pennington  <hp@redhat.com>
12280
12281         * bus/connection.c (bus_transaction_send_error_reply): set sender
12282         service for the error, and unref the reply on success
12283
12284         * bus/activation.c: convert to use BusTransaction so OOM can be
12285         handled correctly
12286         (bus_activation_service_created): set sender of the message
12287
12288 2003-04-01  Havoc Pennington  <hp@redhat.com>
12289
12290         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
12291         <includedir> (at least mostly)
12292
12293         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
12294         first, then the user ID
12295
12296 2003-04-01  Havoc Pennington  <hp@pobox.com>
12297
12298         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
12299         function
12300
12301         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
12302
12303         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
12304
12305         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
12306         socket 0777, and unlink any existing socket.
12307
12308         * bus/bus.c (bus_context_new): change our UID/GID and fork if
12309         the configuration file so specifies; set up auth mechanism
12310         restrictions
12311
12312         * bus/config-parser.c (bus_config_parser_content): add support
12313         for <fork> option and fill in code for <auth>
12314
12315         * bus/system.conf.in: add <fork/> to default configuration,
12316         and limit auth mechanisms to EXTERNAL
12317
12318         * doc/config-file.txt (Elements): add <fork>
12319
12320         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
12321         (_dbus_change_identity): new function
12322
12323 2003-03-31  Havoc Pennington  <hp@redhat.com>
12324
12325         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
12326         (_dbus_listen_unix_socket): fix off-by-one error in null
12327         termination spotted by Nalin
12328
12329 2003-03-31  Havoc Pennington  <hp@redhat.com>
12330
12331         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
12332         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
12333         having a real home directory available.
12334
12335 2003-03-31  Havoc Pennington  <hp@redhat.com>
12336
12337         * bus/Makefile.am (install-data-hook): create /var/run/dbus
12338
12339         * bus/messagebus.in: add init script for Red Hat /etc/init.d
12340
12341         * configure.in: add support for specifying a style of init script
12342         to install
12343
12344 2003-03-31  Havoc Pennington  <hp@redhat.com>
12345
12346         Fix some annoying DBusString API and fix all affected code.
12347
12348         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
12349         max_length argument
12350         (_dbus_string_get_data): change to return string instead of using
12351         an out param
12352         (_dbus_string_get_const_data): ditto
12353         (_dbus_string_get_data_len): ditto
12354         (_dbus_string_get_const_data_len): ditto
12355
12356 2003-03-31  Havoc Pennington  <hp@redhat.com>
12357
12358         * bus/main.c (main): fix up the command line arguments to be nicer
12359
12360 2003-03-31  Havoc Pennington  <hp@redhat.com>
12361
12362         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12363         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12364         final location that lands in the config file
12365
12366         * bus/config-loader-expat.c (bus_config_load): fix type of
12367         XML_Parser variable
12368
12369         * doc/TODO: remove TODO item for dbus_bus_get()
12370
12371         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12372
12373 2003-03-31  Havoc Pennington  <hp@pobox.com>
12374
12375         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12376         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12377         argument since they are always client side
12378
12379         * dbus/dbus-server.c (dbus_server_get_address): new function
12380
12381         * bus/main.c (main): take the configuration file as an argument.
12382
12383         * test/data/valid-config-files/debug-allow-all.conf: new file to
12384         use with dispatch.c tests for example
12385
12386         * bus/test-main.c (main): require test data dir
12387
12388         * bus/bus.c (bus_context_new): change this to take a
12389         configuration file name as argument
12390
12391         * doc/config-file.txt (Elements): add <servicedir>
12392
12393         * bus/system.conf, bus/session.conf: new files
12394
12395         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12396         well-known socket if none set
12397
12398         * configure.in: create system.conf and session.conf
12399
12400 2003-03-30  Havoc Pennington  <hp@pobox.com>
12401
12402         * bus/config-parser.c: hacking
12403
12404         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12405         to shut down, since it could cause weirdness with the DBusList
12406         lock
12407
12408         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12409         link-oriented stack routines
12410         (alloc_link): free the mempool if the first alloc from it fails
12411
12412         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12413
12414         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12415         from GLib
12416         (_dbus_string_skip_white): new
12417
12418         * doc/config-file.txt (Elements): add <includedir>
12419
12420 2003-03-28  Havoc Pennington  <hp@pobox.com>
12421
12422         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12423         (_dbus_string_copy_data): new functions
12424
12425 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12426
12427         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12428         * dbus/dbus-bus.h:
12429         Add dbus_bus_get.
12430
12431         * dbus/dbus-memory.c:
12432         Fix a doc comment.
12433
12434 2003-03-28  Havoc Pennington  <hp@pobox.com>
12435
12436         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12437         I think it may have just been superstition. Not sure.
12438
12439         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12440         failures that were not being handled.
12441
12442         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12443
12444         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12445         row that will fail on out-of-memory.
12446
12447         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12448         function for testing out-of-memory handling.
12449
12450         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12451         allocation functions, they do map exactly to the expat ones.
12452
12453 2003-03-27  Havoc Pennington  <hp@redhat.com>
12454
12455         * bus/config-loader-libxml.c (bus_config_load): add another error
12456         check
12457
12458 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12459
12460         * doc/TODO:
12461         Add note about automatic service activation.
12462
12463         * doc/dbus-specification.sgml:
12464         Rename the specification and clarify a few things.
12465
12466 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12467
12468         * Doxyfile.in:
12469         * dbus/dbus-address.c:
12470         * dbus/dbus-dict.c:
12471         * dbus/dbus-marshal.c:
12472         * dbus/dbus-server-debug-pipe.c:
12473         * dbus/dbus-transport-unix.c:
12474         Fix documentation warnings.
12475
12476 2003-03-26  Havoc Pennington  <hp@pobox.com>
12477
12478         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12479         after every test so it's quick and easy to see which leaked, and
12480         so we test multiple dbus_shutdown() calls
12481
12482         * configure.in: change configure.in XML stuff to also support
12483         expat
12484
12485         * config-loader-libxml.c: some hacking
12486
12487         * config-loader-expat.c: some hacking
12488
12489         * config-parser.c: some hacking, plus tests
12490
12491 2003-03-25  Havoc Pennington  <hp@redhat.com>
12492
12493         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12494
12495         * configure.in: add --with-xml option to specify XML library,
12496         right now only libxml is supported.
12497
12498         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12499         nonworking code between home and work, still just stubs
12500
12501 2003-03-24  Havoc Pennington  <hp@redhat.com>
12502
12503         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12504         file
12505
12506         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12507         NULL argument for "message" if the error is a well-known one,
12508         fill in a generic message in this case.
12509
12510         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12511         favor of DBusError
12512
12513         * bus/test.c (bus_test_flush_bus): add
12514
12515         * bus/policy.c (bus_policy_test): test code stub
12516
12517 2003-03-24  Havoc Pennington  <hp@pobox.com>
12518
12519         * bus/connection.c (bus_connections_setup_connection): set up
12520         the "can this user connect" function, but it always returns
12521         TRUE until we have a config file parser so we can have a config
12522         file that allows connections.
12523
12524 2003-03-23  Havoc Pennington  <hp@pobox.com>
12525
12526         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12527         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12528         the mutex, so we can check for proper memory management
12529         and OOM handling.
12530
12531         * dbus/dbus-dataslot.c: remove the mutex from
12532         DBusDataSlotAllocator and lock it manually when using it,
12533         to simplify fitting it into the global slots framework.
12534
12535         * dbus/dbus-threads.c (init_static_locks): rework how we're
12536         handling global locks so they are easily shut down.
12537
12538         * bus/policy.c (bus_policy_append_rule): fix
12539
12540         * bus/test-main.c (main): check for memleaks
12541
12542         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12543         test suite check for memleaks
12544
12545         * dbus/dbus-memory.c: add support in test mode for tracking
12546         number of outstanding blocks
12547
12548 2003-03-23  Havoc Pennington  <hp@pobox.com>
12549
12550         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12551         policies code
12552
12553         * dbus/dbus-hash.h: add ULONG hash keys
12554
12555         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12556         (_dbus_get_group_id): new function
12557
12558 2003-03-20  Havoc Pennington  <hp@redhat.com>
12559
12560         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12561         new function
12562         (dbus_connection_get_unix_user): new function
12563
12564 2003-03-20  Havoc Pennington  <hp@pobox.com>
12565
12566         * bus/connection.c (bus_connection_send_oom_error): assert that
12567         message has a sender
12568         (connection_execute_transaction): ditto
12569         (bus_connection_preallocate_oom_error): fix to set the sender, and
12570         set recipient to the destination service, not the bus driver
12571
12572         * bus/policy.c: hacking
12573
12574         * dbus/dbus-message.c (dbus_message_service_is): new function
12575         (dbus_message_sender_is): new
12576
12577 2003-03-19  Havoc Pennington  <hp@redhat.com>
12578
12579         * bus/policy.c: start sketching code for policy restrictions on
12580         what connections can do.
12581
12582 2003-03-18  Havoc Pennington  <hp@redhat.com>
12583
12584         * doc/TODO: some notes on high-level todo items. Little nitpick
12585         stuff is all in @todo, so no need to add it here.
12586
12587         * doc/config-file.txt: some notes on how config file might look
12588
12589 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12590
12591         * configure.in: 0.6
12592
12593         * NEWS: Update.
12594
12595 2003-03-17  Havoc Pennington  <hp@redhat.com>
12596
12597         * dbus/dbus-internals.h: add gcc attributes so that
12598         our printf-style functions warn on bad arguments to
12599         format
12600
12601         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12602         format bug
12603
12604         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12605         printf format bug
12606
12607 2003-03-17  Havoc Pennington  <hp@redhat.com>
12608
12609         * bus/test-main.c (main): make it print something as it runs
12610         so make check doesn't look stuck
12611
12612         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12613         from CVS, now obsolete
12614
12615 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12616
12617         * bus/dispatch.c: (bus_dispatch):
12618         Refetch the service name since it may have been reallocated
12619         when dbus_message_set_sender was called.
12620
12621         * dbus/dbus-sysdeps.c: (_dbus_accept):
12622         Add address and address length variables and use them to stop
12623         valgrind from complaining.
12624
12625 2003-03-17  Havoc Pennington  <hp@pobox.com>
12626
12627         All tests pass, no memleaks, no valgrind complaints.
12628
12629         * bus/test.c: refcount handler_slot
12630
12631         * bus/connection.c (bus_connections_new): refcount
12632         connection_data_slot
12633
12634         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12635         bytes so that auth scripts pass.
12636
12637         * bus/dispatch.c: init message_handler_slot so it gets allocated
12638         properly
12639
12640         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12641
12642         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12643         dealloc server_pipe_hash when no longer used for benefit of
12644         leak checking
12645
12646         * dbus/dbus-auth.c (process_command): memleak fix
12647
12648         * bus/dispatch.c (check_hello_message): memleak fix
12649
12650 2003-03-16  Havoc Pennington  <hp@pobox.com>
12651
12652         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12653
12654 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12655
12656         * bus/activation.c (bus_activation_activate_service): Append
12657         the pending activation entry to the list of pending activations.
12658
12659 2003-03-16  Havoc Pennington  <hp@pobox.com>
12660
12661         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12662         connections
12663
12664         * dbus/dbus-address.c (create_entry): fix OOM handling when
12665         failing to alloc entry->method
12666
12667 2003-03-16  Havoc Pennington  <hp@pobox.com>
12668
12669         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12670         the watch
12671
12672         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12673         add some missing dbus_set_result
12674
12675         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12676         alloc the DBusMessageHandler
12677
12678         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12679         the transport here, since we call this from the finalizer; it
12680         resulted in a double-finalize.
12681
12682         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12683         where we tried to use transport->connection that was NULL,
12684         happened when transport was disconnected early on due to OOM
12685
12686         * bus/*.c: adapt to handle OOM for watches/timeouts
12687
12688         * dbus/dbus-transport-unix.c: port to handle OOM during
12689         watch handling
12690
12691         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12692         reference to unused bytes instead of a copy
12693
12694         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12695         out of memory
12696
12697         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12698         FALSE on OOM
12699
12700         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12701         of memory
12702
12703 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12704
12705         * doc/dbus-specification.sgml:
12706         Document reply message for ActivateService.
12707
12708 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12709
12710         * bus/activation.c: (bus_pending_activation_entry_free),
12711         (bus_pending_activation_free), (bus_activation_new),
12712         (bus_activation_unref), (bus_activation_service_created),
12713         (bus_activation_activate_service):
12714         * bus/activation.h:
12715         * bus/bus.c: (bus_context_new):
12716         * bus/desktop-file.c: (new_section):
12717         * bus/driver.c: (bus_driver_send_service_deleted),
12718         (bus_driver_handle_activate_service):
12719         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12720         * bus/services.h:
12721         * dbus/dbus-connection.c:
12722         (dbus_connection_send_with_reply_and_block):
12723         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12724         * dbus/dbus-protocol.h:
12725         Make activation work better. Now pending activations will be queued
12726         and the daemon won't try to activate services that are already registered.
12727
12728 2003-03-16  Havoc Pennington  <hp@pobox.com>
12729
12730         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12731         connection data
12732
12733         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12734         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12735
12736 2003-03-16  Havoc Pennington  <hp@pobox.com>
12737
12738         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12739         this. always run the test suite before commit...
12740
12741         * bus/*: adapt to DBusConnection API changes
12742
12743         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12744         requires renaming stuff to avoid dbus_connection_dispatch name
12745         conflict.
12746
12747         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12748         function
12749
12750         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12751         separate from _dbus_message_loader_return_buffer()
12752
12753         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12754         this, because it's now always broken to use; the number of
12755         messages in queue vs. the number still buffered by the message
12756         loader is undefined/meaningless. Should use
12757         dbus_connection_get_dispatch_state().
12758         (dbus_connection_dispatch): rename from
12759         dbus_connection_dispatch_message
12760
12761 2003-03-16  Havoc Pennington  <hp@pobox.com>
12762
12763         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12764         implementation
12765
12766 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12767
12768         * dbus/dbus-connection.c:
12769         (dbus_connection_send_with_reply_and_block):
12770         Decrease connection->n_incoming when removing an entry
12771         from the list.
12772         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12773         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12774         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12775         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12776         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12777         (dbus_dict_get_byte_array):
12778         Handle NULL arrays and strings. Also add support for byte arrays.
12779
12780         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12781         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12782         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12783         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12784         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12785         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12786         * dbus/dbus-marshal.h:
12787         Add support for marshalling and demarshalling empty arrays and strings.
12788
12789         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12790         (dbus_message_append_string_array),
12791         (dbus_message_iter_get_boolean),
12792         (dbus_message_iter_get_boolean_array),
12793         (dbus_message_iter_get_int32_array),
12794         (dbus_message_iter_get_uint32_array),
12795         (dbus_message_iter_get_double_array),
12796         (dbus_message_iter_get_byte_array),
12797         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12798         (check_message_handling):
12799         Add support for getting empty arrays and dicts.
12800
12801         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12802         Don't do any validation at all for now, that's better than just checking
12803         for ASCII.
12804
12805         * test/data/valid-messages/emptiness.message:
12806         New test message with lots of empty arrays.
12807
12808 2003-03-16  Havoc Pennington  <hp@pobox.com>
12809
12810         * dbus/dbus-connection.c
12811         (_dbus_connection_queue_received_message_link): new function that
12812         can't fail due to OOM
12813
12814         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12815         new function pops a message together with a list link
12816         containing it.
12817
12818         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12819         message queuing functions to avoid needing to alloc memory
12820
12821 2003-03-16  Havoc Pennington  <hp@pobox.com>
12822
12823         Oops - test code was only testing failure of around 30 of the
12824         mallocs in the test path, but it turns out there are 500+
12825         mallocs. I believe this was due to misguided linking setup such
12826         that there was one copy of dbus_malloc etc. in the daemon and one
12827         in the shared lib, and only daemon mallocs were tested. In any
12828         case, the test case now tests all 500+ mallocs, and doesn't pass
12829         yet, though there are lots of fixes in this patch.
12830
12831         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12832         this so that it doesn't need to allocate memory, since it
12833         has no way of indicating failure due to OOM (and would be
12834         annoying if it did).
12835
12836         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12837
12838         * bus/Makefile.am: rearrange to create two self-contained
12839         libraries, to avoid having libraries with overlapping symbols.
12840         that was resulting in weirdness, e.g. I'm pretty sure there
12841         were two copies of global static variables.
12842
12843         * dbus/dbus-internals.c: move the malloc debug stuff to
12844         dbus-memory.c
12845
12846         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12847         empty.
12848
12849         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12850
12851         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12852         on failure.
12853
12854         * bus/dispatch.c (bus_dispatch_add_connection): free
12855         message_handler_slot when no longer using it, so
12856         memory leak checkers are happy for the test suite.
12857
12858         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12859
12860         * bus/bus.c (new_connection_callback): disconnect in here if
12861         bus_connections_setup_connection fails.
12862
12863         * bus/connection.c (bus_connections_unref): fix to free the
12864         connections
12865         (bus_connections_setup_connection): if this fails, don't
12866         disconnect the connection, just be sure there are no side
12867         effects.
12868
12869         * dbus/dbus-string.c (undo_alignment): unbreak this
12870
12871         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12872         leaking
12873         (_dbus_auth_new): fix the order in which we free strings
12874         on OOM failure
12875
12876         * bus/connection.c (bus_connection_disconnected): fix to
12877         not send ServiceDeleted multiple times in case of memory
12878         allocation failure
12879
12880         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12881         get the base service name
12882         (dbus_bus_register_client): don't return base service name,
12883         instead store it on the DBusConnection and have an accessor
12884         function for it.
12885         (dbus_bus_register_client): rename dbus_bus_register()
12886
12887         * bus/dispatch.c (check_hello_message): verify that other
12888         connections on the bus also got the correct results, not
12889         just the one sending hello
12890
12891 2003-03-15  Havoc Pennington  <hp@pobox.com>
12892
12893         Make it pass the Hello handling test including all OOM codepaths.
12894         Now to do other messages...
12895
12896         * bus/services.c (bus_service_remove_owner): fix crash when
12897         removing owner from an empty list of owners
12898         (bus_registry_ensure): don't leave service in the list of
12899         a connection's owned services if we fail to put the service
12900         in the hash table.
12901
12902         * bus/connection.c (bus_connection_preallocate_oom_error): set
12903         error flag on the OOM error.
12904
12905         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12906         handle _dbus_transport_set_connection failure
12907
12908         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12909         to create watches up front and simply enable/disable them as
12910         needed.
12911         (unix_connection_set): this can now fail on OOM
12912
12913         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12914         of enabling/disabling a watch or timeout.
12915
12916         * bus/loop.c (bus_loop_iterate): don't touch disabled
12917         watches/timeouts
12918
12919         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12920
12921 2003-03-15  Havoc Pennington  <hp@pobox.com>
12922
12923         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12924         write useful test code, after all that futzing around ;-)
12925
12926         Test does not yet pass because we can't handle OOM in
12927         _dbus_transport_messages_pending (basically,
12928         dbus_connection_preallocate_send() does not prealloc the write
12929         watch). To fix this, I think we need to add new stuff to
12930         set_watch_functions, namely a SetEnabled function so we can alloc
12931         the watch earlier, then enable it later.
12932
12933         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12934         dbus-memory.c to the convenience lib
12935
12936         * bus/test.c: rename some static functions to keep them clearly
12937         distinct from stuff in connection.c. Handle client disconnection.
12938
12939 2003-03-14  Havoc Pennington  <hp@pobox.com>
12940
12941         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12942         transport, tests more of the real codepath. Set up clients
12943         with bus_setup_debug_client.
12944
12945         * bus/test.c (bus_setup_debug_client): function to set up debug
12946         "clients" on the main loop
12947
12948         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12949         support
12950
12951         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12952         server type
12953
12954         * dbus/dbus-server-debug.c: support a debug server based on pipes
12955
12956         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12957         (_dbus_close): new function
12958
12959         * configure.in: check for socketpair
12960
12961 2003-03-14  Havoc Pennington  <hp@redhat.com>
12962
12963         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12964         cheesy hack
12965
12966         * dbus/dbus-transport-debug.c: rework this a good bit to be
12967         less complicated. hopefully still works.
12968
12969         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12970         manually
12971
12972         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12973         after running it
12974
12975         * dbus/dbus-message.c (dbus_message_copy): rename from
12976         dbus_message_new_from_message, fix it up to copy
12977         all the message fields, add test case
12978
12979         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12980         not quite passing yet
12981
12982 2003-03-14  Havoc Pennington  <hp@pobox.com>
12983
12984         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12985         until no work remains" in test code. (the large diff here
12986         is just code movement, no actual changes)
12987
12988         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12989         1, no point waiting around for test code.
12990         (_dbus_server_debug_accept_transport): unref the timeout
12991         after adding it (right?)
12992
12993         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12994
12995 2003-03-13  Havoc Pennington  <hp@redhat.com>
12996
12997         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12998         out of memory
12999
13000         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
13001         of memory
13002
13003         * dbus/dbus-connection.h: Make AddWatchFunction and
13004         AddTimeoutFunction return a bool so they can fail on out-of-memory
13005
13006         * bus/bus.c (bus_context_new): set up timeout handlers
13007
13008         * bus/connection.c (bus_connections_setup_connection): set up
13009         timeout handlers
13010
13011         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
13012         can fail
13013
13014         * bus/bus.c (bus_context_new): adapt to changes
13015
13016         * bus/connection.c: adapt to changes
13017
13018         * test/watch.c: adapt to DBusWatch changes
13019
13020         * bus/dispatch.c (bus_dispatch_test): started adding this but
13021         didn't finish
13022
13023 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
13024
13025         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
13026
13027 2003-03-13  Havoc Pennington  <hp@pobox.com>
13028
13029         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
13030         set up a test framework as for the library
13031
13032 2003-03-12  Havoc Pennington  <hp@pobox.com>
13033
13034         Throughout: purge global variables, introduce BusActivation,
13035         BusConnections, BusRegistry, etc. objects instead.
13036
13037         * bus/bus.h, bus/bus.c: introduce BusContext as a global
13038         message bus object
13039
13040         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
13041         going to redo this a bit differently I think
13042
13043 2003-03-12  Havoc Pennington  <hp@redhat.com>
13044
13045         Mega-patch that gets the message bus daemon initially handling
13046         out-of-memory. Work still needed. Also lots of random
13047         moving stuff to DBusError instead of ResultCode.
13048
13049         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
13050
13051         * dbus/dbus-connection.c
13052         (dbus_connection_send_with_reply_and_block): use DBusError
13053
13054         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
13055         DBusResultCode
13056
13057         * dbus/dbus-connection.c (dbus_connection_send): drop the result
13058         code here, as the only failure possible is OOM.
13059
13060         * bus/connection.c (bus_connection_disconnect):
13061         rename bus_connection_disconnected as it's a notification only
13062
13063         * bus/driver.c (bus_driver_handle_acquire_service): don't free
13064         "name" on get_args failure, should be done by get_args;
13065         don't disconnect client for bad args, just return an error.
13066         (bus_driver_handle_service_exists): ditto
13067
13068         * bus/services.c (bus_services_list): NULL-terminate returned array
13069
13070         * bus/driver.c (bus_driver_send_service_lost)
13071         (bus_driver_send_service_acquired): send messages from driver to a
13072         specific client to the client's unique name, not to the broadcast
13073         service.
13074
13075         * dbus/dbus-message.c (decode_header_data): reject messages that
13076         contain no name field
13077         (_dbus_message_get_client_serial): rename to
13078         dbus_message_get_serial and make public
13079         (_dbus_message_set_serial): rename from set_client_serial
13080         (_dbus_message_set_reply_serial): make public
13081         (_dbus_message_get_reply_serial): make public
13082
13083         * bus/connection.c (bus_connection_foreach): allow stopping
13084         iteration by returning FALSE from foreach function.
13085
13086         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
13087         (dbus_connection_free_preallocated_send)
13088         (dbus_connection_preallocate_send): new API for sending a message
13089         without possibility of malloc failure.
13090         (dbus_connection_send_message): rename to just
13091         dbus_connection_send (and same for whole function family)
13092
13093         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
13094
13095         * dbus/dbus-sysdeps.c (_dbus_exit): new function
13096
13097         * bus/activation.c: handle/return errors
13098
13099         * dbus/dbus-errors.h: add more DBUS_ERROR #define
13100
13101         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
13102         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
13103         (_dbus_result_from_errno): move to this file
13104
13105 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
13106
13107         * dbus/dbus-marshal.c:
13108         (_dbus_marshal_set_string):
13109         Take a length argument so we can marshal the correct string
13110         length.
13111
13112         (_dbus_marshal_dict), (_dbus_demarshal_dict),
13113         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
13114         (_dbus_marshal_test):
13115         * dbus/dbus-marshal.h:
13116         Add support for marshalling and demarshalling dicts.
13117
13118         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13119         Add support for TYPE DICT.
13120
13121         * dbus/dbus-message.c: (set_string_field):
13122         Adjust header padding.
13123
13124         (dbus_message_append_args_valist), (dbus_message_append_dict),
13125         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
13126         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
13127         (check_message_handling), (check_have_valid_message):
13128         * dbus/dbus-message.h:
13129         Add functions for setting and getting dicts.
13130
13131         * dbus/dbus-protocol.h:
13132         Add DBUS_TYPE_DICT.
13133
13134         * dbus/dbus.h:
13135         Add dbus-dict.h
13136
13137         * doc/dbus-specification.sgml:
13138         Add information about how dicts are marshalled.
13139
13140         * test/data/invalid-messages/dict-with-nil-value.message:
13141         * test/data/invalid-messages/too-short-dict.message:
13142         * test/data/valid-messages/dict-simple.message:
13143         * test/data/valid-messages/dict.message:
13144         Add sample messages containing dicts.
13145
13146 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
13147
13148         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
13149
13150 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13151
13152         * dbus/Makefile.am:
13153         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13154         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
13155         (dbus_dict_set_int32), (dbus_dict_set_uint32),
13156         (dbus_dict_set_double), (dbus_dict_set_string),
13157         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
13158         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
13159         (dbus_dict_set_string_array), (_dbus_dict_test):
13160         * dbus/dbus-dict.h:
13161         Fix according to comments from Havoc.
13162
13163 2003-03-06  Michael Meeks  <michael@server.home>
13164
13165         * configure.in: if we don't have kde-config, disable have_qt.
13166
13167 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13168
13169         * dbus/Makefile.am:
13170         Add dbus-dict.[ch]
13171
13172         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13173         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
13174         (dbus_dict_remove), (dbus_dict_get_value_type),
13175         (dbus_dict_get_keys), (dbus_dict_put_boolean),
13176         (dbus_dict_put_int32), (dbus_dict_put_uint32),
13177         (dbus_dict_put_double), (dbus_dict_put_string),
13178         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
13179         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
13180         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
13181         (dbus_dict_get_int32), (dbus_dict_get_uint32),
13182         (dbus_dict_get_double), (dbus_dict_get_string),
13183         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
13184         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
13185         (dbus_dict_get_string_array), (_dbus_dict_test):
13186         * dbus/dbus-dict.h:
13187         Add DBusDict implementation
13188
13189         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
13190         * dbus/dbus-test.h:
13191         Add _dbus_dict_test
13192
13193 2003-03-04  Havoc Pennington  <hp@pobox.com>
13194
13195         * test/data/auth/*: adapt to changes
13196
13197         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
13198         USERID_BASE64 and change USERNAME_BASE64 to put in username not
13199         userid
13200
13201         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
13202         more stuff from being in a context name, to make the protocol
13203         simpler to deal with
13204
13205         * dbus/dbus-errors.c (dbus_error_has_name): new function
13206         (dbus_error_is_set): new function
13207
13208         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
13209         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
13210
13211         * dbus/dbus-connection.c (dbus_connection_flush): also read
13212         messages during a flush operation
13213
13214         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
13215
13216 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13217
13218         * configure.in: Check for gethostbyname on Solaris.
13219
13220         * dbus/dbus-transport.c: (_dbus_transport_open):
13221         Remove duplicate "tcp" entry.
13222
13223         * doc/dbus-specification.sgml:
13224         Clarify some things.
13225
13226 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13227
13228         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
13229         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
13230         (_dbus_keyring_test):
13231         * dbus/dbus-md5.c: (_dbus_md5_compute):
13232         * dbus/dbus-sha.c: (_dbus_sha_compute):
13233         Plug memory leaks.
13234
13235 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13236
13237         * README: Add some things.
13238
13239 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
13240
13241         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
13242         after case DBUS_TYPE_BOOELAN.
13243
13244 2003-03-02  Havoc Pennington  <hp@pobox.com>
13245
13246         * test/break-loader.c (randomly_set_extreme_ints): add test that
13247         sets really huge and small integers
13248
13249         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
13250         that length of boolean array fits in the string, and that
13251         string has room for boolean value in single-bool case.
13252
13253         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
13254         optional value to "ALIGN" command which is what to fill the
13255         alignment with.
13256
13257         * test/data/valid-messages/no-padding.message: add regression
13258         test for the message padding problem
13259
13260 2003-03-02  Havoc Pennington  <hp@pobox.com>
13261
13262         * dbus/dbus-message.c (decode_header_data): fix to always init
13263         message_padding, from Benjamin Dauvergne
13264
13265 2003-03-02  Havoc Pennington  <hp@pobox.com>
13266
13267         * configure.in: 0.5
13268
13269         * NEWS: Update.
13270
13271 2003-03-01  Joe Shaw  <joe@assbarn.com>
13272
13273         * configure.in: Check for "struct cmsgcred" and try to access its
13274         members for BSD-like unices.
13275
13276         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
13277         _dbus_read_credentials_unix_socket().
13278         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
13279         read() for reading the credential byte off the unix socket.  Use
13280         struct cmsgcred on systems that support it.
13281
13282 2003-02-27  Alexander Larsson  <alexl@redhat.com>
13283
13284         * glib/Makefile.am:
13285         * configure.in:
13286         Make gthreads-2.0 dependency optional. Don't build thread test if
13287         its not found.
13288
13289 2003-02-27  Havoc Pennington  <hp@pobox.com>
13290
13291         * dbus/dbus-connection.c
13292         (dbus_connection_send_message_with_reply_and_block): fix doh!
13293         doh! doh! bug that resulted in never removing a reply from the
13294         queue, no wonder we called get_reply_serial so much ;-)
13295
13296         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
13297         and client serial instead of demarshaling them every time
13298
13299 2003-02-27  Havoc Pennington  <hp@pobox.com>
13300
13301         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
13302         more inlined, using dbus-string-private.h, speeds things up
13303         substantially
13304
13305         * dbus/dbus-string.c (_dbus_string_free): apply align offset
13306         when freeing the string
13307         (_dbus_string_steal_data): fix for align offset
13308         (undo_alignment): new function
13309
13310 2003-02-26  Havoc Pennington  <hp@redhat.com>
13311
13312         All kinds of audit fixes from Owen, plus initial attempt to
13313         handle unaligned memory returned from malloc.
13314
13315         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
13316         leave room for align_offset and nul byte
13317         (fixup_alignment): function to track an align_offset and
13318         ensure real->str is aligned
13319         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
13320         to allow a nul byte plus align offset
13321         (_dbus_string_lock): fix overflow issue
13322         (_dbus_string_init_const_len): add assertions on sanity of len,
13323         assign allocated to be ALLOCATION_PADDING larger than len
13324         (set_length): fixup the overflow handling
13325         (_dbus_string_get_data_len): fix overflow in assertion
13326         (open_gap): detect overflow in size of gap to be opened
13327         (_dbus_string_lengthen): add overflow check
13328         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
13329         (_dbus_string_append): add overflow check
13330         (_dbus_string_append_unichar): overflow
13331         (_dbus_string_delete): fix overflow in assertion
13332         (_dbus_string_copy_len): overflow in assertion
13333         (_dbus_string_replace_len): overflows in assertions
13334         (_dbus_string_find): change to implement in terms of
13335         _dbus_string_find_to
13336         (_dbus_string_find_to): assorted fixage
13337         (_dbus_string_equal_c_str): assert c_str != NULL,
13338         fix logic so the function works
13339         (_dbus_string_ends_with_c_str): fix overflow thingy
13340         (_dbus_string_base64_encode): overflow fix
13341         (_dbus_string_validate_ascii): overflow
13342         (_dbus_string_validate_nul): overflow
13343
13344 2003-02-26  Havoc Pennington  <hp@redhat.com>
13345
13346         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
13347
13348 2003-02-26  Alexander Larsson  <alexl@redhat.com>
13349
13350         * configure.in:
13351         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
13352
13353         * dbus/dbus-connection.c:
13354         * dbus/dbus-connection.h:
13355         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13356         Add dbus_connection_set_wakeup_main_function and use it when queueing
13357         incoming and outgoing messages.
13358
13359
13360         * dbus/dbus-dataslot.c:
13361         Threadsafe usage of DBusDataSlotAllocator
13362
13363         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13364         dbus_new can fail.
13365
13366         * dbus/dbus-server-unix.c:
13367         Add todo comment
13368
13369         * glib/dbus-gmain.c:
13370         Implement the new wakeup functions for glib.
13371
13372         * glib/Makefile.am:
13373         * glib/test-thread-client.c:
13374         * glib/test-thread-server.c:
13375         * glib/test-thread.h:
13376         Initial cut at some thread test code. Not really done yet.
13377
13378 2003-02-26  Havoc Pennington  <hp@pobox.com>
13379
13380         * dbus/dbus-connection.c
13381         (dbus_connection_send_message_with_reply_and_block): fix crash
13382         where we ref'd the outgoing message instead of the returned reply
13383
13384         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13385         at the end of this function, so if we didn't need to read for
13386         authentication, we reinstall it for receiving messages
13387
13388         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13389         a NULL sender for peer-to-peer case
13390
13391         * dbus/dbus-transport-unix.c (check_read_watch): handle
13392         !authenticated case correctly
13393
13394         * glib/dbus-gmain.c: add support for DBusServer
13395
13396         * dbus/dbus-server.c: add data slot support
13397
13398         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13399         return values and handle errors
13400
13401         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13402         DBusConnection
13403
13404         * Doxyfile.in (INPUT): add glib subdir
13405
13406         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13407         setup_with_g_main instead of hookup_with_g_main; write docs
13408
13409 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13410
13411         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13412         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13413         * dbus/dbus-message.c: (dbus_message_append_boolean),
13414         (dbus_message_append_boolean_array),
13415         (dbus_message_get_args_valist), (_dbus_message_test):
13416         * dbus/dbus-message.h:
13417         * doc/dbus-specification.sgml:
13418         Various fixes as pointed out by Havoc.
13419
13420         * test/data/invalid-messages/bad-boolean-array.message:
13421         * test/data/invalid-messages/bad-boolean.message:
13422         Add invalid boolean value test cases.
13423
13424 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13425
13426         * dbus/dbus-internals.c: (_dbus_type_to_string):
13427         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13428         (_dbus_marshal_validate_arg):
13429         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13430         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13431         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13432         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13433         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13434         (dbus_message_iter_get_double),
13435         (dbus_message_iter_get_boolean_array), (message_iter_test):
13436         * dbus/dbus-message.h:
13437         * dbus/dbus-protocol.h:
13438         * doc/dbus-specification.sgml:
13439         * test/data/valid-messages/lots-of-arguments.message:
13440         Add support for boolean and boolean array types.
13441
13442 2003-02-23  Havoc Pennington  <hp@pobox.com>
13443
13444         * dbus/dbus-keyring.c: finish most of this implementation and
13445         simple unit test
13446
13447         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13448         these barf if the error isn't cleared to NULL
13449
13450         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13451         (_dbus_create_directory): new function
13452
13453         * dbus/dbus-errors.c (dbus_set_error): fix warning
13454
13455         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13456         (_dbus_string_hex_decode): new function
13457         (test_hex_roundtrip): test code
13458
13459         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13460
13461         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13462
13463         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13464         the save-to-temp/rename trick to atomically write the new file
13465         (_dbus_string_parse_uint): new function
13466
13467 2003-02-22  Havoc Pennington  <hp@pobox.com>
13468
13469         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13470
13471 2003-02-22  Havoc Pennington  <hp@pobox.com>
13472
13473         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13474         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13475
13476         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13477
13478         * dbus/test/data/sha-1: add US government test suite for SHA-1
13479
13480 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13481
13482         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13483         Make string arrays NULL-terminated.
13484
13485         * dbus/dbus-memory.c: (dbus_free_string_array):
13486         * dbus/dbus-memory.h:
13487         New function for freeing NULL-terminated string arrays.
13488
13489         * dbus/dbus-message-builder.c: (append_quoted_string),
13490         (_dbus_message_data_load):
13491         Add support for array types.
13492
13493         * dbus/dbus-message.c: (check_message_handling):
13494         Add more types as test cases.
13495
13496         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13497         (_dbus_string_parse_double):
13498         Add the start offset to the end offset.
13499
13500         * test/data/valid-messages/lots-of-arguments.message:
13501         New test message with lots of arguments.
13502
13503 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13504
13505         * dbus/dbus-message.c: (dbus_message_append_nil),
13506         (dbus_message_append_int32), (dbus_message_append_uint32),
13507         (dbus_message_append_double), (dbus_message_append_string),
13508         (dbus_message_append_int32_array),
13509         (dbus_message_append_uint32_array),
13510         (dbus_message_append_double_array),
13511         (dbus_message_append_byte_array),
13512         (dbus_message_append_string_array):
13513         Fix all out-of-memory handling in these functions.
13514
13515 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13516
13517         * dbus/dbus-message.c: (dbus_message_append_nil):
13518         Fix a silly.
13519
13520 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13521
13522         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13523         (dbus_message_append_nil), (dbus_message_append_int32_array),
13524         (dbus_message_append_uint32_array),
13525         (dbus_message_append_double_array),
13526         (dbus_message_append_byte_array),
13527         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13528         (dbus_message_iter_get_int32_array),
13529         (dbus_message_iter_get_uint32_array),
13530         (dbus_message_iter_get_double_array),
13531         (dbus_message_iter_get_byte_array),
13532         (dbus_message_iter_get_string_array):
13533
13534         * dbus/dbus-message.h:
13535         Add functions for appending and getting arrays.
13536
13537 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13538
13539         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13540         element size at least 8 bytes, fixes mempool tests on
13541         64-bit machines.
13542
13543 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13544
13545         * dbus/dbus-transport-unix.c (unix_do_iteration):
13546         Unlock the connection mutex during a blocking select call.
13547         Add todo about how we need a way to wake up the select.
13548
13549         * dbus/dbus-connection-internal.h:
13550         * dbus/dbus-connection.c:
13551         Add _dbus_connection_lock and _dbus_connection_unlock.
13552
13553 2003-02-19  Havoc Pennington  <hp@pobox.com>
13554
13555         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13556         Doxyfile.in, not Doxyfile
13557
13558         * dbus/dbus-keyring.c: do some hacking on this
13559
13560         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13561
13562         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13563         dbus_error_init
13564         (dbus_set_error): remove dbus_error_init, check for message ==
13565         NULL *before* we sprintf into it, and add @todo about including
13566         system headers in this file
13567
13568         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13569
13570         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13571
13572         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13573         get various bits of user information based on either username
13574         or user ID
13575         (_dbus_homedir_from_username): new function
13576
13577 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13578
13579         * configure.in:
13580         Add check for nonposix getpwnam_r
13581
13582         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13583         Align the pool element size to a sizeof (void *) boundary.
13584
13585         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13586         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13587         General Solaris fixes.
13588
13589         * test/data/valid-messages/simplest-manual.message:
13590         Explicitly state that we want little-endian packing.
13591
13592 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13593
13594         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13595
13596         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13597         Added to create a transport connecting using a tcp/ip socket.
13598
13599         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13600         to a tcp socket at given host and port.
13601         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13602         hostname and port.
13603
13604         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13605
13606         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13607         Added to create a server listening on a TCP/IP socket.
13608
13609 2003-02-19  Havoc Pennington  <hp@pobox.com>
13610
13611         Throughout: mop up all the Doxygen warnings and undocumented
13612         stuff.
13613
13614         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13615         to search any paths.
13616
13617         * dbus/dbus-threads.c: move global mutex initializers to
13618         dbus-internals.h, multiple prototypes was confusing doxygen
13619         besides being kind of ugly
13620
13621         * Doxyfile (PREDEFINED): have Doxygen define
13622         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13623         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13624         (do not abuse the feature! it's for stuff like the autogenerated
13625         macros in dbus-md5.c, not just for things you don't feel like
13626         documenting...)
13627
13628 2003-02-18  Havoc Pennington  <hp@pobox.com>
13629
13630         * dbus/dbus-string.c (_dbus_string_zero): new function
13631
13632         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13633         wrap it in some dbus-friendly API
13634
13635         * dbus/dbus-types.h: add 16-bit types
13636
13637 2003-02-18  Joe Shaw  <joe@assbarn.com>
13638
13639         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13640         credentials from our currently running process.
13641         (get_word): Fix a buglet where we were copying the entire length
13642         instead of relative to our position.
13643
13644         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13645         keys on the stack... it's 640k of data.
13646
13647         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13648         read the credentials byte off the socket, even if we don't have
13649         SO_PEERCRED.
13650         (_dbus_poll): Implement poll() using select() for systems which
13651         don't have it.
13652
13653         * glib/test-dbus-glib.c (main): Print out an error if no
13654         parameters are given.
13655
13656         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13657         can fallback to a secondary auth mechanism if the first fails.
13658
13659 2003-02-18  Havoc Pennington  <hp@pobox.com>
13660
13661         * AUTHORS: add Alex
13662
13663 2003-02-17  Havoc Pennington  <hp@pobox.com>
13664
13665         * doc/dbus-specification.sgml: lots of cosmetic
13666         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13667         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13668         s/server/bus/ (except in authentication section). Add a section
13669         "Message Bus Message Routing"
13670
13671 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13672
13673         Release 0.4
13674
13675         * NEWS: Update
13676
13677 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13678
13679         * doc/dbus-specification.sgml:
13680         Specification updates.
13681
13682 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13683
13684         * bus/activation.c: (bus_activation_init), (child_setup),
13685         (bus_activation_activate_service):
13686         * bus/activation.h:
13687         * bus/main.c: (main):
13688         Set DBUS_ADDRESS environment variable.
13689
13690         * dbus/dbus-errors.c: (dbus_set_error):
13691         Don't use va_copy since that's a C99 feature.
13692
13693         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13694         (_dbus_spawn_async):
13695         * dbus/dbus-sysdeps.h:
13696         Add child_setup_func to _dbus_spawn_async.
13697
13698         * doc/dbus-specification.sgml:
13699         Update specification.
13700
13701         * test/spawn-test.c: (setup_func), (main):
13702         Fix test.
13703
13704 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13705
13706         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13707         Added todo.
13708
13709 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13710
13711         * doc/.cvsignore:
13712         * doc/Makefile.am:
13713         * doc/dbus-test-plan.sgml:
13714         Add test plan document.
13715
13716         * test/Makefile.am:
13717         Fix distcheck.
13718
13719 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13720
13721         * dbus/dbus-message.c: (decode_header_data),
13722         (_dbus_message_loader_return_buffer):
13723         Set the header padding amount when loading a message.
13724
13725 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13726
13727         * bus/dispatch.c: (send_one_message):
13728         Only send broadcast messages to registered connections.
13729
13730         * dbus/dbus-message.c: (dbus_message_name_is):
13731         * dbus/dbus-message.h:
13732         New convenience function.
13733
13734         * dbus/dbus-transport-debug.c: (do_reading):
13735         Only dispatch one message per run.
13736
13737         * test/Makefile.am:
13738         * test/bus-test.c: (new_connection_callback), (die),
13739         (test_hello_client1_handler), (test_hello_client2_handler),
13740         (test_hello_replies), (main):
13741
13742         * test/bus-test-loop.[ch]:
13743         Add these.
13744
13745 2003-02-16  Havoc Pennington  <hp@pobox.com>
13746
13747         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13748         backward conditional
13749
13750 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13751
13752         * dbus/dbus-connection.c:
13753         Implement sent_message_with_reply. (with_reply_and block is still
13754         busted).
13755         Made dispatch_message not lose message if OOM.
13756
13757         * dbus/dbus-errors.h:
13758         Add NoReply error (for reply timeouts).
13759
13760 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13761
13762         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13763         Actually free keys and values when destroying hashtable.
13764
13765 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13766
13767         * dbus/dbus-auth.c: (client_try_next_mechanism):
13768         Plug a leak.
13769
13770         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13771         Return TRUE if there's no thread implementation around.
13772
13773         * glib/dbus-gmain.c: (free_source),
13774         (dbus_connection_hookup_with_g_main):
13775         Make sure to remove the GSource when the connection is finalized.
13776
13777 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13778
13779         * bus/dispatch.c: (bus_dispatch_message_handler):
13780         * dbus/dbus-errors.h:
13781         Return an error if someone tries to send a message to a service
13782         that doesn't exist.
13783
13784 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13785
13786         * bus/activation.c: (load_directory), (bus_activation_init),
13787         (bus_activation_activate_service):
13788         * bus/activation.h:
13789         * bus/driver.c:
13790         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13791         More work on the activation handling.
13792
13793         * dbus/dbus-errors.h:
13794         Add some error messages
13795
13796         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13797         * dbus/dbus-message.h:
13798         New function that creates an error message.
13799
13800         * dbus/dbus-protocol.h:
13801         Add ACTIVATE_SERVER message.
13802
13803         * dbus/dbus-server-unix.c: (unix_handle_watch),
13804         (_dbus_server_new_for_domain_socket):
13805         Call _dbus_fd_set_close_on_exec.
13806
13807         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13808         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13809         (_dbus_fd_set_close_on_exec):
13810         * dbus/dbus-sysdeps.h:
13811         Add _dbus_fd_set_close_on exec function. Also add function that checks
13812         that all open fds are set to close-on-exec and warns otherwise.
13813
13814         * dbus/dbus-transport-unix.c:
13815         (_dbus_transport_new_for_domain_socket):
13816         Call _dbus_fd_set_close_on_exec.
13817
13818 2003-02-16  Havoc Pennington  <hp@pobox.com>
13819
13820         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13821         allow people to avoid setting SIGPIPE to SIG_IGN
13822         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13823         we've been asked not to
13824
13825 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13826
13827         * dbus/dbus-list.c: (_dbus_list_append_link),
13828         (_dbus_list_prepend_link):
13829         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13830         (dbus_realloc):
13831         Warning fixes.
13832
13833 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13834
13835         * bus/Makefile.am:
13836         * bus/activation.c: (bus_activation_entry_free),
13837         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13838         * bus/activation.h:
13839         * bus/main.c: (main):
13840         Add simple activation support, doesn't work yet though.
13841
13842 2003-02-15   Zack Rusin  <zack@kde.org>
13843
13844         * qt/dbus-qthread.cpp:  small casting fix
13845
13846 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13847
13848         * dbus/dbus-errors.c: (dbus_set_error):
13849         * dbus/dbus-errors.h:
13850         Add a few errors and make dbus_set_error void.
13851
13852         * dbus/dbus-sysdeps.c:
13853         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13854         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13855         * dbus/dbus-sysdeps.h:
13856         Add _dbus_spawn_async.
13857
13858         * test/spawn-test.c: (main):
13859         Test for _dbus_spawn_async.
13860
13861 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13862
13863         * dbus/dbus-internals.h:
13864         Fix build without tests.
13865
13866         * dbus/dbus-list.c: (alloc_link):
13867         Fix a segfault when a malloc fails.
13868
13869         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13870         (dbus_malloc0), (dbus_realloc):
13871         Add support for malloc debugging.
13872
13873 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13874
13875         * dbus/dbus-threads.c:
13876         * dbus/dbus-threads.h:
13877         Add condvars. Remove static mutext from API.
13878         Implement static mutexes by initializing them from threads_init.
13879
13880         * glib/dbus-gthread.c:
13881         * qt/dbus-qthread.cpp:
13882         Update with the thread api changes.
13883
13884
13885         * dbus/dbus-list.c:
13886         * dbus/dbus-list.h:
13887         Turn StaticMutex into normal mutex + init function.
13888         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13889         _dbus_list_append_link, _dbus_list_prepend_link
13890
13891
13892         * dbus/dbus-sysdeps.c:
13893         * dbus/dbus-sysdeps.h:
13894         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13895         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13896
13897         * dbus/dbus-protocol.h:
13898         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13899
13900         * dbus/dbus-message.c:
13901         Make ref/unref atomic.
13902         Fix some docs.
13903
13904         * dbus/dbus-connection-internal.h:
13905         * dbus/dbus-connection.c:
13906         * dbus/dbus-connection.h:
13907         Make threadsafe.
13908         Change _peek to _borrow,_return & _steal_borrowed.
13909         Change disconnect callback to event.
13910         Make dbus_connection_dispatch_messages reentrant.
13911
13912         * dbus/dbus-transport.c:
13913         Don't ref the connection on calls to the transport
13914         implementation.
13915
13916         * dbus/dbus-message-handler.c:
13917         Make threadsafe.
13918
13919         * glib/dbus-gmain.c:
13920         Don't use peek_message anymore
13921
13922         * test/Makefile.am:
13923         * test/debug-thread.c:
13924         * test/debug-thread.h:
13925         Simple thread implementation that asserts() on deadlocks in
13926         single-threaded code.
13927
13928         * test/bus-test.c:
13929         (main) Call debug_threads_init.
13930
13931         * test/watch.c:
13932         Use disconnect message instead of disconnect callback.
13933
13934         * bus/connection.c:
13935         * bus/connection.h:
13936         Don't call dbus_connection_set_disconnect_function. Instead export
13937         bus_connection_disconnect.
13938
13939         * bus/dispatch.c:
13940         Call bus_connection_disconnect when we get a disconnected message.
13941
13942 2003-02-15  Havoc Pennington  <hp@pobox.com>
13943
13944         * dbus/dbus-message.c (dbus_message_new): fool around with the
13945         docs
13946
13947 2003-02-14  Havoc Pennington  <hp@pobox.com>
13948
13949         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13950
13951         * dbus/dbus-memory.c: fail if the debug functions indicate we
13952         should
13953
13954         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13955         (_dbus_decrement_fail_alloc_counter): debug functions to
13956         simulate memory allocation failures
13957
13958 2003-02-14  Havoc Pennington  <hp@pobox.com>
13959
13960         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13961         to DBusError
13962
13963 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13964
13965         * bus/driver.c: (bus_driver_handle_hello):
13966         * bus/driver.h:
13967         * bus/services.c: (bus_service_lookup):
13968         Reorder message sending so we get a more sane order.
13969
13970         * test/bus-test.c: (message_handler):
13971         Fix tyop.
13972
13973 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13974
13975         * bus/driver.c: (bus_driver_send_service_deleted),
13976         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13977         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13978         (bus_driver_send_welcome_message),
13979         (bus_driver_handle_list_services),
13980         (bus_driver_handle_acquire_service),
13981         (bus_driver_handle_service_exists):
13982         * dbus/dbus-bus.c: (dbus_bus_register_client),
13983         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13984         * dbus/dbus-errors.c: (dbus_result_to_string):
13985         * dbus/dbus-errors.h:
13986         * dbus/dbus-message.c: (dbus_message_append_args),
13987         (dbus_message_append_args_valist), (dbus_message_get_args),
13988         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13989         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13990         (dbus_message_iter_get_byte_array),
13991         (dbus_message_iter_get_string_array), (message_iter_test),
13992         (check_message_handling), (_dbus_message_test):
13993         * dbus/dbus-message.h:
13994         * test/bus-test.c: (main):
13995         Change fields to arguments in messages, so that they won't be
13996         confused with header fields.
13997
13998         * glib/test-dbus-glib.c: (main):
13999         Remove append_fields from hello message.
14000
14001 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14002
14003         * dbus/dbus-errors.c:
14004         * dbus/dbus-message.c:
14005         * dbus/dbus-string.c:
14006         Documentation fixes.
14007
14008 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14009
14010         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
14011         (remove_timeout):
14012         Implement support for timeouts in dbus-glib.
14013
14014 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14015
14016         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
14017         * dbus/dbus-message.c: (process_test_subdir):
14018         * test/break-loader.c: (find_breaks_based_on):
14019         Plug some memory leaks.
14020
14021 2003-02-13  Richard Hult  <rhult@codefactory.se>
14022
14023         * bus/main.c: Fix build.
14024
14025         * dbus/dbus-errors.h:
14026         * dbus/dbus-errors.c: Fix copyright for Anders.
14027
14028 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14029
14030         * bus/Makefile.am:
14031         Add utils.[ch]
14032
14033         * bus/connection.c: (bus_connection_foreach):
14034         Fix a warning.
14035
14036         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
14037         (unescape_string), (new_section), (parse_section_start),
14038         (parse_key_value), (report_error), (bus_desktop_file_load),
14039         (bus_desktop_file_get_string):
14040         * bus/desktop-file.h:
14041         Use DBusError for error reporting.
14042
14043         * bus/dispatch.c: (send_one_message),
14044         (bus_dispatch_message_handler):
14045         * bus/driver.c: (bus_driver_send_service_deleted),
14046         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14047         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
14048         (bus_driver_send_welcome_message),
14049         (bus_driver_handle_list_services),
14050         (bus_driver_handle_acquire_service),
14051         (bus_driver_handle_service_exists):
14052         * bus/loop.c: (bus_loop_run):
14053         * bus/main.c:
14054         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
14055
14056         * bus/utils.c: (bus_wait_for_memory):
14057         * bus/utils.h:
14058         New files with general utility functions.
14059
14060         * dbus/dbus-internals.h:
14061         Remove _DBUS_HANDLE_OOM.
14062
14063 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14064
14065         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
14066         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
14067         * dbus/dbus-errors.h:
14068         Add DBusError structure.
14069
14070 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14071
14072         * test/data/valid-messages/standard-acquire-service.message:
14073         * test/data/valid-messages/standard-hello.message:
14074         * test/data/valid-messages/standard-list-services.message:
14075         * test/data/valid-messages/standard-service-exists.message:
14076         Add some standard messages.
14077
14078 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14079
14080         * bus/driver.c: (bus_driver_send_welcome_message),
14081         (bus_driver_handle_list_services),
14082         (bus_driver_handle_acquire_service),
14083         (bus_driver_handle_service_exists), (bus_driver_handle_message):
14084         Update for API changes in libdbus.
14085
14086         * dbus/dbus-message.c: (dbus_message_new_reply):
14087         * dbus/dbus-message.h:
14088         Remove the name argument. The spec states that replies shouldn't
14089         have a name.
14090
14091 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14092
14093         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
14094         (report_error), (bus_desktop_file_load), (lookup_section),
14095         (lookup_line), (bus_desktop_file_get_raw),
14096         (bus_desktop_file_get_string):
14097         * bus/desktop-file.h:
14098         Some fixes, and new functions for getting a key value from a section.
14099
14100 2003-02-13  Havoc Pennington  <hp@pobox.com>
14101
14102         * test/data/auth/fail-after-n-attempts.auth-script: new test
14103
14104         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
14105         reject the client.
14106
14107 2003-02-13  Havoc Pennington  <hp@pobox.com>
14108
14109         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
14110         dbus_credentials_match were backward
14111
14112         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
14113         NO_CREDENTIALS and ROOT_CREDENTIALS
14114
14115         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
14116         into here. Never process more commands after we've reached an
14117         end state; store further data as unused bytes.
14118
14119         * test/data/auth/*: add more auth tests
14120
14121         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
14122         command to match exact string and EXPECT_UNUSED to match unused
14123         bytes
14124
14125         * test/Makefile.am (dist-hook): fix to dist all the test stuff
14126
14127 2003-02-12  Havoc Pennington  <hp@pobox.com>
14128
14129         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
14130         \r off of popped lines
14131
14132         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
14133         scripts
14134
14135         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
14136         SEND, append \r\n
14137
14138 2003-02-12  Havoc Pennington  <hp@pobox.com>
14139
14140         * dbus/Makefile.am: remove break-loader from the build, since it
14141         moved.
14142
14143         * configure.in: add --enable-gcov to turn on coverage profiling
14144         flags and disable optimization
14145
14146 2003-02-10  Havoc Pennington  <hp@pobox.com>
14147
14148         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
14149         initial cut at test framework for DBusAuth from laptop.
14150         Doesn't quite work yet but it compiles and I need to get
14151         it off the 266mhz laptop. ;-)
14152
14153         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
14154         fix a memleak in error case
14155
14156 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
14157
14158         * bus/Makefile.am:
14159         * bus/desktop-file.c:
14160         * bus/desktop-file.h:
14161         Add a desktop file parser.
14162
14163 2003-02-11  Zack Rusin  <zack@kde.org>
14164
14165         * qt/message.[h|cpp]: sample implementation
14166         of the KDE wrapper for DBusMessage
14167
14168 2003-02-09  Zack Rusin  <zack@kde.org>
14169
14170         * test/bus-test.c: make_it_compile
14171         * doc/dbus-specification.sgml: minimal semantic fix
14172
14173 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14174
14175         Release 0.3
14176
14177         * NEWS: Update
14178
14179 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14180
14181         * dbus/Makefile.am:
14182         * dbus/dbus-break-loader.c:
14183         * test/Makefile.am:
14184         * test/break-loader.c:
14185         Move dbus-break-loader to test/ and rename it to break-loader.
14186
14187 2003-02-02  Havoc Pennington  <hp@pobox.com>
14188
14189         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
14190         for code to manage cookies in your home directory
14191
14192         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
14193
14194         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
14195         to authenticate, then disconnect the client.
14196
14197 2003-02-03  Alexander Larsson  <alexl@redhat.com>
14198
14199         * dbus/dbus-message.c (dbus_message_append_fields):
14200         Correct docs.
14201
14202 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14203
14204         * doc/dbus-specification.sgml:
14205         Update address format section.
14206
14207 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14208
14209         * test/Makefile.am:
14210         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
14211         (message_handler), (new_connection_callback), (loop_quit),
14212         (loop_run), (main):
14213         Add bus test.
14214
14215 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14216
14217         * bus/driver.c: (bus_driver_handle_service_exists):
14218         Simplify the code a bit.
14219
14220         * dbus/dbus-bus.c: (dbus_bus_service_exists):
14221         Fix a silly.
14222
14223 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14224
14225         * bus/Makefile.am:
14226         Add libdbus-daemon.la and link to it.
14227
14228 2003-02-01  James Willcox  <jwillcox@gnome.org>
14229
14230         * bus/driver.c: (bus_driver_handle_own_service):
14231         Actually include the service reply code in the message.
14232
14233 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14234
14235         * bus/driver.c: (bus_driver_handle_service_exists):
14236         Don't unref the incoming message.
14237
14238 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14239
14240         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
14241
14242 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14243
14244         * dbus/dbus-server.c: (dbus_server_listen):
14245         * dbus/dbus-transport.c: (_dbus_transport_open):
14246         ifdef out the calls to the debug transport and server.
14247
14248 2003-02-02  Alexander Larsson  <alexl@redhat.com>
14249
14250         * dbus/dbus-watch.c (dbus_watch_get_flags):
14251         Add note in the docs that ERROR or HANGUP won't be returned
14252         and are assumed always on.
14253
14254         * glib/dbus-gmain.c (add_watch):
14255         Always add IO_ERR | IO_HUP
14256
14257         * dbus/dbus-message.h:
14258         Add semicolon after dbus_message_iter_get_string_array().
14259         Makes qt code build again
14260
14261 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
14262
14263         * bus/driver.c: (create_unique_client_name),
14264         (bus_driver_handle_hello):
14265         Don't take a name, just use a numeric id to identify
14266         each client.
14267
14268         * dbus/Makefile.am:
14269         * dbus/dbus-bus.c: (dbus_bus_register_client),
14270         (dbus_bus_acquire_service), (dbus_bus_service_exists):
14271         * dbus/dbus-bus.h:
14272         Add new convenience functions for communicating with the bus.
14273
14274         * dbus/dbus-message.h:
14275
14276         * dbus/dbus-protocol.h:
14277         Fix a typo.
14278
14279 2003-02-01  Alexander Larsson  <alexl@redhat.com>
14280
14281         * dbus/dbus-message.c (dbus_message_append_fields):
14282         Add some more doc comments.
14283
14284 2003-02-01  Havoc Pennington  <hp@pobox.com>
14285
14286         * dbus/dbus-break-loader.c (randomly_modify_length): change
14287         a 4-byte value in the message as if it were a length
14288
14289         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
14290         execute bit on saved files
14291
14292 2003-02-01  Havoc Pennington  <hp@pobox.com>
14293
14294         * dbus/dbus-break-loader.c (main): new program to find messages
14295         that break the loader.
14296
14297         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
14298         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
14299
14300         * dbus/dbus-string.c (_dbus_string_set_byte): new
14301
14302 2003-01-31  Havoc Pennington  <hp@pobox.com>
14303
14304         * dbus/dbus-message.c: refactor the test code to be more general,
14305         in preparation for writing a "randomly permute test cases to
14306         try to break the loader" program.
14307
14308 2003-01-31  Havoc Pennington  <hp@pobox.com>
14309
14310         * doc/dbus-specification.sgml: work on the specification
14311
14312         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
14313         the protocol version of the message.
14314
14315         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
14316         no longer specifies that.
14317         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
14318         1/2/3/4)
14319
14320         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
14321         "break" for DBUS_TYPE_NIL, remove @todo
14322
14323 2003-01-31  Havoc Pennington  <hp@pobox.com>
14324
14325         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
14326         just set_is_error/get_is_error as this is a commonly-used
14327         function, and write docs.
14328
14329 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
14330
14331         * dbus/dbus-address.c: (dbus_address_entry_free):
14332         Free key and value lists.
14333
14334         * dbus/dbus-internals.c: (_dbus_type_to_string):
14335         Add the types we didn't have.
14336
14337         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
14338         (_dbus_marshal_validate_arg):
14339         Add NIL types.
14340
14341         * dbus/dbus-message.c: (dbus_message_set_sender):
14342         Remove todo about being able to set sender to NULL.
14343
14344         (dbus_message_set_is_error_reply),
14345         (dbus_message_get_is_error_reply):
14346         * dbus/dbus-message.h:
14347         New functions.
14348
14349         * dbus/dbus-protocol.h:
14350         Add error reply flag.
14351
14352         * test/data/valid-messages/opposite-endian.message:
14353         Add NIL type to test.
14354
14355 2003-01-31  Havoc Pennington  <hp@pobox.com>
14356
14357         * doc/dbus-specification.sgml: fully specify the header.  Add
14358         flags and major protocol version, and change header/body len to
14359         unsigned.
14360
14361         * dbus/dbus-message-builder.c (append_saved_length): append length
14362         as uint32
14363
14364         * dbus/dbus-message.c (dbus_message_create_header): change header
14365         length and body length to unsigned. Add the new fields from the
14366         spec
14367         (_dbus_message_loader_return_buffer): unsigned header/body len
14368
14369 2003-01-30  Havoc Pennington  <hp@pobox.com>
14370
14371         * dbus/dbus-auth.c: rework to use only REJECTED, no
14372         MECHANISMS
14373
14374         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14375         use REJECTED, suggested by Mark McLoughlin
14376
14377 2003-01-30  Havoc Pennington  <hp@pobox.com>
14378
14379         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14380         a better way to report errors here. e.g.  "unix address lacks
14381         path" or something. also "no such file" when the path doesn't
14382         exist, etc.
14383
14384         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14385         leaking list nodes
14386         (dbus_parse_address): add @todo about documenting address format,
14387         and allowing , and ; to be escaped
14388
14389 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14390
14391         * dbus/Makefile.am:
14392         Add dbus-address.[ch]
14393
14394         * dbus/dbus-address.c: (dbus_address_entry_free),
14395         (dbus_address_entries_free), (create_entry),
14396         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14397         (dbus_parse_address), (_dbus_address_test):
14398         * dbus/dbus-address.h:
14399         New files for dealing with address parsing.
14400
14401         * dbus/dbus-connection.c:
14402         Document timeout functions.
14403
14404         * dbus/dbus-message.c:
14405         Document dbus_message_new_from_message.
14406
14407         * dbus/dbus-server-debug.c:
14408         Document.
14409
14410         * dbus/dbus-server.c: (dbus_server_listen):
14411         Parse address and use correct server implementation.
14412
14413         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14414         * dbus/dbus-string.h:
14415         New function with test.
14416
14417         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14418         * dbus/dbus-test.h:
14419         Add address tests.
14420
14421         * dbus/dbus-transport-debug.c:
14422         Document.
14423
14424         * dbus/dbus-transport.c: (_dbus_transport_open):
14425         Parse address and use correct transport implementation.
14426
14427 2003-01-30  Havoc Pennington  <hp@pobox.com>
14428
14429         * dbus/dbus-message.c: use message->byte_order instead of
14430         DBUS_COMPILER_BYTE_ORDER throughout.
14431         (dbus_message_create_header): pad header to align the
14432         start of the body of the message to 8-byte boundary
14433
14434         * dbus/dbus-marshal.h: make all the demarshalers take const
14435         DBusString arguments.
14436
14437         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14438         validate message args here, so we don't have to do slow validation
14439         later, and so we catch bad messages as they are incoming. Also add
14440         better checks on header_len and body_len. Also fill in
14441         message->byte_order
14442
14443         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14444         implemented properly)
14445         (_dbus_string_validate_nul): new function to check all-nul
14446
14447         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14448         get_arg_end_pos and remove all validation
14449         (_dbus_marshal_validate_arg): actually do validation here.
14450
14451 2003-01-29  Havoc Pennington  <hp@pobox.com>
14452
14453         * dbus/dbus-message.c (check_message_handling): fix assertion
14454         failure on set_client_serial
14455
14456 2003-01-28  Havoc Pennington  <hp@pobox.com>
14457
14458         * dbus/dbus-server-debug.c: Add doc section comments
14459
14460         * dbus/dbus-transport-debug.c: add doc section comments
14461
14462 2003-01-28  Havoc Pennington  <hp@redhat.com>
14463
14464         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14465         the reverse order from how I had it
14466         (_dbus_string_base64_encode): reverse encoding order. I was
14467         basically byteswapping everything during encoding.
14468
14469 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14470
14471         * dbus/dbus-connection-internal.h:
14472         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14473         (_dbus_connection_remove_timeout):
14474         Add functions for adding and removing timeouts.
14475
14476         * dbus/dbus-message.c: (dbus_message_new_from_message):
14477         Add new function that takes a message and creates an exact
14478         copy of it, but with the refcount set to 1.
14479         (check_message_handling):
14480         Fix build error.
14481
14482         * dbus/dbus-server-protected.h:
14483         * dbus/dbus-server.c: (_dbus_server_init_base),
14484         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14485         (dbus_server_set_timeout_functions):
14486         (_dbus_server_remove_timeout):
14487         New functions so that a server can add and remove timeouts.
14488
14489         (dbus_server_listen):
14490         Add commented out call to dbus_server_debug_new.
14491
14492         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14493         Actually set the handler, doh.
14494
14495         * dbus/dbus-transport.c: (_dbus_transport_open):
14496         Add commented out call to dbus_transport_debug_client_new.
14497
14498         * dbus/Makefile.am:
14499         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14500
14501 2003-01-28  Havoc Pennington  <hp@pobox.com>
14502
14503         * dbus/dbus-message.c (check_message_handling): function to check
14504         on the loaded message, iterates over it etc.
14505
14506 2003-01-28  Havoc Pennington  <hp@pobox.com>
14507
14508         * test/Makefile.am (dist-hook): fix make distdir
14509
14510         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14511
14512 2003-01-27  Havoc Pennington  <hp@pobox.com>
14513
14514         * dbus/dbus-mempool.c (time_for_size): replace printf with
14515         _dbus_verbose
14516
14517         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14518         empty lines; fix the SAVE_LENGTH stuff to be
14519         START_LENGTH/END_LENGTH so it actually works; couple other
14520         bugfixes
14521
14522         * test/Makefile.am (dist-hook): add dist-hook for .message files
14523
14524         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14525         can be constant or locked.
14526         (_dbus_string_free): allow freeing a const string as
14527         documented/intended
14528
14529         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14530
14531         * dbus/dbus-test-main.c (main): take an argument which is the
14532         directory containing test data
14533
14534         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14535         argument to this and load all the messages in test/data/
14536         checking that they can be loaded or not loaded as appropriate.
14537
14538 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14539
14540         * bus/dispatch.c: (bus_dispatch_message_handler):
14541         Dispatch messages sent to services.
14542
14543         * bus/driver.c: (bus_driver_send_service_deleted),
14544         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14545         (bus_driver_send_service_acquired):
14546         Add helper functions for sending service related messages.
14547
14548         (bus_driver_send_welcome_message):
14549         Send HELLO_REPLY instead of WELCOME.
14550
14551         (bus_driver_handle_list_services):
14552         Send LIST_SERVICES_REPLY instead of SERVICES.
14553
14554         (bus_driver_handle_own_service),
14555         (bus_driver_handle_service_exists):
14556         New message handlers.
14557
14558         (bus_driver_handle_message):
14559         Invoke new message handlers.
14560
14561         (bus_driver_remove_connection):
14562         Don't remove any services here since that's done automatically
14563         by bus_service_remove_owner now.
14564
14565         * bus/driver.h:
14566         New function signatures.
14567
14568         * bus/services.c: (bus_service_add_owner):
14569         Send ServiceAcquired message if we're the only primary owner.
14570
14571         (bus_service_remove_owner):
14572         Send ServiceAcquired/ServiceLost messages.
14573
14574         (bus_service_set_prohibit_replacement),
14575         (bus_service_get_prohibit_replacement):
14576         Functions for setting prohibit replacement.
14577
14578         (bus_service_has_owner):
14579         New function that checks if a connection is in the owner queue of
14580         a certain service.
14581
14582         * bus/services.h:
14583         Add new function signatures.
14584
14585         * dbus/dbus-list.c: (_dbus_list_test):
14586         Add tests for _dbus_list_remove_last and traversing the list backwards.
14587
14588         * dbus/dbus-list.h:
14589         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14590         go any further, so return NULL then.
14591
14592         * dbus/dbus-protocol.h:
14593         Add new messages, service flags and service replies.
14594
14595 2003-01-26  Havoc Pennington  <hp@pobox.com>
14596
14597         * dbus/dbus-message-builder.c: implement, completely untested.
14598
14599         * test/data/*: add data to be used in testing.
14600         ".message" files are our simple loadable text format.
14601         ".message-raw" will be binary dumps of messages.
14602
14603         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14604
14605 2003-01-26  Havoc Pennington  <hp@pobox.com>
14606
14607         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14608
14609         * dbus/dbus-errors.c (dbus_result_to_string): add
14610         file errors
14611
14612         * dbus/dbus-message-builder.c: new file, will contain code to load
14613         up messages from files. Not implemented yet.
14614
14615 2003-01-26  Havoc Pennington  <hp@pobox.com>
14616
14617         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14618         the sender by setting to NULL
14619
14620 2003-01-26  Havoc Pennington  <hp@pobox.com>
14621
14622         The unit tests pass, but otherwise untested.  If it breaks, the
14623         tests should have been better. ;-)
14624
14625         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14626         the connection.
14627
14628         * dbus/dbus-message.c: redo everything so we maintain
14629         message->header as the only copy of the various fields.
14630         This avoids the possibility of out-of-memory in some cases,
14631         for example dbus_message_lock() can't run out of memory anymore,
14632         and avoids extra copying. Figured I may as well go ahead and do
14633         this since it was busted for dbus_message_lock to not return
14634         failure on OOM, and dbus_message_write_header was totally
14635         unchecked for OOM. Also fixed some random other bugs.
14636
14637         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14638         that strings are nul-terminated. Also, end_pos can be equal
14639         to string length just not greater than, I think.
14640         (_dbus_marshal_set_int32): new function
14641         (_dbus_marshal_set_uint32): new function
14642         (_dbus_marshal_set_string): new function
14643
14644         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14645         a warning, init timeout_list to NULL
14646         (dbus_connection_send_message): don't use uninitialized variable
14647         "serial"
14648
14649         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14650
14651 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14652
14653         * bus/driver.c: (bus_driver_handle_hello),
14654         (bus_driver_send_welcome_message):
14655         Plug leaks
14656
14657 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14658
14659         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14660         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14661         (dbus_connection_unref):
14662         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14663         * dbus/dbus-message.c: (dbus_message_unref),
14664         Plug memory leaks.
14665
14666         (dbus_message_get_fields):
14667         Remove debugging printout.
14668
14669         (_dbus_message_loader_return_buffer):
14670         Don't store the header string.
14671
14672         (_dbus_message_test):
14673         Plug leaks.
14674
14675 2003-01-26  Richard Hult  <rhult@codefactory.se>
14676
14677         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14678         the file descriptor list, since it can change under us.
14679
14680 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14681
14682         * glib/dbus-gmain.c: (dbus_connection_prepare),
14683         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14684         (remove_watch), (dbus_connection_hookup_with_g_main):
14685         Rewrite the glib handling to use its own GSource instead of a
14686         GIOChannel so we can catch messages put in the queue while waiting
14687         for a reply.
14688
14689 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14690
14691         * bus/Makefile.am:
14692         * bus/connection.c: (connection_disconnect_handler),
14693         (connection_watch_callback), (bus_connection_setup):
14694         * bus/dispatch.c: (send_one_message),
14695         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14696         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14697         * bus/dispatch.h:
14698         * bus/driver.c: (bus_driver_send_service_deleted),
14699         (bus_driver_send_service_created), (bus_driver_handle_hello),
14700         (bus_driver_send_welcome_message),
14701         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14702         (bus_driver_handle_message):
14703         * bus/driver.h:
14704         Refactor code, put the message dispatching in its own file. Use
14705         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14706         is disconnected.
14707
14708 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14709
14710         * dbus/dbus-internals.h:
14711         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14712
14713         * dbus/dbus-message.c: (dbus_message_get_sender):
14714         * dbus/dbus-message.h:
14715         Implement dbus_message_get_sender.
14716
14717         * dbus/dbus-protocol.h:
14718         Add message and service defines.
14719
14720 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14721
14722         * dbus/dbus-connection.c: (dbus_connection_send_message):
14723         * dbus/dbus-message-internal.h:
14724         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14725         (dbus_message_write_header):
14726         Remove _dbus_messag_unlock and don't set the client serial on a
14727         message if one already exists.
14728
14729 2003-01-24  Havoc Pennington  <hp@pobox.com>
14730
14731         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14732         list_pool
14733
14734         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14735         on OOM
14736
14737 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14738
14739         * dbus/dbus-list.c: (alloc_link), (free_link):
14740         Use a memory pool for the links.
14741
14742 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14743
14744         * bus/connection.c: (bus_connection_foreach):
14745         * bus/connection.h:
14746         Add new bus_connection_foreach function.
14747
14748         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14749         Add function that broadcasts a message to all clients.
14750
14751         (bus_driver_send_service_created), (bus_driver_handle_hello),
14752         (bus_driver_send_welcome_message),
14753         (bus_driver_handle_list_services), (bus_driver_message_handler):
14754         Implement functions that take care of listing services, and notifying
14755         clients when new services are created.
14756
14757         * bus/services.c: (bus_services_list):
14758         * bus/services.h:
14759         Add new function that returns an array of strings with the currently
14760         registered services.
14761
14762         * glib/dbus-glib.h:
14763         * glib/dbus-gmain.c:
14764         Update copyright year.
14765
14766 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14767
14768         * dbus/dbus-connection.c: (dbus_connection_send_message):
14769         Unlock the message in case it was sent earlier.
14770
14771         (dbus_connection_send_message_with_reply_and_block):
14772         Remove the reply message from the list.
14773
14774         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14775         Set array_len and new_pos correctly.
14776
14777         (_dbus_marshal_test):
14778         Remove debug output.
14779
14780         * dbus/dbus-message-internal.h:
14781         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14782         New function that returns the reply serial.
14783
14784         (_dbus_message_unlock):
14785         New function that unlocks a message and resets its header.
14786
14787         (dbus_message_append_string_array),
14788         (dbus_message_get_fields_valist),
14789         (dbus_message_iter_get_field_type),
14790         (dbus_message_iter_get_string_array),
14791         (dbus_message_get_fields),
14792         (dbus_message_append_fields_valist):
14793         Handle string arrays.
14794
14795         (dbus_message_set_sender):
14796         Make this function public since the bus daemon needs it.
14797
14798         (decode_header_data):
14799         Set the reply serial to -1 initially.
14800
14801         * dbus/dbus-message.h:
14802         Add dbus_message_set_sender.
14803
14804 2003-01-24  Havoc Pennington  <hp@pobox.com>
14805
14806         * doc/dbus-specification.sgml: add some stuff
14807
14808 2003-01-22  Havoc Pennington  <hp@pobox.com>
14809
14810         * doc/dbus-specification.sgml: Start to document the protocol.
14811
14812 2003-01-22  Havoc Pennington  <hp@pobox.com>
14813
14814         * dbus/dbus-connection.c
14815         (dbus_connection_send_message_with_reply_and_block): add some @todo
14816
14817         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14818
14819 2003-01-21  Havoc Pennington  <hp@pobox.com>
14820
14821         (patch untested because can't compile)
14822
14823         * bus/driver.c (create_unique_client_name): make this function
14824         never recycle client names. Also, caller should initialize
14825         the DBusString.
14826
14827         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14828
14829 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14830
14831         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14832         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14833         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14834         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14835         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14836         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14837         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14838         * dbus/dbus-marshal.h:
14839         * dbus/dbus-protocol.h:
14840         Add support for marshalling and demarshalling integer, double
14841         and string arrays.
14842
14843 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14844
14845         * bus/Makefile.am:
14846         Add driver.[ch]
14847
14848         * bus/connection.c: (connection_disconnect_handler):
14849         Remove the connection from the bus driver's list.
14850
14851         (connection_watch_callback): Dispatch messages.
14852
14853         (free_connection_data): Free connection name.
14854
14855         (bus_connection_setup): Add connection to the bus driver's list.
14856         (bus_connection_remove_owned_service):
14857         (bus_connection_set_name), (bus_connection_get_name):
14858         Add functions for setting and getting the connection's name.
14859
14860         * bus/connection.h:
14861         Add function headers.
14862
14863         * bus/driver.c: (create_unique_client_name),
14864         (bus_driver_handle_hello_message),
14865         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14866         (bus_driver_add_connection), (bus_driver_remove_connection):
14867         * bus/driver.h:
14868         * bus/main.c:
14869         * bus/services.c: (bus_service_free):
14870         * bus/services.h:
14871         New file that handles communication and registreation with the bus
14872         itself.
14873
14874 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14875
14876         * dbus/dbus-connection.c: (dbus_connection_send_message):
14877         Add a new client_serial parameter.
14878
14879         (dbus_connection_send_message_with_reply):
14880         Remove a @todo since we've implemented the blocking function.
14881
14882         (dbus_connection_send_message_with_reply_and_block):
14883         New function that sends a message and waits for a reply and
14884         then returns the reply.
14885
14886         * dbus/dbus-connection.h:
14887         Add new functions.
14888
14889         * dbus/dbus-errors.c: (dbus_result_to_string):
14890         * dbus/dbus-errors.h:
14891         Add new DBUS_RESULT.
14892
14893         * dbus/dbus-message-internal.h:
14894         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14895         (_dbus_message_set_sender), (dbus_message_write_header),
14896         (dbus_message_new_reply), (decode_header_data),
14897         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14898         * dbus/dbus-message.h:
14899         Add new functions that set the reply serial and sender.
14900         Also marshal and demarshal them correctly and add test.
14901
14902         * dbus/dbus-protocol.h:
14903         Add new DBUS_MESSAGE_TYPE_SENDER.
14904
14905         * glib/dbus-glib.h:
14906         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14907         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14908         (dbus_connection_hookup_with_g_main):
14909         * glib/test-dbus-glib.c: (main):
14910         Rewrite to use GIOChannel and remove the GSource crack.
14911
14912         * test/echo-client.c: (main):
14913         * test/watch.c: (check_messages):
14914         Update for changed APIs
14915
14916 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14917
14918         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14919
14920         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14921         Create a DBusTimeoutList.
14922         (dbus_connection_set_timeout_functions): Add new function to
14923         set timeout callbacks
14924
14925         * dbus/dbus-connection.h: Add public DBusTimeout API.
14926
14927         * dbus/dbus-message.c: (dbus_message_get_service):
14928         * dbus/dbus-message.h:  New function.
14929
14930         * dbus/dbus-server.c: Fix small doc typo.
14931
14932         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14933
14934 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14935
14936         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14937         of the string, just as long as specified.
14938
14939 2003-01-19  Havoc Pennington  <hp@pobox.com>
14940
14941         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14942         new function
14943
14944         * dbus/dbus-server.c (dbus_server_set_max_connections)
14945         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14946         keep track of current number of connections, and add API for
14947         setting a max (but haven't implemented enforcing the max yet)
14948
14949 2003-01-18  Havoc Pennington  <hp@pobox.com>
14950
14951         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14952         reading/writing if read_watch != NULL or write_watch != NULL.
14953
14954         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14955         the message loader code to actually load message->header and
14956         message->body into the newly-created message.
14957
14958         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14959         in OOM case
14960
14961         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14962         (dbus_connection_get_max_message_size)
14963         (dbus_connection_set_max_live_messages_size)
14964         (dbus_connection_get_max_live_messages_size): implement some
14965         resource limitation functions
14966
14967         * dbus/dbus-resources.c: new file implementing some of the
14968         resource limits stuff
14969
14970         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14971         missing docs, add @todo to handle OOM etc.
14972
14973         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14974         docs
14975
14976 2003-01-18  Havoc Pennington  <hp@pobox.com>
14977
14978         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14979         connection if it hasn't been already.
14980
14981         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14982         replace with DisconnectFunction.
14983
14984 2003-01-18  Havoc Pennington  <hp@pobox.com>
14985
14986         Building --disable-verbose-mode --disable-asserts --disable-tests
14987         cuts the library from 112K to 45K or so
14988
14989         * configure.in: check for varargs macro support,
14990         add --enable-verbose-mode, --enable-asserts.
14991
14992         * dbus/dbus-internals.h (_dbus_assert): support
14993         DBUS_DISABLE_ASSERT
14994         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14995
14996 2003-01-18  Havoc Pennington  <hp@pobox.com>
14997
14998         * dbus/dbus-test.c: include config.h so that tests actually run
14999
15000         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
15001         so the failure mode when that assumption fails will be plenty
15002         obvious.
15003
15004 2003-01-18  Havoc Pennington  <hp@pobox.com>
15005
15006         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
15007
15008         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
15009         the distribution
15010
15011         * test/Makefile.am: don't use special variable "TESTS" for echo-*
15012         since we don't want to use those in make check
15013
15014 2003-01-15  Havoc Pennington  <hp@redhat.com>
15015
15016         Release 0.2
15017
15018         * NEWS: update
15019
15020 2003-01-15  Havoc Pennington  <hp@redhat.com>
15021
15022         * test/Makefile.am: fix so that test source code ends up in the
15023         distribution on make distcheck
15024
15025 2003-01-15  Havoc Pennington  <hp@redhat.com>
15026
15027         Release 0.1.
15028
15029         * NEWS: update
15030
15031 2003-01-15  Havoc Pennington  <hp@redhat.com>
15032
15033         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
15034         fix build when --disable-tests
15035
15036         * Makefile.am (EXTRA_DIST): put HACKING in here
15037
15038         * HACKING: document procedure for making a tarball release.
15039
15040 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
15041
15042         * bus/connection.c: (connection_error_handler),
15043         (bus_connection_setup):
15044         * bus/main.c: (main):
15045         Make sure that the DBusConnectionData struct is NULLed
15046         out to prevent a segfault.
15047
15048         * dbus/dbus-errors.c: (dbus_result_to_string):
15049         * dbus/dbus-errors.h:
15050         * dbus/dbus-message.c: (dbus_message_get_fields),
15051         (dbus_message_get_fields_valist), (_dbus_message_test):
15052         * dbus/dbus-message.h:
15053         Make dbus_message_get_fields return a result code so we can
15054         track invalid fields as well as oom.
15055
15056 2003-01-11  Havoc Pennington  <hp@pobox.com>
15057
15058         * configure.in: change --enable-test/--enable-ansi action-if-given
15059         to enable_foo=$enableval instead of enable_foo=yes
15060
15061 2003-01-08  Havoc Pennington  <hp@pobox.com>
15062
15063         * dbus/dbus-string.c (_dbus_string_align_length): new function
15064
15065         * dbus/dbus-test-main.c: move main() for test app here
15066         * dbus/dbus-test.c
15067         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
15068         symbol to run tests, because dbus-test isn't in the main
15069         library
15070
15071         Code review nitpicks.
15072
15073         * dbus/dbus-message.c (dbus_message_write_header): add newlines
15074         for people with narrow emacs ;-). Assert client_serial was filled
15075         in. Assert message->name != NULL.
15076         (dbus_message_append_fields): have "first_field_type" arg separate
15077         from va list, needed for C++ binding that also uses varargs IIRC
15078         and helps with type safety
15079         (dbus_message_new): add @todo about using DBusString to store
15080         service/name internally
15081         (dbus_message_new): don't leak ->service and ->name on OOM later
15082         in the function
15083         (dbus_message_unref): free the service name
15084         (dbus_message_get_fields): same change to varargs
15085         i.e. first_field_type
15086         (_dbus_message_loader_return_buffer): assert that the message data
15087         is aligned (if not it's a bug in our code). Put in verbose griping
15088         about why we set corrupted = TRUE.
15089         (decode_header_data): add FIXME that char* is evil.  Was going to
15090         add FIXME about evil locale-specific string.h strncmp, but just
15091         switched to wacky string-as-uint32 optimization. Move check for
15092         "no room for field name" above get_const_data_len() to avoid
15093         assertion failure in get_const_data_len if we have trailing 2
15094         bytes or the like. Check for service and name fields being
15095         provided twice. Don't leak service/name on error. Require field
15096         names to be aligned to 4 bytes.
15097
15098         * dbus/dbus-marshal.c: move byte swap stuff to header
15099         (_dbus_pack_int32): uscore-prefix
15100         (_dbus_unpack_int32): uscore-prefix
15101         (_dbus_unpack_uint32): export
15102         (_dbus_demarshal_string): add @todo complaining about use of
15103         memcpy()
15104         (_dbus_marshal_get_field_end_pos): add @todo about bad error
15105         handling allowing corrupt data to go unchecked
15106
15107 2003-01-08  Havoc Pennington  <hp@redhat.com>
15108
15109         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
15110         to the select() as needed for authentication. (should be using
15111         _dbus_poll() not select, but for another day)
15112
15113         * dbus/dbus.h: include dbus/dbus-protocol.h
15114
15115 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
15116
15117         * dbus/Makefile.am (dbusinclude_HEADERS): Install
15118         dbus-connection.h
15119
15120 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
15121
15122         * dbus/dbus-internals.c: (_dbus_type_to_string):
15123         New function that returns a string describing a type.
15124
15125         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
15126         * dbus/dbus-marshal.h:
15127         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
15128         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
15129         (dbus_message_iter_get_byte_array):
15130         * dbus/dbus-message.h:
15131         Add new convenience functions for appending and getting message fields.
15132         Also add demarshalling routines for byte arrays.
15133
15134 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15135
15136         * dbus/dbus-connection-internal.h:
15137         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
15138         (_dbus_connection_get_next_client_serial),
15139         (dbus_connection_send_message):
15140         * dbus/dbus-internals.h:
15141         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
15142         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
15143         (_dbus_marshal_uint32), (_dbus_demarshal_double),
15144         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
15145         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
15146         (_dbus_verbose_bytes), (_dbus_marshal_test):
15147         * dbus/dbus-marshal.h:
15148         * dbus/dbus-message-internal.h:
15149         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
15150         (dbus_message_write_header), (_dbus_message_lock),
15151         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
15152         (dbus_message_get_name), (dbus_message_append_int32),
15153         (dbus_message_append_uint32), (dbus_message_append_double),
15154         (dbus_message_append_string), (dbus_message_append_byte_array),
15155         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
15156         (dbus_message_iter_unref), (dbus_message_iter_has_next),
15157         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
15158         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
15159         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
15160         (decode_header_data), (_dbus_message_loader_return_buffer),
15161         (message_iter_test), (_dbus_message_test):
15162         * dbus/dbus-message.h:
15163         * dbus/dbus-protocol.h:
15164         * dbus/dbus-test.c: (main):
15165         * dbus/dbus-test.h:
15166         * glib/test-dbus-glib.c: (message_handler), (main):
15167         * test/echo-client.c: (main):
15168         * test/watch.c: (check_messages):
15169         Make messages sendable and receivable for real.
15170
15171 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15172
15173         * dbus/dbus-marshal.c: (_dbus_marshal_double),
15174         (_dbus_marshal_string), (_dbus_marshal_byte_array):
15175         * dbus/dbus-message.c: (dbus_message_append_int32),
15176         (dbus_message_append_uint32), (dbus_message_append_double),
15177         (dbus_message_append_string), (dbus_message_append_byte_array):
15178         Handle OOM restoration.
15179
15180 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15181
15182         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15183         (_dbus_demarshal_string), (_dbus_marshal_test):
15184         * dbus/dbus-marshal.h:
15185         * dbus/dbus-message.c: (dbus_message_get_name),
15186         Document these functions.
15187
15188         (dbus_message_append_int32), (dbus_message_append_uint32),
15189         (dbus_message_append_double), (dbus_message_append_string),
15190         (dbus_message_append_byte_array):
15191         * dbus/dbus-message.h:
15192         Add functions for adding message fields of different types.
15193
15194         * dbus/dbus-protocol.h:
15195         Add the different types.
15196
15197 2003-01-05  Havoc Pennington  <hp@pobox.com>
15198
15199         * bus/connection.c: implement routines for handling connections,
15200         first thing is keeping a list of owned services on each connection
15201         and setting up watches etc.
15202
15203         * bus/services.c: implement a mapping from service names to lists
15204         of connections
15205
15206         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
15207
15208         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
15209         to use static mutexes for global data
15210
15211         * dbus/dbus-connection.c (dbus_connection_set_data): add new
15212         collection of functions to set/get application-specific data
15213         on the DBusConnection.
15214
15215 2003-01-04  Havoc Pennington  <hp@pobox.com>
15216
15217         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
15218         (_dbus_poll): new function
15219
15220         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
15221         copied from GLib
15222
15223         * bus/loop.c: initial code for the daemon main loop
15224
15225 2003-01-04  Havoc Pennington  <hp@pobox.com>
15226
15227         * test/watch.c (error_handler): make it safe if the error handler
15228         is called multiple times (if we s/error handler/disconnect
15229         handler/ we should just guarantee it's called only once)
15230
15231         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
15232         error handler on disconnect (it's quite possible we should
15233         just change the error handler to a "disconnect handler," I'm
15234         not sure we have any other meaningful errors)
15235
15236         * configure.in: check for getpwnam_r
15237
15238         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
15239         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
15240         mechanism as in SASL spec, using socket credentials
15241
15242         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
15243         (_dbus_send_credentials_unix_socket): new function
15244
15245         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
15246         dbus_accept()
15247         (_dbus_write): only check errno if <0 returned
15248         (_dbus_write_two): ditto
15249
15250 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
15251
15252         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
15253         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
15254         (_dbus_marshal_test):
15255         * dbus/dbus-marshal.h:
15256         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
15257         to _dbus_marshal_utf8_string. Also fix some tests.
15258
15259 2002-12-28  Harri Porten  <porten@kde.org>
15260
15261         * configure.in: added check for C++ compiler and a very cheesy
15262         check for the Qt integration
15263
15264         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
15265
15266         * qt/Makefile.am: added
15267
15268         * qt/.cvsignore: added
15269
15270         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
15271         latter, added #ifdef QT_THREAD_SUPPORT guard.
15272
15273         * dbus/Makefile.am: added missing headers for make dist
15274
15275 2002-12-28  Kristian Rietveld  <kris@gtk.org>
15276
15277         * dbus/Makefile.am: fixup export-symbols-regex.
15278
15279 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15280
15281         * acinclude.m4: Add this file and put the
15282         PKG_CHECK_MODULE macro in it.
15283
15284 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15285
15286         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15287         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15288         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15289         (_dbus_marshal_test):
15290         Make the demarshalling routines align the pos argument.
15291         Add string marshalling tests and fix the obvious bugs
15292         discovered.
15293
15294 2002-12-26  Havoc Pennington  <hp@pobox.com>
15295
15296         * dbus/dbus-auth.c: fixes fixes fixes
15297
15298         * dbus/dbus-transport-unix.c: wire up support for
15299         encoding/decoding data on the wire
15300
15301         * dbus/dbus-auth.c (_dbus_auth_encode_data)
15302         (_dbus_auth_decode_data): append to target string
15303         instead of nuking it.
15304
15305 2002-12-26  Havoc Pennington  <hp@pobox.com>
15306
15307         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
15308         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
15309         doh
15310
15311         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
15312         avoid swap_bytes() overhead (ignoring possible assembly stuff for
15313         now). Main point is because I wanted unpack_uint32 to implement
15314         _dbus_verbose_bytes
15315         (_dbus_verbose_bytes): new function
15316
15317         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
15318
15319         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
15320         mechanism to handle a corrupt message stream
15321         (_dbus_message_loader_new): fix preallocation to only prealloc,
15322         not prelengthen
15323
15324         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
15325         (_dbus_string_test): enhance tests for copy/move and fix the
15326         functions
15327
15328         * dbus/dbus-transport-unix.c: Hold references in more places to
15329         avoid reentrancy problems
15330
15331         * dbus/dbus-transport.c: ditto
15332
15333         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
15334         leak reference count in no-message case
15335
15336         * test/watch.c (do_mainloop): handle adding/removing watches
15337         during iteration over the watches. Also, ref the connection/server
15338         stored on a watch, so we don't try to mangle a destroyed one.
15339
15340         * dbus/dbus-transport-unix.c (do_authentication): perform
15341         authentication
15342
15343         * dbus/dbus-auth.c (get_state): add a state
15344         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
15345         (_dbus_auth_get_unused_bytes): append the unused bytes
15346         to the passed in string, rather than prepend
15347
15348         * dbus/dbus-transport.c (_dbus_transport_init_base): create
15349         the auth conversation DBusAuth
15350
15351         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
15352         (_dbus_transport_new_for_domain_socket): when creating a
15353         transport, pass in whether it's a client-side or server-side
15354         transport so we know which DBusAuth to create
15355
15356 2002-12-03  Havoc Pennington  <hp@pobox.com>
15357
15358         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15359         _after_ finalizing the derived members
15360         (unix_connection_set): unref watch if we fail to add it
15361
15362         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15363         transport first, so that the connection owned by the
15364         transport will be valid as the transport finalizes.
15365
15366         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15367         if necessary, and remove watches from the connection.
15368
15369         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15370
15371 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15372
15373         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15374         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15375         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15376         (_dbus_marshal_test):
15377         * dbus/dbus-marshal.h:
15378         Add string marshal functions and have the demarshal functions
15379         return the new position.
15380
15381 2002-12-25  Havoc Pennington  <hp@pobox.com>
15382
15383         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15384         it is a simple protocol that just maps directly to SASL.
15385
15386         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15387         initial implementation, not actually used yet.
15388
15389         * dbus/dbus-string.c (_dbus_string_find): new function
15390         (_dbus_string_equal): new function
15391         (_dbus_string_base64_encode): new function
15392         (_dbus_string_base64_decode): new function
15393
15394 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15395
15396         * dbus/Makefile.am:
15397         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15398         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15399         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15400         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15401         * dbus/dbus-marshal.h:
15402         * dbus/dbus-protocol.h:
15403         * dbus/dbus-test.c: (main):
15404         * dbus/dbus-test.h:
15405         Add un-optimized marshalling/demarshalling routines.
15406
15407 2002-12-25  Harri Porten  <porten@kde.org>
15408
15409         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15410
15411 2002-12-24  Zack Rusin  <zack@kde.org>
15412
15413         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15414         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15415         main loop stuff
15416
15417 2002-12-24  Havoc Pennington  <hp@pobox.com>
15418
15419         * glib/dbus-gthread.c: fix include
15420
15421         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15422         I think glib API needs to change, though, as you don't
15423         want to use DBusMessageFunction, you want to use the
15424         DBusMessageHandler object. Probably
15425         dbus_connection_open_with_g_main_loop()
15426         and dbus_connection_setup_g_main_loop() or something like that
15427         (but think of better names...) that just create a connection
15428         that has watch/timeout functions etc. already set up.
15429
15430         * dbus/dbus-connection.c
15431         (dbus_connection_send_message_with_reply): new function just to
15432         show how the message handler helps us deal with replies.
15433
15434         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15435
15436         * dbus/dbus-string.c (_dbus_string_test): free a string that
15437         wasn't
15438
15439         * dbus/dbus-hash.c: use memory pools for the hash entries
15440         (rebuild_table): be more paranoid about overflow, and
15441         shrink table when we can
15442         (_dbus_hash_test): reduce number of sprintfs and write
15443         valid C89. Add tests for case where we grow and then
15444         shrink the hash table.
15445
15446         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15447
15448         * dbus/dbus-connection.c (dbus_connection_register_handler)
15449         (dbus_connection_unregister_handler): new functions
15450
15451         * dbus/dbus-message.c (dbus_message_get_name): new
15452
15453         * dbus/dbus-list.c: fix docs typo
15454
15455         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15456         an object representing a handler for messages.
15457
15458 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15459
15460         * glib/dbus-glib.h:
15461         * glib/dbus-gthread.c: (dbus_gthread_init):
15462         Don't use the gdbus prefix for public functions.
15463
15464 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15465
15466         * Makefile.am:
15467         * configure.in:
15468         Add GLib checks and fixup .pc files
15469
15470         * glib/Makefile.am:
15471         * glib/dbus-glib.h:
15472         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15473         (gdbus_connection_check), (gdbus_connection_dispatch),
15474         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15475         (dbus_connection_gsource_new):
15476         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15477         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15478         * glib/test-dbus-glib.c: (message_handler), (main):
15479         Add GLib support.
15480
15481 2002-12-15  Harri Porten  <porten@kde.org>
15482
15483         * autogen.sh: check for libtoolize before attempting to use it
15484
15485         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15486         struct.
15487
15488         * .cvsignore: ignore more stamp files
15489
15490         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15491
15492         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15493         without make install.
15494
15495 2002-12-15  Havoc Pennington  <hp@pobox.com>
15496
15497         * dbus/dbus-threads.c: add thread stubs that a higher library
15498         layer can fill in. e.g. the GLib wrapper might fill them in with
15499         GThread stuff. We still need to use this thread API to
15500         thread-safe-ize the library.
15501
15502 2002-12-12  Havoc Pennington  <hp@pobox.com>
15503
15504         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15505         below new interfaces and include fewer system headers.
15506
15507         * dbus/dbus-sysdeps.c (_dbus_read): new function
15508         (_dbus_write): new function
15509         (_dbus_write_two): new function
15510         (_dbus_connect_unix_socket): new function
15511         (_dbus_listen_unix_socket): new function
15512
15513         * dbus/dbus-message-internal.h: change interfaces to use
15514         DBusString
15515
15516 2002-12-11  Havoc Pennington  <hp@pobox.com>
15517
15518         * dbus/dbus-types.h: add dbus_unichar
15519
15520         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15521
15522         * dbus/dbus-connection.c (dbus_connection_send_message): return
15523         TRUE on success
15524
15525         * dbus/dbus-transport.c: include dbus-watch.h
15526
15527         * dbus/dbus-connection.c: include dbus-message-internal.h
15528
15529         * HACKING: add file with coding guidelines stuff.
15530
15531         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15532         handling here, for security purposes (as in vsftpd). Not actually
15533         using this class yet.
15534
15535         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15536         system/libc usage here, as in vsftpd, for ease of auditing (and
15537         should also simplify portability). Haven't actually moved all the
15538         system/libc usage into here yet.
15539
15540 2002-11-25  Havoc Pennington  <hp@pobox.com>
15541
15542         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15543         always print the first verbose message.
15544
15545 2002-11-24  Havoc Pennington  <hp@pobox.com>
15546
15547         * test/echo-client.c, test/echo-server.c: cheesy test
15548         clients.
15549
15550         * configure.in (AC_CHECK_FUNCS): check for writev
15551
15552         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15553         function
15554
15555         * dbus/dbus-list.c (_dbus_list_foreach): new function
15556
15557         * dbus/dbus-internals.c (_dbus_verbose): new function
15558
15559         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15560         representing a server that listens for connections.
15561
15562         * dbus/.cvsignore: create
15563
15564         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15565         public API for reporting errors
15566
15567         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15568         public object representing a connection that
15569         sends/receives messages. (Same object used for
15570         both client and server.)
15571
15572         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15573         Basic abstraction for different kinds of stream
15574         that we might read/write messages from.
15575
15576 2002-11-23  Havoc Pennington  <hp@pobox.com>
15577
15578         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15579         _DBUS_INT_MAX
15580
15581         * dbus/dbus-test.c (main): add list test, and include
15582         dbus-test.h as intended
15583
15584         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15585         (_dbus_hash_table_remove_int): return value indicates
15586         whether the entry existed to remove
15587
15588         * dbus/dbus-list.c: add linked list utility class,
15589         with docs and tests
15590
15591         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15592         array sometimes.
15593
15594 2002-11-23  Havoc Pennington  <hp@pobox.com>
15595
15596         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15597         DBUS_END_DECLS to nothing, that should fix this once and for all
15598
15599         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15600
15601         * dbus/dbus-message.c, dbus/dbus-hash.c:
15602         add some missing @brief
15603
15604 2002-11-23  Havoc Pennington  <hp@pobox.com>
15605
15606         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15607         to avoid confusing Doxygen
15608
15609         * dbus/dbus-hash.c: @} not }@
15610
15611         * dbus/dbus-message.c (struct DBusMessage): split out
15612         internals docs
15613
15614 2002-11-23  Havoc Pennington  <hp@pobox.com>
15615
15616         * configure.in: pile on more warning flags if using gcc
15617
15618         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15619         to document static functions
15620
15621         * configure.in: add summary to end of configure so it
15622         looks nice and attractive
15623
15624         * dbus/dbus-hash.c: finish implementation and write unit
15625         tests and docs
15626
15627         * configure.in: add --enable-tests to enable unit tests
15628
15629         * dbus/dbus-test.c: test program to run unit tests
15630         for all files in dbus/*, initially runs a test for
15631         dbus-hash.c
15632
15633         * dbus/dbus-internals.h: file to hold some internal utility stuff
15634
15635 2002-11-22  Havoc Pennington  <hp@redhat.com>
15636
15637         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15638         "ported" away from Tcl
15639
15640         * dbus/dbus-types.h: header for types such as dbus_bool_t
15641
15642 2002-11-22  Havoc Pennington  <hp@redhat.com>
15643
15644         * dbus/dbus.h: fixups for doc warnings
15645
15646         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15647         macros
15648         (QUIET): make it quiet so we can see warnings
15649
15650         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15651
15652 2002-11-22  Havoc Pennington  <hp@redhat.com>
15653
15654         * Makefile.am: include "Doxyfile" target in all-local
15655
15656         * configure.in: generate the Doxyfile
15657
15658         * Doxyfile.in: move Doxyfile here, so we can use
15659         configure to generate a Doxyfile with the right
15660         version number etc.
15661
15662 2002-11-22  Havoc Pennington  <hp@redhat.com>
15663
15664         * dbus/dbus-message.c: move inline docs into .c file
15665
15666         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15667         so all docs are under doc/
15668         (MAN_EXTENSION): generate man pages. Use extension
15669         ".3dbus" which matches ".3qt" on my system,
15670         I guess this is OK, I don't know really.
15671         (FILE_PATTERNS): look for .c files not .h, makes sense
15672         for plain C I think
15673
15674 2002-11-22  Havoc Pennington  <hp@pobox.com>
15675
15676         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15677         because any app can be a server, and any app can be a client,
15678         the bus is a special kind of server.
15679
15680 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15681
15682         * Doxyfile : adding. Still needs Makefile rules to be generated
15683         automatically (just run "doxygen" in the toplevel dir for now to
15684         generate docs)
15685
15686         * dbus/dbus-message.h : Adding sample docs (javadoc since
15687         resembles gtk-doc a little more)
15688
15689         * dbus/dbus.h : Adding sample docs
15690
15691 2002-11-21  Havoc Pennington  <hp@redhat.com>
15692
15693         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15694         so we can allow ourselves to include files directly,
15695         instead of having to use dbus.h
15696
15697         * dbus/dbus.h: fill in
15698
15699         * dbus/dbus-message.h: sketch out a sample header file.
15700         Include griping if you include it directly instead of
15701         via dbus.h
15702
15703         * dbus/dbus-macros.h: new file with macros for extern "C",
15704         TRUE/FALSE, NULL, etc.
15705
15706         * doc/file-boilerplate.c: put include guards in here
15707
15708 2002-11-21  Havoc Pennington  <hp@redhat.com>
15709
15710         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15711
15712         * COPYING: include the GPL as well, and license code
15713         under both AFL and GPL.
15714
15715 2002-11-21  Havoc Pennington  <hp@redhat.com>
15716
15717         * acconfig.h: get rid of this
15718
15719         * autogen.sh (run_configure): add --no-configure option
15720
15721         * configure.in: remove AC_ARG_PROGRAM to make
15722         autoconf complain less. add AC_PREREQ.
15723         add AC_DEFINE third arg.
15724
15725 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15726
15727         * doc/Makefile.am:
15728         Fix references so we can distcheck.
15729
15730 2002-11-21  Havoc Pennington  <hp@redhat.com>
15731
15732         * Initial module creation
15733