2007-05-23 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / ChangeLog
1 2007-05-23  Havoc Pennington  <hp@redhat.com>
2
3         * bus/Makefile.am (install-data-hook): create session.d
4
5         * bus/session.conf.in: add session.d for the session bus, so
6         security policy can be extended
7
8 2007-05-22 Ralf.Habacker <ralf.habacker@freenet.de>
9
10         * cmake/CMakeLists.txt: fixed creating of TEST_..._BINARY to make 
11         bus-test able to find the binaries.
12
13 2007-05-21 Simon McVittie  <simon.mcvittie@collabora.co.uk>
14
15         * acinclude.m4, configure.in: In recent autotools, ${datadir} is
16         defined in terms of ${datarootdir}, so EXPANDED_DATADIR needs to be
17         expanded recursively. Rather than fixing configure.in to do this, I
18         grabbed the AS_AC_EXPAND macro from autostars.sf.net, which seems to be
19         commonly used.
20
21 2007-05-21 Simon McVittie  <simon.mcvittie@collabora.co.uk>
22
23         * update-dbus-docs.sh: Assorted improvements:
24         - Default user if $FDUSER is not set is the ssh default
25           (set in ~/.ssh/config or based on the local username), not a
26           hard-coded "johnp"
27         - Temporary checkout directory is created securely (preventing symlink
28           attacks), if mktemp(1) is available
29         - Use make -C rather than cd && make && cd ..
30
31 2007-05-21 Simon McVittie  <simon.mcvittie@collabora.co.uk>
32
33         * HACKING: Point to correct mailing list
34
35 2007-05-21 Simon McVittie  <simon.mcvittie@collabora.co.uk>
36
37         * doc/dbus-specification.xml: explicitly specify that STRING cannot
38         contain embedded NULs.
39
40 2007-05-20 Ralf.Habacker  <ralf.habacker@freenet.de>
41
42         * dbus/dbus-internal.c: fix inline problem on win32.
43
44 2007-05-20 Ralf.Habacker  <ralf.habacker@freenet.de>
45
46         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir): not reaching 
47         domain controller isn't an error, converted error message to verbose 
48         message.
49
50 2007-05-19 Ralf.Habacker  <ralf.habacker@freenet.de>
51
52         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): disabled 
53         tests not running on wince.
54
55 2007-05-19 Ralf.Habacker  <ralf.habacker@freenet.de>
56
57         * dbus/dbus-internals.c (_dbus_verbose_init): win32 requires 'varname=' 
58         to unset a environment variable. 
59
60 2007-05-19 Ralf.Habacker  <ralf.habacker@freenet.de>
61
62         * dbus/dbus-sysdeps.c (_dbus_setenv): win32 requires 'varname=' 
63         to unset a environment variable. 
64
65 2007-05-19 Ralf.Habacker  <ralf.habacker@freenet.de>
66
67         * bus/policy.c (bus_policy_create_client_policy): 
68         win32 temporary fix until the userdb stuff is ported completly.
69
70 2007-05-19  Ralf.Habacker  <ralf.habacker@freenet.de>
71
72         * dbus/dbus-server.c (listen_funcs): 
73         _dbus_server_listen_platform_specific is empty on win32, 
74         limited to unix only.
75
76         * dbus/dbus-server.c (valid_addresses): limit unix 
77         only addresses to unix. 
78
79 2007-05-18  Havoc Pennington  <hp@redhat.com>
80
81         * doc/dbus-specification.xml: add a GetAll to the Properties
82         interface.
83
84 2007-05-17 Ralf.Habacker  <ralf.habacker@freenet.de>
85  
86         * bus\config-parser.c (test_default_session_servicedirs):
87         win32 fix.
88
89 2007-05-17 Ralf.Habacker  <ralf.habacker@freenet.de>
90  
91         * configure.in: define constant DBUS_UNIX.
92
93 2007-05-14  Ralf Habacker <ralf.habacker@freenet.de>
94
95         * dbus/dbus-sysdeps-win.c (_dbus_printf_string_upper_bound):
96         compile fix for MS Platform SDK 6 
97         patch from Michael Luschas <mluschas@gmail.com>
98
99 2007-05-10  John (J5) Palmieri <johnp@redhat.com>
100
101         * dbus-1.pc.in: add daemondir to pc file
102         patch from Brian Cameron <brian.cameron at sun.com>
103
104 2007-05-04  Simon McVittie <simon.mcvittie@collabora.co.uk>
105
106         * doc/dbus-specification.xml: mention the reserved o.fd.DBus.Local
107         interface and the corresponding /o/fd/DBus/Local object path;
108         describe them as reserved and forbid using them in a sent message,
109         mentioning that in the reference implementation this will cause the
110         connection to be dropped. Patch approved by Havoc.
111
112 2007-04-28  Ralf Habacker <ralf.habacker@freenet.de>
113
114         * cmake/: don't install test applications and service files,
115         moved CMAKE_DEBUG_POSTFIX to top level CMakeLists.txt
116
117 2007-04-27  Havoc Pennington  <hp@redhat.com>
118
119         * dbus/dbus-sysdeps-unix.c (_dbus_open_socket): fix #10781 from
120         Tobias Nygren, checking pointer to fd vs. 0 rather than checking
121         the fd itself
122
123 2007-04-26 Ralf Habacker  <ralf.habacker@freenet.de>
124
125         * cmake/: added debug postfixes to debug exe's for 
126         easier debugging.
127         * dbus\dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error): 
128         print error code in case no string message is available.
129
130 2007-04-06 Simon McVittie <simon.mcvittie@collabora.co.uk>
131
132         * dbus/dbus-message-util.c, dbus/dbus-message.c,
133         dbus/dbus-message.h: Add API to convert a DBusMessage to/from a
134         byte array. Patch from Dafydd Harries <dafydd.harries@collabora.co.uk>,
135         approved by Havoc Pennington.
136
137 2007-04-03  Timo Hoenig  <thoenig@suse.de>
138
139         * dbus/dbus-address.c (dbus_parse_address): Do not accept zero-
140           length address.
141         * dbus/dbus-address.c (_dbus_address_test): Add test for zero-
142           length address.
143
144 2007-03-25 Ralf.Habacker  <ralf.habacker@freenet.de>
145
146         * cmake/dbus/CMakeLists.txt: debug postfix also for mingw.
147
148 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
149
150         * cmake/modules/FindExpat.cmake: fix package detection on win32.
151
152         * README.win: update install instructions. 
153
154 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
155
156         * dbus/dbus-sysdeps.h (_dbus_split_paths_and_append):
157         new prototyp
158         (_DBUS_PATH_SEPARATOR): new macro. 
159
160         * dbus/dbus-sysdeps.c (_dbus_split_paths_and_append): merged 
161         from dbus/dbus-sysdeps-unix.c and dbus/dbus-sysdeps-win.c. 
162
163 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
164
165         * bus/config-parser.c, bus/policy.c,  
166         bus/policy.h, bus/dbus-daemon.1.in,
167         bus/session.conf.in: added eavesdrop support 
168         for replies - patch by olli.salli at collabora.co.uk
169         approved by Havoc Pennington. 
170
171 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
172
173         * dbus\dbus-sysdeps-win-thread.c: renamed to 
174         dbus-sysdeps-thread-win.c, it is a platform depending file 
175         similar to dbus-sysdeps-pthread.c.
176
177 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
178
179         * cmake\doc\CMakeLists.txt: added prelimary xml doc 
180         support, needs cmake Find script.
181
182 2007-03-14 Ralf.Habacker  <ralf.habacker@freenet.de>
183
184         * cmake: add doxygen support
185
186 2007-03-14  Ralf.Habacker  <ralf.habacker@freenet.de>
187
188         * cmake/config.h.cmake: WINCE fixes, defined DBUS_UNIX.
189
190 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
191
192         * dbus/dbus-sysdeps-util-win.c (dbus_become_daemon): 
193         win32 compile fix. 
194
195 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
196
197         * dbus-win.patch: removed obsolate patches. 
198
199 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
200
201         * dbus/dbus-sysdeps-win.c: added zero byte sending 
202         and receiving after connection start up
203
204 2007-03-11  Havoc Pennington  <hp@redhat.com>
205
206         * tools/dbus-launch.c (do_close_stderr): fix C89 problem and
207         formatting problem
208
209         * Mostly fix the DBusPipe mess.
210         - put line break after function return types
211         - put space before parens
212         - do not pass structs around by value
213         - don't use dbus_strerror after calling supposedly cross-platform
214         api
215         - don't name pipe variables "fd"
216         - abstract special fd numbers like -1 and 1
217
218 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
219
220         * dbus/dbus-sysdeps-win.h, dbus/dbus-sysdeps-win.c, 
221         dbus/dbus-sysdeps-util-win.c: renamed functions 
222         _dbus_xxx_file() to _dbus_file_xxx() to reflect 
223         struct name DBusFile. 
224
225 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
226
227         * dbus/dbus-sysdeps-util-unix.c (_dbus_become_daemon):
228         fix _dbus_pid_fd check. 
229
230 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
231
232         * tools/dbus-print-message.c (print_message):
233         added printing of the reply serial to method returns and 
234         errors, so you can actually figure out the message/reply 
235         pairs - patch by olli.salli at collabora.co.uk.
236
237 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
238
239         * dbus-win.patch: removed committed patches. 
240
241 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
242
243         * bus/bus.c, bus/bus.h, bus/main.c, bus/test.c,
244         dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-util-unix.c,
245         dbus/dbus-sysdeps-util-win.c, dbus/dbus-sysdeps-win.c,
246         dbus/dbus-sysdeps.h: renamed _dbus_xxx_pipe to _dbus_pipe_xxx,
247         completed _dbus_pipe support. 
248
249 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
250
251         * dbus/dbus-sysdeps.h (_dbus_listen_tcp_socket):
252         changed type or port to pointer, because the port is given back.
253
254         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
255         implemented returning tcp port. Skipping port parameter
256         and non integer port values in config <listen> statement
257         needs more effort.
258
259         * dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-win.c
260         (_dbus_listen_tcp_socket): return the real used tcp port.
261
262         * bus/dbus-daemon.1.in: added <listen> tcp examples
263
264 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
265
266         * cmake/config.h.cmake: win32 msvc bug fix
267
268 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
269
270         * cmake/config.h.cmake: fixed DBUS_WINxx defines,
271         using _WINCE does not work.
272
273 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
274
275         * dbus-win.patch: removed _dbus_write_pipe() patch, it is now 
276         committed.
277
278 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
279
280         * bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h:
281         rename pipe related write() function calls to _dbus_write_pipe().
282
283 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
284
285         * dbus-win.patch: added bus/config-loader-libexpat.c patch, 
286         uses DBUS_WIN for alls win32 related #ifdefs, 
287         some minor cleanups
288
289 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
290
291         * dbus-win.patch: updated patch for bus/dispatch.c.
292
293 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
294
295         * dbus-win.patch: dbus-connection.c (dbus_connection_get_unix_user,
296         dbus_connection_get_unix_process_id): Let return them valid user id's, 
297         otherwise bus-test fails. How to replace on win32 ?.
298         
299         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir):
300         fix memory leak.
301
302 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
303
304         * dbus/dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error):
305         use dbus friendly error name.
306         (fill_win_user_info_homedir): print user name in error case too.
307
308 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
309
310         * cmake/ConfigureChecks.cmake: fixed socketpair check
311
312 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
313
314         * bus/dispatch.c: disabled segfault test on win32 for now
315
316 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
317
318         * configure.in, cmake/ConfigureChecks.cmake: added check 
319         for setrlimit. 
320         * test/test-segfault.c: only include setrlimit stuff only 
321         when available.  
322
323 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
324
325         * test/test-segfault.c: unix compile fix.
326         * dbus-win.patch: removed obsolate patches.
327
328 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
329
330         * bus/activation.c: removed obsolate include header.
331         * test/test-segfault.c: win32 compile fix, rlimit 
332         isn't available on win32.
333         * dbus-win.patch: removed some more patches, they
334         are applied or obsolate 
335
336 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
337
338         * bus-win.patch: fixes unix listen problems, dbus-test 
339         now runs.
340
341 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
342
343         * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
344         cmake/CMakeLists.txt: win32 compile fix
345
346 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
347
348         * dbus-win.patch, README.win: added available win32 
349         patches from windbus project (http://sf.net/projects/windbus)
350
351 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
352
353         * bus/activation.c: (bus_activation_activate_service):
354         fixed call to _dbus_spawn_async_with_babysitter().
355
356 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
357
358         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
359         added environment pointer as function parameter, used on win32.
360
361         * test/spawn-test.c: fixed call to above mentioned function.
362
363 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
364
365         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
366         added configure check for unistd.h.
367
368 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
369
370         * test/Makefile.am: fixed test data copy problem in 
371         out of source build, when sources came from svn or cvs. 
372
373 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
374
375         * dbus/*-win.*,bus/*-win.*: added win32 platform related
376         files. These files are only added to the cmake build system.  
377         The missing dbus-win.patch file will be added later. 
378
379 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
380
381         * cmake: new directory, contains cmake build support.
382         See http://www.cmake.org for more informations.
383         Currently only unix will be buildable because some 
384         win32 required files are still missing. 
385
386 2007-03-03  Thiago Macieira  <thiago@kde.org>
387
388         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
389         output and add it to the DBusError message we return.
390
391         * tools/dbus-launch.1:
392         * tools/dbus-launch.c: Add option --close-stderr to, well,
393         close stderr before starting dbus-daemon.
394
395 2007-01-31  Havoc Pennington  <hp@redhat.com>
396
397         * bus/dbus-daemon.1.in: write a section in the man page on running
398         a test daemon for debugging purposes
399
400 2007-01-26  Havoc Pennington  <hp@redhat.com>
401
402         * bus/session.conf.in: override all the default limits with much
403         higher limits on the session bus, there is no reason the session
404         bus should have low limits
405
406         * bus/config-parser.c (bus_config_parser_new): increase default
407         limits so they are less likely to be hit; in particular the max
408         replies per connection was way too low
409
410 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
411
412         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
413         a pointer to the tutorial maintained as part of dbus-python
414
415 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
416
417         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
418         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
419         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
420
421 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
422
423         * tools/dbus-monitor.c: gettimeofday() is not available 
424         on windows so we have to provide our own. It's taken from 
425         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
426
427 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
428
429         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
430         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
431         is in dbus-sysdeps-win.c (not in this patch).
432
433         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
434         with InterlockedInc/Decrement. 
435         - Patches from Christian Ehrlicher
436         
437 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
438
439         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
440
441 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
442
443         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
444         fix mispaced const statement. - Patch from Peter Kümmel
445
446 2006-12-19  Ray Strode  <rstrode@redhat.com>
447
448         * bus/bus.c (process_config_every_time):
449         don't overwrite existing bus context activation object
450         until after we've checked that the new activation is
451         valid.
452
453         * bus/main.c 
454         (signal_handler), (handle_reload_watch):
455         don't call exit() on failure, instead make do and keep
456         going.
457         (close_reload_pipe): new function to turn off
458         hangup-causes-config-reload behavior if an unexpected
459         error occurs
460
461 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
462
463         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
464         correctness fix. - Patch from Christian Ehrlicher
465
466 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
467
468         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
469         we should also use it. - Patch from Christian Ehrlicher
470
471 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
472   
473         * dbus-sysdeps-util.c: added win32 related tests
474
475 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
476
477         * dbus/dbus-string.c (_dbus_string_pop_line),
478         bus/desktop-file.c (parse_section_start,
479         parse_comment_or_blank,parse_key_value,): uses
480         _dbus_string_find_eol() to support platform independent eol style.
481
482 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
483
484         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
485         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
486               _dbus_string_find_eol().
487         Approved by: Havoc Pennington.
488
489 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
490
491         * configure.in: Added switch to disable user_database caching.
492
493         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
494         be able disable user_dabase caching.
495
496 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
497
498         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
499         struct. It is unnecessary we have a global one already. Also remove 
500         bus_context_get_user_database function, it is no longer needed.
501         Flush the global database on reload.
502
503         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
504         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
505
506         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
507         Add _dbus_user_database_flush_system. 
508         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
509         Small unrelated change in _dbus_is_a_number: change 
510         _dbus_string_parse_int to _dbus_string_parse_uint. 
511
512         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
513         _dbus_groups_from_uid.
514
515         * bus/policy.c, bus/policy.h: Change call to 
516         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
517         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
518         needs it.
519
520 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
521
522         * bus/signal.c: Fix match_rule_equal errata
523         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
524         <kimmo.hamalainen@nokia.com>)
525
526 2006-11-19  Thiago Macieira  <thiago@kde.org>
527
528         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
529         _dbus_pthread_condvar_wait,
530         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
531         pthread_self() after coming back from a conditional variable
532         wait as well as in one codepath where it was forgotten.
533         Approved by: Havoc Pennington.
534
535 2006-11-17  Havoc Pennington  <hp@redhat.com>
536
537         * update-dbus-docs.sh: allow setting fd.org username via env
538         variable. Make it run autogen with --enable-xml-docs=yes
539         --enable-doxygen-docs=yes so configure will fail if the required
540         tools are missing.
541
542 2006-11-17  Havoc Pennington  <hp@redhat.com>
543
544         * doc/dbus-faq.xml: minor FAQ tweaks
545
546 2006-11-14  Havoc Pennington  <hp@redhat.com>
547         
548         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
549         dbus_get_local_machine_id() to its own file, no substantive
550         changes. There are a couple other things we might want to add that
551         are "misc" so moving out of dbus-connection.[hc] which is big
552         enough already.
553         
554 2006-11-14  Havoc Pennington  <hp@redhat.com>
555
556         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
557         UUID had the timestamp last, but the implementation had it first;
558         move it to last since I think it's a tiny bit nicer (easier to
559         compare at a glance, faster to sort, less code), and will not
560         cause any practical compatibility problems. Also, always convert
561         the timestamp to big endian.
562
563         * doc/dbus-specification.xml: Clean up the docs on the UUID.
564
565         * tools/dbus-uuidgen.1: more prominently say it is not suitable
566         as a replacement for regular uuidgen/RFC4122.
567
568 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
569
570         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
571         the correct value so we don't assert when initalizing recursive threads
572
573         * test/name-test/test-thread-init.c: call dbus_threads_init_default
574         instead of _dbus_threads_init_debug since it is more of a real world
575         test
576
577 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
578
579         * Released 1.0.0
580
581 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
582
583         * AUTHORS: added Peter and Tor of windows porting fame
584
585 2006-11-08  Havoc Pennington  <hp@redhat.com>
586
587         * doc/dbus-specification.xml: add a note about protocol stability
588
589         * doc/TODO: Remove "important for 1.0" section, replace with
590         "important for 1.2" section
591         
592 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
593
594         * README: remove some of the out of date flags
595
596         * doc/TODO: Remove todo items which are done
597
598 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
599
600         * tools/dbus-monitor.c: Handle sigint so we flush stdout
601         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
602
603 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
604
605         * tools/dbus-monitor.1: update the manpage for dbus-monitor
606         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
607
608 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
609
610         * AUTHORS: Update with all people listed in the ChangeLog
611
612 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
613
614         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
615         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
616
617 2006-11-07  Havoc Pennington  <hp@redhat.com>
618
619         * HACKING: Update release instructions to include stuff about
620         stable releases, branching, etc. May not be totally correct,
621         please fix if needed, but keep instructions up-to-date so we do
622         each stable release consistently in the future.
623
624 2006-11-07  Havoc Pennington  <hp@redhat.com>
625
626         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
627         documentation updates. Bump faq/spec versions (not to 1.0; I don't
628         think the spec will be "finished"/1.0 when we ship the 1.0 library).
629
630 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
631
632         * bus/bus.c: Missed patch - pass in the context to the directory watch
633
634 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
635
636         * Released D-Bus 1.0 RC 3(0.95)
637
638 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
639
640         * bus/activation.c (bus_activation_new): don't fail if we can not read
641         the directory as it may not exist
642
643 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
644
645         * bus/config-parser.c (service_dirs_find_dir): use 
646         _dbus_list_get_next_link so we don't get stuck in an infinite loop
647         (start_busconfig_child): move processing of standard_session_servicedirs
648         tags here because they have no content
649         (bus_config_parser_content): check we don't have content in 
650         standard_session_servicedirs tag
651
652 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
653
654         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
655         Packagers need to own this directory
656
657 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
658
659         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
660         <standard_session_servicedirs> tag with a <sevicedir> tag that
661         points to the test service directory
662
663 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
664
665         * configure.in: Add a check for DIR *dirp->dd_fd
666
667         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
668         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
669         of both Solaris and Irix
670
671 2006-11-01  Havoc Pennington  <hp@redhat.com>
672
673         * bus/dbus-daemon.1.in: document standard_session_servicedirs
674
675 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
676
677         * configure.in: expose DBUS_DATADIR
678         
679         * bus/config-parser.c: add the standard_session_servicedirs element
680         to the parser
681         (bus_config_parser_content): process the standard_session_servicedirs
682         element by getting the standard directories from sysdeps and merging
683         them into the service directory list
684         (test_default_session_servicedirs): make sure we get what we expect
685
686         * bus/session.conf.in: replace the servicedir tag with the 
687         standard_session_servicedirs tag
688
689         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
690         dbus-sysdeps.h to avoid circular header dependencies
691
692         * dbus/dbus-sysdeps.h: add the typedef of DBusList
693
694         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
695         which takes a string of directories delimited by colons, parses them 
696         out, appends a suffix and puts them in a list ignoring empty elements
697         (_dbus_get_standard_session_servicedirs): returns the standard 
698         directories for a session bus to look for service activation files
699         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
700         DBUS_DATADIR directories
701
702         * test/data/valid-config-files/many-rules.conf: add the 
703         standard_session_servicedirs tag to the valid config file tests
704
705 2006-10-30  Havoc Pennington  <hp@redhat.com>
706
707         * tools/dbus-launch.1, doc/TODO: capture intent to change the
708         command line options of dbus-launch a bit post 1.0
709
710 2006-10-27  Havoc Pennington  <hp@redhat.com>
711         
712         * dbus/dbus-connection.c (dbus_connection_open_private): document
713         how to choose shared vs. private connections
714
715 2006-10-27  Havoc Pennington  <hp@redhat.com>
716
717         * dbus/dbus-test.c: enclose more of the file in the
718         DBUS_BUILD_TESTS check.
719
720         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
721         DBUS_DISABLE_ASSERT case.
722
723         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
724         that it only works on the server side
725
726         * dbus/dbus-bus.c: add a global lock covering the BusData we
727         attach to each connection
728         (internal_bus_get): lock our access to the BusData
729         (dbus_bus_register): lock the entire registration process
730         with _DBUS_LOCK(bus_datas). If we get the lock and 
731         registration is already complete, silently return (vs. previous
732         behavior of aborting).
733         (dbus_bus_set_unique_name): lock the BusData
734         (dbus_bus_get_unique_name): lock the BusData
735
736 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
737
738         * bus/config-parser.c (service_dirs_find_dir, 
739         service_dirs_append_unique_or_free, 
740         service_dirs_append_link_unique_or_free): New static methods
741         for only appending unique service directory names into
742         the service directory list
743         (merge_included, bus_config_parser_content): Only add unique
744         service directory names into the list
745
746 2006-10-27  Havoc Pennington  <hp@redhat.com>
747
748         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
749         variables volatile, suggested by Thiago. Document struct fields.
750         (PTHREAD_CHECK): remove pthread error checking if assertions are
751         disabled, should reduce the no-assertions case to the bare
752         minimum code.
753
754 2006-10-26  Havoc Pennington  <hp@redhat.com>
755         
756         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
757         to be recursive
758         (_dbus_pthread_mutex_unlock): make it recursive
759         (_dbus_pthread_condvar_wait): save/restore the recursion count
760         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
761
762 2006-10-26  Havoc Pennington  <hp@redhat.com>
763
764         * doc/dbus-specification.xml: clarify the UUID text slightly
765
766         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
767         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
768         in preparation for being able to extend them for e.g. recursive
769         mutexes.
770
771 2006-10-26  Havoc Pennington  <hp@redhat.com>
772
773         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
774         condition variables relate to recursive mutexes.
775         
776         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
777         dbus/dbus-threads.c: Split the platforms-specific thread 
778         implementations into their own files.
779         
780         * dbus/dbus-sysdeps-pthread.c
781         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
782         was backward. Not that anything uses it.
783
784 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
785
786         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
787         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
788         needs to be cleaned up more.
789
790         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
791         up the CREDS issue.
792
793 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
794
795         * configure.in, dbus-1.pc.in: Check to see if thread methods 
796         are in glibc or libpthread and add -lpthread to the link stage 
797         if it is the latter
798
799 2006-10-26  Thiago Macieira  <thiago@kde.org>
800
801         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
802         bug 8780: the connection lock is only required while recording
803         the shared connection, so protect only that code
804         section. Don't require connection_lookup_shared to return a
805         locked connection.
806
807 2006-10-26  Thiago Macieira  <thiago@kde.org>
808
809         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
810         check if get_machine_uuid() returns NULL before proceeding any
811         further: we can't init the X atoms or create a session file
812         name if there is no machine ID.
813         This solves a crash reported by some users if
814         --exit-with-session was used without --autolaunch=<machine-id>
815
816 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
817
818         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
819         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
820
821         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
822         before we run dbus-launch
823
824         * configure.in: define TEST_BUS_BINARY to be the full path to 
825         dbus-daemon in the build root 
826
827 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
828
829         * dbus/Makefile.am:
830         * tools/Makefile.am:
831         * toos/dbus-uuidgen.1:
832                 Move the machine-id file to /var/lib/dbus 
833
834 2006-10-24  David Zeuthen  <davidz@redhat.com>
835
836         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
837         _dbus_assert (thread_init_generation != _dbus_current_generation)
838         not _dbus_assert (thread_init_generation == _dbus_current_generation)
839
840 2006-10-24  Thiago Macieira  <thiago@kde.org>
841
842         * dbus/dbus-sysdeps.h:
843         * dbus/dbus-sysdeps-unix.c: Add function
844         _dbus_make_file_world_readable that chmods a file to 0644.
845
846         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
847         Avoid writing to the static "argv" array, thereby avoiding a
848         COW on the child process.
849
850         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
851         call _dbus_make_file_world_readable on the created file.
852
853 2006-10-23  David Zeuthen  <davidz@redhat.com>
854
855         * dbus/dbus-memory.c: Use atomic variable to protect
856         n_blocks_outstanding otherwise OOM will be reported using SMP on
857         some arches
858         
859         * bus/dispatch.c: Add missing end of line characters
860
861         * bus/desktop-file.c (parse_section_start, parse_key_value) 
862         (bus_desktop_file_load): Propertly handle OOM
863
864         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
865         thread_init_generation equals _dbus_current_generation, not 0
866
867 2006-10-22  Havoc Pennington  <hp@redhat.com>
868
869         * dbus/dbus-connection-internal.h: move prototype of
870         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
871         it isn't in a public header and doesn't end up in the DBusBus
872         group in Doxygen
873
874 2006-10-21  Havoc Pennington  <hp@redhat.com>
875
876         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
877         the tarball if packagers want to run it
878
879         * cleanup-man-pages.sh: Add a script which munges all the internal
880         API man pages out of the Doxygen output. This reduces the size of
881         the installed man pages from 7 to 2 megs, and avoids
882         namespace-polluting pages. Right now (like Doxygen) this script
883         isn't in the build, it's something packagers can do manually.
884
885 2006-10-21  Havoc Pennington  <hp@redhat.com>
886
887         * dbus/dbus-connection.h: don't include the watch/timeout
888         functions in connection section
889
890 2006-10-21  Havoc Pennington  <hp@redhat.com>
891
892         * Documentation! Whee! Doxygen now 100% silent. If you make it
893         angry again, you will be punished.
894         
895 2006-10-21  Havoc Pennington  <hp@redhat.com>
896
897         * More documentation - all public API now documented according to
898         Doxygen
899
900 2006-10-21  Havoc Pennington  <hp@redhat.com>
901
902         * Document a bunch of undocumented stuff
903         
904 2006-10-21  Havoc Pennington  <hp@redhat.com>
905
906         * Clean up Doxygen group markers for public API so Doxygen finds
907         everything (not comprehensively fixed for private API).
908         Means all remaining Doxygen warnings are just about missing docs
909         and thus pretty simple to resolve.
910         
911 2006-10-21  Havoc Pennington  <hp@redhat.com>
912         
913         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
914
915         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
916         as DBUS_GNUC_DEPRECATED
917
918 2006-10-21  Havoc Pennington  <hp@redhat.com>
919
920         * Move all private API into the private Doxygen group sections of
921         the files, so they don't show up in the public API docs
922         
923 2006-10-21  Havoc Pennington  <hp@redhat.com>
924
925         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
926         dbus_message_iter_get_array_len().
927
928         * throughout: documentation improvements.
929
930 2006-10-20  Havoc Pennington  <hp@redhat.com>
931
932         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
933         matter, and the message-loader-breaker thing since nobody is going
934         to do it.  Add an item to 1.0 about supporting recursive locks
935         in dbus_threads_init_default() though, since it should be easy.
936
937         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
938         Fix this in the !dispatch case to avoid busy-looping after
939         disconnection
940
941         * More misc docs improvements
942
943 2006-10-19  Havoc Pennington  <hp@redhat.com>
944
945         * more Doxygen-related fixes (lots of moving things from the
946         public to internal section in dbus-connection.c)
947
948 2006-10-19  Havoc Pennington  <hp@redhat.com>
949
950         * Fix a pile of Doxygen warnings and missing docs
951
952 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
953
954         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
955         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
956         instead of a void *.  kqueue uses this to get the context's loop
957         while the other modules ignore the parameter.  This allows us to
958         avoid platform conditionals
959
960         * bus/bus.c (process_config_postinit): Pass in the context to the 
961         watch
962
963 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
964
965         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
966         when starting the system bus
967
968 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
969
970         * configure.in: More fixups for cross compile (Patch from 
971         Marco Pracucci <development at pracucci dot com>)
972
973 2006-10-17  Havoc Pennington  <hp@redhat.com>
974
975         * tools/dbus-send.c (main): don't close shared connection, fix
976         from Timo Hoenig
977
978 2006-10-17  Havoc Pennington  <hp@redhat.com>
979
980         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
981
982         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
983         since realistically it doesn't look like we'll be changing it
984         anymore.
985
986 2006-10-17  Havoc Pennington  <hp@redhat.com>
987
988         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
989         be used for return_if_fail type warnings; prefixes the pid, and
990         fatal by default.
991
992 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
993
994         * configure.in: Released 1.0 RC 2(0.94)
995         Add check for -fPIC and enable it if available
996
997 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
998
999         * doc/TODO: Remove the check TODO item
1000
1001 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
1002
1003         * dbus-transport-socket.c (exchange_credentials):
1004         Print out more detailed errors if reading or sending
1005         credentials fail (Patch from Julio M. Merino Vidal 
1006         <jmmv at NetBSD dot org>)
1007
1008 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
1009
1010         * configure.in: when checking for posix getpwnam_r assume true
1011         for cross compiles
1012
1013 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
1014
1015         * configure.in: Check for gethostbyname first before we check for it
1016         in libnsl.  On gnu systems it is implemeneted 
1017
1018 2006-10-13  Havoc Pennington  <hp@redhat.com>
1019
1020         * dbus/dbus-connection.c
1021         (dbus_connection_send_with_reply_and_block): fix to handle closed
1022         connections, from Tambet Ingo bug #8631
1023
1024 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
1025
1026         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
1027
1028 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
1029
1030         * test/name-test/Makefile.am: don't link against both libdbus and
1031         libdbus-convenience
1032
1033 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
1034
1035         * configure.in: check for dirfd even if it is a macro
1036         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
1037
1038 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
1039
1040         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
1041         avoid using dirfd on systems that don't have dirfd 
1042         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
1043
1044 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
1045
1046         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
1047         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
1048
1049         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
1050         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
1051         macro because _dbus_abort calls it
1052
1053         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
1054         works
1055
1056 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
1057
1058         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
1059         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
1060
1061 2006-10-02  Thiago Macieira  <thiago@kde.org>
1062
1063         * tools/dbus-launch.c (main): make it complain and abort
1064         execution in case an unknown option is given. Also, process
1065         the '--' argument as the end of arguments.
1066
1067 2006-10-01  Havoc Pennington  <hp@redhat.com>
1068
1069         * tools/dbus-launch.c (print_variables): if no syntax is given,
1070         don't print something that's sort-of-half-sh-syntax, just print
1071         a plain key-value pairs thing.
1072
1073         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
1074         the local machine representation (but still have the hostname in
1075         the display). Remove the hostname from the display if it is
1076         localhost. Change session files to be named
1077         ~/.dbus/session-bus/machine-display. Change X atoms to be
1078         underscore-prefixed so nobody whines about ICCCM compliance.
1079         Otherwise name them the same as the env variables.
1080         Change session file format to include key-value pairs and an
1081         explanatory comment. Keys are the same as the env variables.
1082         (set_address_in_x11): X property format can't depend on
1083         sizeof(pid_t) on a particular machine, fix to always be 32 bits
1084
1085         * tools/dbus-launch.c: make --autolaunch take a machine id
1086         argument. If --autolaunch is used with a program to run, complain
1087         for now (but add a FIXME). Also, don't look for existing bus if 
1088         there's a program to run (but add a FIXME).
1089
1090         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
1091         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
1092         just to get this, and avoids duplicating uuid-reading code).
1093
1094         * tools/dbus-launch.1: clarify various things
1095         
1096 2006-10-01  Havoc Pennington  <hp@redhat.com>
1097
1098         * test/test-service.c (path_message_func): remove broken extra
1099         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
1100
1101         * test/test-shell-service.c (path_message_func): same fix
1102         
1103         * dbus/dbus-connection.c
1104         (_dbus_connection_get_dispatch_status_unlocked): break up the
1105         function a little for clarity and fix the notification of
1106         dbus-bus.c to not require dispatch to be complete
1107
1108         * dbus/dbus-connection.c (dbus_connection_unref): improve the
1109         warning when you try to finalize an open connection.
1110         
1111 2006-10-01  Havoc Pennington  <hp@redhat.com>
1112
1113         * dbus/dbus-bus.c
1114         (internal_bus_get): only weak ref the connection; this means 
1115         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
1116         called safely in any context
1117         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
1118         unref
1119
1120         * dbus/dbus-connection.c
1121         (_dbus_connection_get_dispatch_status_unlocked): move
1122         _dbus_bus_notify_shared_connection_disconnected_unlocked here
1123         when queuing Disconnected instead of when the Disconnected message
1124         arrives, so dbus_bus_get() won't return closed connections.
1125         
1126 2006-10-01  Havoc Pennington  <hp@redhat.com>
1127
1128         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
1129         Add a hack to make DBusNewConnectionFunction work right.
1130
1131         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
1132         the hack here. Also, fix the todo about refcount leak.
1133         
1134         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1135         and use the hack here
1136         
1137         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
1138         "shareable" flag; this was completely broken, since it meant 
1139         dbus_connection_open() returned a connection of unknown
1140         shared-ness. Now, we always hold a ref on anything opened 
1141         as shareable.
1142
1143         Move the call to notify dbus-bus.c into
1144         connection_forget_shared_unlocked, so libdbus consistently forgets
1145         all its knowledge of a connection at once. This exposed numerous
1146         places where things were totally broken if we dropped a ref inside
1147         get_dispatch_status_unlocked where
1148         connection_forget_shared_unlocked was previously, so move
1149         connection_forget_shared_unlocked into
1150         _dbus_connection_update_dispatch_status_and_unlock. Also move the
1151         exit_on_disconnect here.
1152
1153         (shared_connections_shutdown): this assumed weak refs to the
1154         shared connections; since we have strong refs now, the assertion 
1155         was failing and stuff was left in the hash. Fix it to close
1156         still-open shared connections.
1157         
1158         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
1159         debug pipe connections
1160         
1161         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
1162         dbus-bus.c if the closed connection is in fact shared
1163         (_dbus_connection_close_possibly_shared): rename from 
1164         _dbus_connection_close_internal
1165         (dbus_connection_close, dbus_connection_open,
1166         dbus_connection_open_private): Improve docs to explain the deal
1167         with when you should close or unref or both
1168
1169         * dbus/dbus-bus.c
1170         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
1171         from _dbus_bus_check_connection_and_unref_unlocked and modify to
1172         loop over all connections
1173
1174         * test/test-utils.c (test_connection_shutdown): don't try to close
1175         shared connections.
1176
1177         * test/name-test/test-threads-init.c (main): fix warnings in here
1178
1179         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
1180         env variable to cause blocking waiting for gdb; drop
1181         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
1182         unconditionally.
1183
1184         * configure.in: add -export-dynamic to libtool flags if assertions enabled
1185         so _dbus_print_backtrace works.
1186
1187         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
1188         instead of _dbus_verbose to print the backtrace, and diagnose lack 
1189         of -rdynamic/-export-dynamic
1190         
1191 2006-09-30  Havoc Pennington  <hp@redhat.com>
1192
1193         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
1194         (internal_bus_get): fix screwy code formatting. whoever committed
1195         that was not paying attention!
1196
1197 2006-09-30  Havoc Pennington  <hp@redhat.com>
1198
1199         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
1200         reflect addition of interfaces.
1201
1202         * doc/dbus-specification.xml: describe a new
1203         org.freedesktop.DBus.Peer.GetMachineId method
1204
1205         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
1206         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
1207         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
1208         at end of skip_white
1209         (_dbus_string_chop_white): new function
1210
1211         * bus/connection.c (bus_connections_setup_connection): call
1212         dbus_connection_set_route_peer_messages.
1213
1214         * dbus/dbus-connection.c
1215         (_dbus_connection_peer_filter_unlocked_no_update): modify to
1216         support a GetMachineId method.
1217
1218         Also, support a new flag to let the bus pass peer methods through
1219         to apps on the bus, which can be set with
1220         dbus_connection_set_route_peer_messages.
1221
1222         Finally, handle and return an error for anything unknown on the
1223         Peer interface, which will allow us to extend the Peer interface
1224         in the future without fear that we're now intercepting something
1225         apps were wanting to see.
1226         
1227         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
1228         dbus/dbus-uuidgen.c
1229
1230         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
1231         binary here, since most of the code is already in libdbus
1232
1233         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
1234         uuid from the system config file
1235
1236         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
1237         (_dbus_read_uuid_file_without_creating) 
1238         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
1239         uuid-related functions, partly factored out from dbus-server.c
1240
1241         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
1242         DBUS_ERROR_FILE_EXISTS instead of EEXIST
1243
1244         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
1245
1246         * tools/dbus-cleanup-sockets.1: explain what the point of this
1247         thing is a bit more
1248
1249         * autogen.sh (run_configure): add --config-cache to default
1250         configure args
1251
1252         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
1253         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
1254
1255         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
1256         don't try to save address, fixes crash in make check
1257         
1258 2006-09-30  Thiago Macieira  <thiago@kde.org>
1259
1260         * configure.in: add DBUS_BINDIR as a #define to C source code.
1261
1262         * tools/dbus-launch.c
1263         * tools/dbus-launch.h
1264         * tools/dbus-launch-x11.c:
1265         * tools/dbus-launch.1: Add the --autolaunch option to
1266         dbus-launch, which makes it scan for an existing session
1267         started with --autolaunch. With that option, it also creates
1268         an X11 window and saves the bus address and PID to it.
1269
1270         * dbus/dbus-sysdeps.h:
1271         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
1272         a function that runs "dbus-launch --autolaunch" to retrieve
1273         the running D-Bus session address (or start one if none was running)
1274
1275         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
1276         address protocol, which tries to get the running session from
1277         dbus-launch.
1278
1279         * dbus/dbus-bus.c:
1280         * dbus/dbus-internals.h: Make "autolaunch:" be the default
1281         D-Bus session bus address.
1282
1283         * dbus/dbus-connection.c: Fix horrible typo in error message.
1284
1285 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
1286
1287         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
1288
1289 2006-09-17  Havoc Pennington  <hp@redhat.com>
1290
1291         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1292         fix so that if unix_user_function is set on windows, we still
1293         do the default check that the auth identity matches the bus identity
1294
1295 2006-09-16  Havoc Pennington  <hp@redhat.com>
1296
1297         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
1298         to _dbus_transport_open_platform_specific,
1299         _dbus_transport_open_socket,
1300         and _dbus_transport_open_debug_pipe
1301
1302         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
1303
1304 2006-09-16  Havoc Pennington  <hp@redhat.com>
1305
1306         Attempt auditing public API to remove all cases where a Unix
1307         function returns weird emulated goo to Windows. This probably 
1308         breaks the bus daemon on Windows, to fix it again we may 
1309         need to stop processing unix-specific config options on Windows,
1310         and may need to add Windows-specific public API or config options.
1311         
1312         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
1313         to reflect added interfaces; should not break soname.
1314         
1315         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
1316         not invoke unix user function on Windows. Kind of a hacky fix, but 
1317         we don't want a "unix uid" leaking out on Windows.
1318
1319         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
1320         to get the socket fd on Windows or UNIX
1321         (dbus_connection_get_unix_fd): make this always fail on Windows
1322
1323 2006-09-16  Havoc Pennington  <hp@redhat.com>
1324
1325         * dbus/dbus-server.c (dbus_server_listen): change how this works
1326         to be able to delegate to a set of handlers that can succeed,
1327         fail, or choose not to handle. Allows us to have 
1328         dbus_server_listen_platform_specific.
1329
1330         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
1331         factor out the tcp socket stuff to be used on windows, leaving
1332         unix domain socket only in dbus-socket-unix.c
1333
1334         * dbus/dbus-transport-socket.c
1335         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
1336         stuff to be used on windows, leaving unix domain socket only 
1337         in dbus-transport-unix.c
1338
1339         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
1340         temporary hack to be sure this fails on windows
1341         (dbus_connection_get_unix_process_id): ditto
1342
1343 2006-09-16  Havoc Pennington  <hp@redhat.com>
1344
1345         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1346         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1347         _dbus_open_socket so the domain/type/protocol from system headers
1348         are not required. This is kind of pointless though unless we move
1349         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1350         sysdeps-unix.c, which would mean adding a wrapper around
1351         bind/listen/etc.
1352         Also, add DBusError to the socket-opening functions so they 
1353         don't require use of errno.
1354
1355 2006-09-16  Havoc Pennington  <hp@redhat.com>
1356
1357         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1358         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1359
1360         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1361         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1362         functions specifically for sockets only, and move generic 
1363         read/write/open/close into unix-specific code.
1364
1365 2006-09-14  Havoc Pennington  <hp@redhat.com>
1366
1367         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1368         complaint about accessing revents when poll returns 0, from Julian Seward.
1369
1370 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1371
1372         * Released 1.0 RC 1 (0.93) 
1373
1374 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1375
1376         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1377         use _dbus_close instead of close
1378
1379 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1380
1381         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1382         credentials.  Fixes "external" authentication under e.g. NetBSD
1383         which does not support any other socket credentials mechanism.
1384         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1385
1386 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1387
1388         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1389         dbus_threads_init and be used by the dbus mutex functions to
1390         avoid deadlocks.
1391
1392         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1393
1394 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1395
1396         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1397         use threadsafe readdir_r instead of readdir
1398
1399 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1400
1401         * dbus-threads.c (dbus_threads_init_default): New method for
1402         initializing the internal thread implementation (Patch from
1403         Alexander Larsson <alexl at redhat dot com>)
1404
1405 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1406
1407         * remove a bunch of todo items from the 1.0 list
1408
1409 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1410
1411         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1412         key not found
1413
1414 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1415
1416         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1417         complex debugging code
1418
1419         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1420         between the test suite ifdefs
1421         (_dbus_verbose_bytes): return if verbosity is not enabled 
1422
1423 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1424
1425         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1426         remove DBusMark
1427
1428 2006-09-10  Havoc Pennington  <hp@redhat.com>
1429
1430        patch mostly by Peter Kümmel, bug #8211
1431         
1432         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1433         unix-specific stuff in dbus-sysdeps.c
1434
1435         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1436         and move unix-specific stuff to dbus-sysdeps-unix.c
1437
1438         * configure.in: check HAVE_ERRNO_H
1439         
1440 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1441
1442         * bus/test-main.c (main): Initialize threading during tests
1443
1444         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1445         Unlock connection on error
1446         (generate_local_error_message): static method for generating
1447         an error message when we don't have a message to reply to
1448         (_dbus_connection_block_pending_call): Send a disconnect error
1449         instead of just a timeout (NULL) when the bus gets disconnected
1450         while blocking for a reply.
1451         
1452 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1453
1454         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1455         filters (Patch from Kimmo Hämäläinen 
1456         <kimmo dot hamalainen at nokia dot com>)
1457
1458 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1459
1460         * dbus/dbus-connection-internal.h: Add prototype for 
1461         _dbus_connection_test_get_locks to remove warning
1462
1463 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1464
1465         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1466         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1467         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1468
1469 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1470
1471         * Clean up close calls to use _dbus_close (Patch from 
1472         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1473
1474 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1475
1476         * doc/TODO:
1477         - Remove pending call locking todo item
1478         - dbus_connection_open now holds hard ref.  Remove todo item
1479         - do proper locking on _dbus_bus_check_connection_and_unref
1480           and handle DBUS_BUS_STARTER. Remove todo item
1481         - Warn on closing of a shared connection.  Remove todo item
1482
1483         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1484         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1485         so we don't get the warning when closing shared connections
1486
1487         * test/test-service.c, test/test-shell-service.c: Applications
1488         don't close shared connections themselves so we unref instead of
1489         close
1490
1491         * test/test-utils.c (test_connection_shutdown): Close the connection
1492
1493         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1494         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1495         method on a locked connection.  
1496         Make sure we call _dbus_connection_unref_unlocked instead of 
1497         dbus_connection_unref also.
1498         Handle DBUS_BUS_STARTER correctly
1499
1500         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1501         Mark as shared and hard ref the connection
1502         (connection_forget_shared_unlocked): Remove the hard ref from the 
1503         connection
1504         (_dbus_connection_close_internal_and_unlock):  New internal function
1505         which takes a locked connection and unlocks it after closing it
1506         (_dbus_connection_close_internal): New internal function which acts
1507         like the origonal dbus_connection_close method by grabbing a connection
1508         lock and calling _dbus_connection_close_internal_and_unlock
1509         (dbus_connection_close): Public close method, warns when the app
1510         trys to close a shared connection
1511
1512 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1513
1514         * bus/driver.c:
1515         (bus_driver_generate_introspect_string): New method for populating
1516         a DBusString with the introspect data
1517         (bus_driver_handle_introspect): Move introspect generation code to 
1518         bus_driver_generate_introspect_string
1519
1520         * bus/main.c:
1521         (introspect): New function which prints out the intropect data and
1522         exits
1523         (main): Add a --introspect switch
1524
1525 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1526
1527         * doc/TODO: Removed dtd publishing item.  
1528         It seems the dtd has already been added at
1529         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1530
1531 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1532
1533         * doc/TODO, various source files: Audited todo's and FIXME's and
1534         prepended the ones we should be looking at with 1.0.  Those
1535         prepended with 1.0? need clerification or might not be needed
1536         for 1.0
1537
1538 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1539
1540         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1541         NULL in the public API (Patch from Kimmo Hämäläinen 
1542         <kimmo dot hamalainen at nokia dot com>)
1543
1544 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1545
1546         * configure.in: Fix for OS-X compile time endian issues (patch from
1547         Benjamin Reed <ranger at befunk dot com>)
1548
1549 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1550
1551         * configure.in: Check for no-common compiler flag (OS-X fix from
1552         Benjamin Reed <ranger at befunk dot com>)
1553
1554 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1555
1556         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1557         <fcrozat at mandriva dot com>)
1558
1559 2006-08-29  Havoc Pennington  <hp@redhat.com>
1560
1561         * test/test-service.c (path_message_func): fix lack of return value
1562
1563         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1564         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1565         any more sense than on anything else in this file.
1566         (_dbus_get_tmpdir): add const to return value, and keep the
1567         results of the various getenv around in a static variable.
1568
1569 2006-08-29  Havoc Pennington  <hp@redhat.com>
1570
1571         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1572         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1573
1574 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1575
1576         * test/Makefile.am: change find to use syntax that works with non
1577         gnu versions of find
1578
1579 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1580
1581         * dbus/dbus-transport.c: fix invalid deref when checking if
1582         a vtable method exists (Patch from Christian Ehrlicher 
1583         <ch dot ehrlicher at gmx dot de>)
1584
1585 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1586
1587         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1588         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1589         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1590         <bernard at brenda-arkle dot demon dot co dot uk>)
1591
1592 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1593
1594         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1595         default case
1596
1597 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1598
1599         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1600         it works on any system providing this interface, not only FreeBSD.
1601         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1602
1603 2006-08-20  Havoc Pennington  <hp@redhat.com>
1604
1605         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1606         the docs
1607
1608 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1609
1610         * Released 0.92 
1611
1612 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1613
1614         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1615         to reflect the init late change
1616
1617         * bus/bus.c (bus_context_new): Check user before we fork so we can
1618         print out an error message a user will be able to see
1619
1620 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1621
1622         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1623
1624         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1625         Add two more global locks for use on windows platforms.  These are
1626         unused on non-windows platforms but are not ifdefed out to avoid
1627         potential bugs (i.e. the few bytes lost does not warrent the extra
1628         maintanence and complexity that having seperate sets of locks would
1629         cause)
1630
1631 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1632
1633         * bus/services.c (bus_registry_acquire_service): Return an error
1634         when an application tries to register the org.freedesktop.DBus Bus Name
1635
1636         * bus/services.c (bus_registry_release_service): Return an error
1637         when an application tries to release the org.freedesktop.DBus Bus Name
1638
1639 2006-08-17  Alp Toker  <alp@atoker.com>
1640
1641         * doc/dbus-specification.xml: Fix some minor typos.
1642
1643 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1644
1645         * configure.in: use $with_init_scripts instead of $operating_system
1646         to determine where to store the pid since the init scripts manipulate 
1647         the pid file (patch from Marcelo Ricardo Leitner 
1648         <marcelo dot leitner at terra dot com dot br>.  
1649
1650 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1651
1652         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1653         static DBusList *uninitialized_condvar_list to support new late 
1654         initialization threading model.  In this model threads can be initialized
1655         even after the D-Bus API has been used but still needs to be initialized 
1656         before the second thread has been started.  Mutexes and condvar addresses
1657         are stored in the two static lists and are replaced with actuall locks
1658         when threads are initalized.
1659         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1660         the location into the static list
1661         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1662         from the static list and freeing the mutex
1663         (_dbus_condvar_new_at_location): New method for creating a conditional 
1664         variable and placing the location into the static list
1665         (_dbus_condvar_free_at_location): New method for removing a conditional
1666         variable location from the static list and freeing the conditional variable 
1667         (init_uninitialized_locks): Atomic method which goes through the static 
1668         lists of mutex and condvar location and updates them with actuall locks
1669         (init_global_locks): changed to init_locks
1670         
1671         * dbus/dbus-connection.c:
1672         (_dbus_connection_test_get_locks): New method for tests to check connections
1673         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1674         condvar API
1675         (dbus_connection_allocate_data_slot): Pass in the global lock address
1676         to _dbus_data_slot_allocator_alloc
1677
1678         * dbus/dbus-dataslot.c:
1679         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1680         instead of the mutex itself
1681
1682         * dbus/dbus-message.c:
1683         (dbus_message_allocate_data_slot): Pass in the global lock address
1684         to _dbus_data_slot_allocator_alloc
1685
1686         * dbus/dbus-pending-call.c:
1687         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1688         to _dbus_data_slot_allocator_alloc
1689
1690         * dbus/dbus-server.c:
1691         (_dbus_server_init_base): Use the new at_location mutex API
1692         (dbus_server_allocate_data_slot): Pass in the global lock address
1693         to _dbus_data_slot_allocator_alloc
1694
1695         * test/name-test/test-threads-init.c: New test case for late thread
1696         initialization
1697
1698 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1699
1700         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1701         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1702         causes compile problems when asserts are turned off
1703         Keeping _dbus_warn for printing out the message so even if
1704         asserts are turned off the user gets the messages that something is 
1705         wrong 
1706
1707 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1708
1709         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1710
1711         * bus/services.c (bus_service_list_queued_owners):
1712         Add a pointer cast to fix compiler warning
1713
1714         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1715         return a NULL instead of FALSE since the return type
1716         is not expecting a boolean
1717
1718         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1719         Remove unused variable
1720
1721         * dbus/dbus-marshal-recursive-util.c (node_new):
1722         return a NULL instead of FALSE since the return type
1723         is not expecting a boolean
1724
1725         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1726         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1727         because we are expecting a pointer not a boolean
1728
1729         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1730         add void as the parameter so some compilers
1731         don't complain
1732
1733         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1734           _dbus_transport_new_for_tcp_socket):
1735         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1736         because we are expecting a pointer not a boolean
1737
1738         * test/shell-test.c (test_command_line):
1739         cast the second argument to _dbus_list_append to avoid compiler
1740         warnings
1741
1742         * test/test-names.c (main): remove unused variable
1743
1744         * test/test-service.c (check_hello_from_self_reply):
1745         Initialize echo_message and echo_reply to NULL
1746         
1747         * test/test-shell-service.c (handle_echo):
1748         Remove unused variable and cast the third parameter passed to
1749         dbus_connection_get_object_path_data to avoid compiler warrnings
1750
1751         * test/name-test/test-names.c (clear_message_queue):
1752         Remove unused function
1753
1754         * test/name-test/test-pending-call-dispatch.c:
1755         Fix format string in printf
1756
1757
1758 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1759
1760         * dbus/dbus-bus.c:
1761         * test/name-test/test-names.c:
1762         Remove test method dbus_bus_connection_get_unique_name because 
1763         we already have public method dbus_bus_get_unique_name that 
1764         does the exact same thing
1765
1766 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1767
1768         * dbus/dbus-signature.c:
1769         fix typos in Julio's previous patch which cause make check to fail
1770
1771 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1772
1773         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1774         In any case it was wrong since this is a test checking to see if
1775         address parsing is correct.  There was no need to get the true
1776         tmp directory.  
1777
1778 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1779
1780         * dbus/dbus-macros.h: Revert the addition of stddef.h
1781         as we should not be adding it to library headers 
1782
1783 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1784
1785         * dbus/dbus-signature.c:
1786         Fix the unit tests so that they work if assertions are not enabled.
1787         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1788
1789 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1790
1791         * tools/run-with-tmp-session-bus.sh:
1792         * test/name-test/run-test.sh:
1793         Remove bashisms (patch from Julio M. Merino Vidal
1794         <jmmv at NetBSD dot org>)
1795
1796 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1797
1798         * configure.in: add a version (>= 2.6.0) check for libxml2
1799
1800 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1801
1802         * configure.in: make sure the compiler supports -Wfloat-equal
1803         
1804         * bus/dir-watch-dnotify.c: move functional code after 
1805         variable declerations (C99 fix)  (patches from Jens Granseuer
1806         <jensgr at gmx dot net>
1807
1808 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1809
1810         * dbus/dbus-macros.h:
1811         add #include <stddef.h> so that Sun compilers don't complain about
1812         the defining NULL
1813
1814 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1815
1816         * dbus/dbus-sysdeps.c:
1817         * dbus/dbus-address.c:
1818         * bus/activation.c:
1819         * test/shell-test.c:
1820         don't hardcode tmp directory (patch from Dave Meikle 
1821         <dmk at davemeikle dot co dot uk>)
1822
1823 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1824
1825         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1826         Change an assert to a detailed warning and abort.  
1827         When allocator->lock != mutex it indicates that the user has failed
1828         to initalize threads before using the D-Bus library.  This warning
1829         helps the user identify the issue and fix their app.
1830
1831 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1832
1833         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1834         with cleanups of bugs found from Coverity reports:
1835
1836         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1837         close the file on error to avoid a leak
1838
1839         * bus/expirelist.c (bus_expire_list_test):
1840         Check for NULL on dbus_new0
1841
1842         * bus/activation.c (update_directory):
1843         remove dead code
1844
1845         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1846         Fix some leaks
1847
1848         * bus/bus.c (process_config_every_time):
1849         Fixed a leak
1850
1851         * bus/desktop-file.c (parse_key_value):
1852         Fixed leak
1853
1854         * bus/selinux.c (bus_selinux_id_table_insert):
1855         Fixed leak
1856
1857 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1858
1859         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1860         remove dead code
1861
1862 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1863
1864         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1865         #!/bin/bash
1866
1867 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1868
1869         * Doxyfile.in: fix the INPUT line so we can generate docs 
1870         when sourcedir != builddir (patch from Cygwin Ports maintainer
1871         <yselkowitz at users dot sourceforge dot net>
1872
1873 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1874
1875         * dbus/dbus-sysdeps.h:
1876         * dbus/dbus-sysdeps.c: 
1877         * dbus/dbus-string.c: 
1878         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1879         GLib's function which does the same thing
1880
1881         * configure.in:
1882         * bus/Makefile.am:
1883         * bus/dir-watch-default.c:
1884         * bus/dir-watch-dnotify.c:
1885         * bus/dir-watch-kqueue.c:
1886         Add kqueue directory watching for freebsd and split the directory
1887         watching code into seperate files per method/arch
1888         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1889
1890 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1891
1892         * configure.in:
1893         * tools/Makefile.am:
1894         * tools/dbus-launch.c:
1895         * bus/Makefile.am:
1896         allow --with-dbus-daemondir switch to be used to make the
1897         daemon install to a seperate bindir like /usr/libexec
1898         (patch from Brian Cameron <brian dot cameron at sun dot com)
1899
1900 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1901
1902         * bus/Makefile.am (install-data-hook): removed the slash after 
1903         $(DESTDIR) so we don't get the double slash which does not work
1904         in windows (patch from Andras Porjesz 
1905         <andras dot porjesz at siemens dot com>)
1906
1907 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1908
1909         * dbus/dbus-sysdeps.h:
1910         * dbus/dbus-sysdeps.c: 
1911           add _dbus_printf_length (patch from Peter Kümmel 
1912           <syntheticpp at gmx dot net>)
1913
1914 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1915
1916         * dbus/dbus-internals.c: unistd.h is not used 
1917         (_dbus_verbose_real): only enable verbose printing 
1918         if DBUS_VERBOSE environment var is set to '1'
1919         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1920
1921 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1922
1923         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1924         so we still compile on older gcc (patch from Frederic Peters 
1925         <fpeters at 0d dot be>
1926
1927 2006-08-04  Havoc Pennington  <hp@redhat.com>
1928
1929         * configure.in: add -Wdeclaration-after-statement
1930
1931         * dbus/dbus-connection.c: change all the pending call stuff to
1932         reflect the fact that pending call operations use the connection
1933         lock
1934
1935         * dbus/dbus-pending-call.c: add locking here
1936
1937         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1938         field const consistent with how message field is done
1939
1940 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1941
1942         * s/D-BUS/D-Bus/g
1943
1944 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1945
1946         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1947         <in7y118 at public.uni-hamburg dot de> - fix invalid
1948         read/write reported by valgrind
1949
1950 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1951
1952         * Released 0.91
1953
1954 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1955
1956         * dbus/dbus-connection.c:
1957         (_dbus_connection_attach_pending_call_unlocked):
1958         (connection_timeout_and_complete_all_pending_calls_unlocked):
1959         Make sure we set timeout_added on pending calls to FALSE when
1960         we remove the timeout from the connection
1961
1962 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1963
1964         * Removed some extra bindings stuff lingering around (thanks timo)
1965         * dbus-pendingcall.c (_dbus_pending_call_new): 
1966         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1967         when we tried to take a lock on an already locked connection
1968
1969 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1970
1971         * Released 0.90
1972
1973 2006-07-17  Havoc Pennington  <hp@redhat.com>
1974
1975         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1976         ints, reported by Owen Taylor
1977
1978 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1979
1980         * doc/TODO:
1981         * dbus/dbus-bus.c:
1982         * dbus-errors.c:
1983         * dbus/dbus-marshal-validate.c:
1984           Removed TODO items which were fixed or are no longer relevent
1985
1986 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1987
1988         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1989         Remove stray files from the stripped bindings
1990
1991 2006-07-16  Havoc Pennington  <hp@redhat.com>
1992
1993         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1994         Improve the error message on reply timeout
1995
1996 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1997
1998         * Remove all bindings
1999
2000 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
2001
2002         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
2003         and set pending_reply out arg to NULL is connection is disconnected
2004         (connection_timeout_and_complete_all_pending_calls_unlocked): New
2005         static method for cleaning up pending calls on disconnect
2006         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
2007         calls queued timeouts on disconnect 
2008
2009          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
2010         Remove 
2011
2012 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
2013
2014         * bus/activation.[ch] (bus_activation_list_services): new function to 
2015         get the list of services that can be activated
2016
2017         * bus/dispatch.c: test coverage for the new bus method
2018         ListActivatableNames
2019
2020         * bus/driver.c: new bus method ListActivatableNames to get the list of
2021         services that can be activated
2022
2023         * doc/dbus-specification.xml: ListActivatableNames method documentation
2024
2025 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
2026         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
2027         source files
2028
2029 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
2030         * dbus/dbus-message-factory.c:
2031         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
2032
2033 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
2034         * dbus/dbus-connection-internal.h:
2035         * dbus/dbus-connection.c:
2036         * file dbus/dbus-pending-call.c:
2037         * dbus/dbus-pending-call.h:
2038         Make DBusPendingCall an opaque type even to D-Bus internals
2039
2040 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
2041
2042         * dbus/dbus-connection.h: remove connection_disconnect and replace with
2043         connection_close
2044
2045         * dbus/dbus-connection.c: include dbus-bus.h
2046         (_dbus_connection_read_write_dispatch): make static
2047
2048 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
2049
2050         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
2051         function
2052         (dbus_connection_dispatch): On disconnect unref any shared connections
2053
2054         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
2055         for cleaning up shared connections on disconnect
2056         (internal_bus_get): get a hard refrence to shared connections when
2057         they are created
2058         
2059         * doc/TODO: Remove items which are no longer relevent or have been fixed
2060         Split 1.0 todo items with a 0.90 freeze todo list
2061  
2062 2006-06-14  Ross Burton  <ross@openedhand.com>
2063
2064         * glib/dbus-gobject.c:
2065         Free a leaking GArray (surely not!) in dbus_g_method_return.
2066
2067 2006-06-14  Ross Burton  <ross@openedhand.com>
2068
2069         * tools/Makefile.am:
2070         * tools/dbus-monitor.c:
2071         Don't use the GLib bindings in dbus-monitor (patch from Ralf
2072         Habacker).
2073         
2074 2006-06-14  Ross Burton  <ross@openedhand.com>
2075
2076         * tools/dbus-print-message.c:
2077         Also print the object path when outputting signals or method calls.
2078
2079 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
2080
2081         * qt/src/Makefile.am: install the qdbus.h header.
2082         This allows people to actually use the installed code.
2083
2084 2006-06-12  Ross Burton  <ross@openedhand.com>
2085
2086         * glib/dbus-gproxy.c:
2087         Don't leak a GArray when firing signals (thank Rob Taylor for review).
2088
2089 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2090
2091         * Released 0.62
2092
2093 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2094
2095         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
2096         break pedantic builds. Closes bug 6043 (patch approved by
2097         Havoc back in February).
2098
2099 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2100
2101         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
2102         that took a QDBusMessage parameter.
2103         * qt/src/qdbusbus.h: Add a default flag for RequestName.
2104         * qt/tools/dbus.cpp: Don't use automatic call because we might
2105         be calling an async method: request a reply.
2106
2107 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
2108
2109         * test/qt/*: Update the testcases, including testing the new
2110         functionality of sending null QByteArray and QString over the
2111         bus. Add new headertest test and restore the old
2112         qdbusxmlparser test.
2113
2114 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
2115
2116         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
2117         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
2118
2119         * qt/examples/Makefile.am:
2120         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
2121         form.
2122
2123         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
2124         QByteArray() (nulls) over the bus.
2125         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
2126         the one that has the signature suffix stripped.
2127         * qt/src/qdbusreply.h: Make some methods const.
2128
2129 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
2130
2131         Patch from Timo Hoenig <thoenig@suse.de>.
2132
2133         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
2134         required during build to EXTRA_DIST.
2135         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
2136         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
2137         * configure.in: Fix "make dist", take care that the Makefile for
2138         qt/dbus is being generated.
2139
2140 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2141
2142         * bus/bus.c: Fix eavesdropping on method calls
2143
2144 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2145
2146         * configure.in:
2147         * dbus/dbus-userdb-util.c:
2148         Add Solaris console owner patch from Artem Kachitchkine
2149
2150 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
2151
2152         * qt/Makfile.am:
2153         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
2154         reorganisation. Thanks to Timo Hoenig for pointing this out.
2155
2156 2006-06-06  Robert McQueen  <robot101@debian.org>
2157
2158         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
2159           call to dbus_g_type_get_struct.
2160
2161 2006-06-06  Robert McQueen  <robot101@debian.org>
2162
2163         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
2164           pointers were put into a GPtrArray-based specialised collection, and
2165           then freed along with the array. GValues which you add into
2166           collections or maps which have the NOCOPY flag set are assumed to not
2167           belong to the caller, so rather than the existing pointer-stealing
2168           semantics, they are copied instead. Given that the main consumers of
2169           this abstraction are the bindings themselves, I don't think this is
2170           too bad, but others should watch their choice of take vs set_static.
2171
2172 2006-06-06  Robert McQueen  <robot101@debian.org>
2173
2174         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
2175           of g_slist_prepend not being used. Fixed copying of slist-based
2176           specialised collections, then wrote a test case and found that it was
2177           all broken. Went on to fix iterating and appending too. Good thing
2178           nobody uses this code yet.
2179
2180 2006-06-06  Robert McQueen  <robot101@debian.org>
2181
2182         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
2183           the iterators use gvalue_take_ptrarray_value (the GValues themselves
2184           are discarded without unsetting, so it makes no difference whether
2185           we take or set_static). Remove cases for G_TYPE_POINTER because
2186           there really is nothing useful we can do with them in our
2187           specialised types - we *need* boxed copy/free functions at the very
2188           least.
2189
2190 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
2191
2192         * qt/dbus: Add directory. I had forgotten to add this
2193         yesterday after the move...
2194
2195         * qt/examples/Makefile.am:
2196         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
2197
2198         * qt/tools/Makefile.am:
2199         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
2200         Added feature to get and set properties.
2201         Added validation of service, object path and interface names.
2202
2203         * qt/tools/dbusidl2cpp.cpp: Two new features:
2204         1) Allow specifying both the header and the source file names,
2205         by separating them with a colon.
2206         2) Don't write an interface output if the -p switch wasn't
2207         given, but the -a was.
2208
2209         * qt/src/*: Fix usage of Iterators and ConstIterators.
2210         Fix shadowing of variables by other variables (-Wshadow).
2211         Fix keyword-cleanliness in headers.
2212         Fix ASCII-cast (QLatin1String, QLatin1Char).
2213         Fix validation of member names.
2214         Add extra checking of introspection data during XML parsing.
2215         Various bug fixes.
2216
2217 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2218
2219         * dbus/Makefile.am:
2220         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
2221         qt/dbus/qdbus.h now.
2222
2223 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2224
2225         * configure.in: Make --disable-qt actually do
2226           something. Patch inspired by Zack Rusin.
2227
2228 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2229
2230         * qt/: Update to Subversion r548032.
2231         This includes a big reorganisation of the files inside the
2232         subdir.
2233
2234 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
2235
2236         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
2237         clear:  
2238         "Failed to connect to socket <host>:<port> <error>" instead of
2239         "Failed to connect to socket <host>: <error>:<port>"
2240
2241         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
2242         for a tcp transport. 
2243
2244 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2245
2246         * qt/*: Update the QtDBus bindings up to revision 546310 in
2247         Subversion.
2248         This adds the dbuscpp2xml tool, that parses a C++ header and
2249         outputs a D-BUS Introspection XML.
2250
2251 2006-05-21  Havoc Pennington  <hp@redhat.com>
2252
2253         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
2254         is not NULL when it shouldn't be. Also a couple of possible fixes
2255         for #4637 though I don't understand why the bug happens, to be
2256         honest... also the object constructor has an assert name != NULL
2257         and the name is only currently NULL for peer-to-peer proxies that 
2258         I don't think anyone uses? So it should be asserting.
2259         Anyway, for now at least see if we get an earlier assertion failure.
2260
2261         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
2262         apparently broken code to be sure the tests fail and someone 
2263         will fix them...
2264
2265 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
2266
2267         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
2268         and arrays when they had a single element: has_next returns
2269         false, even before you read the element. So, instead, check
2270         the array length.
2271
2272 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2273
2274         * qt/qdbusmessage.cpp:
2275         * qt/qdbustypehelper_p.h:
2276         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
2277         the list is a const-reference
2278
2279 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
2280
2281         * Adding old doc patch that never got applied
2282         
2283         * dbus/bus.c (dbus_bus_add_match): Add documentation
2284
2285         * doc/dbus-specification.xml: Add documentation for the match rules
2286           and the AddMatch and RemoveMatch methods
2287
2288 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
2289
2290         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2291         call (r535506)
2292
2293         * qt/dbusidl2cpp.cpp:
2294         * qt/qdbusabstractadaptor.cpp:
2295         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
2296         sibling of the QDBusAbstractAdaptor objects instead of the
2297         parent. (r535848)
2298
2299         * qt/dbusidl2cpp.cpp:
2300         * qt/qdbusabstractinterface.cpp:
2301         * qt/qdbusabstractinterface.h:
2302         * qt/qdbusabstractinterface_p.h:
2303         * qt/qdbusinterface.cpp: Make properties in interfaces
2304         actually work. The code that was generated would not compile,
2305         due to moc calls to functions that did not exist. They now
2306         shall. (r536571)
2307
2308 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
2309
2310         * Makefile.am:
2311         * configure.in:
2312         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
2313         Thanks to Brad Hards for providing the patch
2314
2315 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2316
2317         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2318         call. (r535506)
2319
2320 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2321
2322         * qt/examples/dbus.cpp: Enhance error messages and use
2323         QDBusInterfacePtr.
2324
2325 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2326
2327         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
2328         and disable the copy operators. (r533772, r534746)
2329
2330         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
2331
2332         * qt/qdbusabstractinterface.cpp:
2333         * qt/qdbusabstractinterface.h: Change the default call mode to
2334         not use the event loop. Add convenience call() methods that
2335         take a CallMode parameter. (r534042)
2336
2337         * qt/qdbusconnection.h: Change the default call mode to not
2338         use the event loop. (r534042)
2339
2340         * qt/qdbusinterface.cpp:
2341         * qt/qdbusinterface.h: Add a method to tell us if the
2342         interface is valid (since we don't return a null pointer
2343         anymore) (r534099)
2344
2345         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2346         (r534101)
2347
2348         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2349         function in two so taht we get the chance to introspect
2350         without having a QDBusMessage (r534102)
2351
2352         * qt/qdbusbus.h:
2353         * qt/qdbusconnection.cpp:
2354         * qt/qdbusconnection_p.h:
2355         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2356         avoid a round-trip to the server when attempting to introspect
2357         one of our own objects. Also make sure the filter functions
2358         match the empty interface as well. (r534108)
2359         Don't keep the connection names. Instead, trust the unique
2360         connection name (r534111)
2361         Remove event loop usage (r534112)
2362
2363 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2364
2365         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2366         Brad Hards.
2367
2368 2006-04-28  Robert McQueen  <robot101@debian.org>
2369
2370         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2371         any order, making it easier for people who inherit from this
2372         object.
2373
2374 2006-04-28  Robert McQueen  <robot101@debian.org>
2375
2376         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2377         of memory from within pointer arrays and lists. Fixes bug #6300.
2378
2379 2006-04-28  Robert McQueen  <robot101@debian.org>
2380
2381         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2382         generating struct signatures. Fixes bug #6083.
2383
2384 2006-04-28  Robert McQueen  <robot101@debian.org>
2385
2386         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2387         to qdbusconnection_p.moc.
2388
2389 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2390
2391         * README, INSTALL: Doc fixes
2392         Patch from Brad Hards <bradh at frogmouth.net>
2393
2394 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2395
2396         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2397         the dynamic meta object. No need to guess which interface to
2398         call.
2399
2400 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2401
2402         * qt/qdbusconnection_p.h:
2403         * qt/qdbusmetaobject.cpp:
2404         * qt/qdbusmetaobject_p.h:
2405         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2406         for the dynamic meta object. No need to guess which
2407         interface to call.
2408         * qt/qdbusabstractinterface_p.h:
2409         * qt/qdbusconnection.cpp:
2410         * qt/qdbusintegrator.cpp:
2411         * qt/qdbusinterface.cpp:
2412         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2413         Add a QDBusRef that looks and behaves like DCOPRef.
2414
2415 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2416
2417         * dbus/dbus-connection.c: Interfaces are optional in method
2418         calls, so don't give up if the interface parameter is NULL.
2419         Patch reviewed by Havoc Pennington.
2420
2421 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2422
2423         * qt/qdbusreply.h: Add default constructor and operator=
2424           (r532625)
2425         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2426           in public headers (r532952)
2427         * qt/qdbusabstractinterface.cpp:
2428         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2429           make it the default (r532951)
2430
2431 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2432
2433         * dbus/dbus-connection.c: Fix asserts
2434         Patch from Tim Moloney <t.moloney at verizon.net>
2435
2436 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2437
2438         * mono/Connection.cs, mono/Message.cs: Check Target type
2439         Patch from Aaron Bockover (abockover at novell.com)
2440
2441 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2442
2443         * INSTALL: fine-tune the requirements for the Qt4 binding.
2444
2445 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2446
2447         * tools/dbus-print-message.c: Added support for printing of all 
2448           remaining data types. Fixed logic for indentation of compound
2449           data types.
2450         
2451 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2452
2453         * INSTALL: fill out content of file providing DBus specific
2454           build installations, followed by generic Auto* INSTALL file
2455           content
2456         
2457 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2458
2459         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2460           Patch by Stefan Eilers. (r529537)
2461
2462 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2463
2464         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2465           contents (r528208)
2466
2467 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2468
2469         * qt/Makefile.am: fix the dependency for
2470           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2471           not in qdbusconnection.cpp.
2472           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2473           spotting this.
2474
2475 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2476
2477         * qt/examples/listnames.cpp:
2478         * qt/examples/Makefile.am: Three ways to list the names on the
2479           bus.
2480
2481 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2482
2483         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2484           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2485
2486 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2487
2488         Merge from Subversion:
2489         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2490           something that exists (r526315)
2491         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2492           slots/signals (r526316)
2493         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2494           also return an unknown-method error if the parameters don't
2495           match for org.freedesktop.DBus.Properties. (r526842)
2496         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2497         * qt/qdbusintegrator.cpp: Restore the proper order of
2498           delivery: don't make method returns be delivered on priority
2499           (r528150)
2500
2501 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2502
2503         * configure.in qt/Makefile.am: add qt/examples
2504         * qt/examples: Add QtDBus example programs:
2505           - hello: Hello, World
2506           - ping: Simple method-calling program
2507           - pong: Simple object-exporting program (not using adaptors)
2508           - complexping: Interactive method-calling program 
2509                 (also gets and sets properties).
2510           - complexpong: Sample program exporting methods, signals and
2511                 properties, using adaptors.
2512           - dbus: Simple implementation of a generic method-calling
2513                 program, similar to 'dbus-send', but with semantics
2514                 similar to 'dcop'.
2515           - chat: Simplistic chat program, implemented using signals
2516                 and the system bus. Looks like IRC.
2517
2518 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2519
2520         * configure.in: Detect QtGui (necessary for one of the
2521           example programs). Note: this increases the minimum required
2522           version of Qt to 4.1.3.
2523
2524 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2525
2526         * test/qt/*: Sync with KDE Subversion revision 523647.
2527         Update the testcases to the new API. Remove testcases for
2528         classes that are no longer public or have been removed.
2529
2530 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2531
2532         * qt/*: 
2533         * dbus/qdbus.h: Sync with KDE Subversion revision
2534         523647. Hopefully, this will be the last of the
2535         source-incompatible changes. Documentation has been improved;
2536         support for QList<basic-types> has been added; QDBusObject is
2537         gone; QDBus(Abstract)Interface is now a QObject with
2538         auto-generated meta-object; QDBusIntrospection is marked
2539         private, since QMetaObject can be used now; lots of bugfixes.
2540
2541 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2542
2543         Patch from Milosz Derezynski <internalerror at gmail.com>
2544         
2545         * configure.in:
2546         Output the service directory in the configure summary
2547
2548         * dbus-1.pc.in:
2549         Add session_bus_services_dir
2550
2551 2006-03-10  Ross Burton  <ross@openedhand.com>
2552
2553         * tools/dbus-print-message.c:
2554         Add support for object paths and signatures.
2555
2556 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2557
2558         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2559         config reload.
2560         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2561         information caches
2562         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2563         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2564         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2565         * dbus/dbus-userdb.h: Add function to flush all user/group information
2566         caches.
2567
2568 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2569
2570         * qt/dbusidl2cpp.cpp:
2571         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2572         for dcopidl2cpp, found in the KDE installations (or the more
2573         modern kalyptus): generate Qt4 C++ code for the input XML
2574         introspection. Currently no IDL parsing.
2575
2576 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2577
2578         * test/qt/*: Update the self-tests.
2579
2580 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2581
2582         * qt/*: 
2583         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2584         represents the first feature-complete version of the Qt4
2585         bindings since I took ove maintainership.
2586
2587 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2588
2589         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2590         dir. This is C++, so we can't use the DBus ones.
2591
2592 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2593
2594         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2595         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2596
2597 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2598
2599         * dbus/dbus-connection.c: 
2600         (_dbus_connection_block_pending_call):
2601         Check to see if our data has already been read off the connection
2602         by another blocking pending call before we block in poll.
2603         (check_for_reply_and_update_dispatch_unlocked):
2604         Code taken from _dbus_connection_block_pending_call - checks for
2605         an already read reply and updates the dispatch if there is one.
2606
2607         * test/name-test/test-pending-call-dispatch.c:
2608         New test for making sure we don't get stuck polling a 
2609         dbus connection which has no data on the socket when
2610         blocking out of order on two or more pending calls.
2611
2612 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2613
2614         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2615         make/automake don't detect that we're talking about the same
2616         .lo file if I specify the full path to the source files.
2617
2618 2006-02-26  Havoc Pennington  <hp@redhat.com>
2619
2620         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2621
2622         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2623         session bus variable is unset, suggest "man dbus-launch" and "man
2624         dbus-daemon" to figure out how to fix the problem
2625
2626 2006-02-25  Havoc Pennington  <hp@redhat.com>
2627
2628         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2629         should make this thing use the new glib options parser
2630
2631 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2632
2633         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2634         .lo files taking moc sources.
2635
2636 2006-02-25  Havoc Pennington  <hp@redhat.com>
2637
2638         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2639         and install it as a public header
2640
2641 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2642
2643         * Released 0.61
2644
2645 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2646         
2647         * proxies.py: Fix the callchain
2648
2649 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2650         
2651         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2652
2653         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2654         dbus/dbus-sysdeps.c
2655
2656         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2657         call _dbus_group_info_free_allocated which causes infinite loop,
2658         correctly call _dbus_group_info_free
2659
2660 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2661
2662         * qt/qdbusinterface_p.h:
2663         * qt/qdbusinterface.cpp: Use the standard
2664         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2665         calls instead of creating one for us.
2666
2667         * qt/qdbusconnection_p.h:
2668         * qt/qdbusintegrator.cpp: Remove debugging code.
2669
2670         * qt/qdbusintegrator.cpp:
2671         * qt/qdbusmessage.cpp:
2672         * qt/qdbusmessage_p.h:
2673         * qt/qdbusmessage.h: Change the behaviour of automatic
2674         reply-sending: now a reply is always sent, unless the caller
2675         didn't request one or if the user slot has already sent one.
2676
2677 2006-02-16  Robert McQueen  <robot101@debian.org>
2678
2679         * configure.in: Patch from Debian packages by Sjoerd Simons
2680         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2681         arguments so it's possible to build both bindings in the
2682         same tree.
2683
2684         * qt/Makefile.am: Fix truncated value so that make dist works.
2685
2686 2006-02-16  Robert McQueen  <robot101@debian.org>
2687
2688         * acinclude.m4, configure.in: Patch from Brad Hards
2689         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2690         improving quoting, re-ordering a few checks, and a few other
2691         aesthetic tidy-ups.
2692
2693 2006-02-16  Robert McQueen  <robot101@debian.org>
2694
2695         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2696         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2697         assertion that the next element to read from the iter is fixed in
2698         size. This is not the case when you are at the end of the iter,
2699         because the next element type is INVALID.
2700
2701         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2702         a bogus assert which means that you may not initialise a 0-length
2703         string unless you provide a non-NULL pointer. This prevented
2704         you from marshalling messages containing zero-length arrays in
2705         some cases.
2706
2707         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2708         from Rob to correct bogus asserts when trying to demarshal an
2709         array and get_fixed_array got you 0 elements. Append nothing to
2710         the GArray in this case.
2711
2712         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2713         an empty array via the glib bindings. Without all of the above
2714         patches, this new test fails.
2715
2716 2006-02-16  Robert McQueen  <robot101@debian.org>
2717
2718         * glib/dbus-gmain.c: Make the previous commit compile.
2719
2720         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2721         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2722         specify sender_keyword="foo", path_keyword="bar" when adding
2723         a signal listener, so that you can bind to signals generically
2724         but still do something useful in your callback.
2725
2726         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2727         chars so that they're not cast to chars and made negative. Thanks
2728         to Jakub Stachowski for reporting this and testing the fix.
2729
2730 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2731
2732         * dbus/dbus-glib.h:
2733         * glib/dbus-gmain.h:
2734         (dbus_g_connection_open): new method for openning
2735         a connection to an arbitrary address in the glib bindings
2736
2737         * ChangeLog: checkin last entry which doesn't seem to be commited
2738
2739 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2740
2741         * tools/dbus-launch.c: Fixed sh syntax output
2742
2743 2006-02-13  Robert McQueen  <robot101@debian.org>
2744
2745         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2746         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2747         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2748         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2749         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2750         missing piece of the glib bindings jigsaw puzzle. This modifies
2751         the existing specialised types to have N type parameters (rather
2752         than the current 1 or 2 for arrays and dictionaries respectively).
2753         You can then use this to get a glib type to represent any arbitrary
2754         D-Bus struct type using dbus_g_type_get_struct. The only
2755         implementation of these types is with GValueArrays as before,
2756         but it's now possible to store these in arrays, emit them in
2757         signals, etc.
2758
2759 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2760
2761         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2762         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2763         <thiago.macieira at trolltech.com>
2764
2765 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2766
2767         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2768         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2769
2770 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2771
2772         * bus/connection.c (bus_connections_expect_reply): Make
2773         pending reply limit not common to all connections (Bug #5416)
2774         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2775
2776 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2777
2778         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2779
2780 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2781
2782         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2783         patch from Doug Goldstein <cardoe at gentoo.org>
2784
2785 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2786
2787         * mono/Arguments.cs: Fix a magic number in the mono bindings
2788         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2789
2790 2006-01-27  Robert McQueen  <robot101@debian.org>
2791
2792         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2793         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2794         when generating the client-side methods, instead of overloading
2795         CSymbol which broke everything horribly. My apologies.
2796
2797 2006-01-27  Robert McQueen  <robot101@debian.org>
2798
2799         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2800         by me and Rob Taylor to add a simple_free function to D-Bus map
2801         and collection types, which allows those types which can be freed
2802         with a GDestroyNotify (such as GHashTables and GArrays, but not
2803         GPtrArrays) to be stored as the values in hashtables.
2804
2805         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2806         Patch by Rob Taylor to add nested dicts to the glib tests to check
2807         the above code works, and appears not to leak when called repeatedly.
2808
2809 2006-01-27  Robert McQueen  <robot101@debian.org>
2810
2811         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2812         to free a D-Bus allocated string with dbus_free () instead of
2813         g_free ().
2814
2815 2006-01-27  Iain Holmes  <iain@openedhand.com>
2816
2817         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2818         method from being called multiple times.
2819
2820 2006-01-19  Robert McQueen  <robot101@debian.org>
2821
2822         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2823         <rob.taylor@collabora.co.uk> to add support for generating bindings
2824         to arrays that are represented as GPtrArrays rather than GArrays (ie
2825         size-variable things, such as strings, objects, structs, etc).
2826
2827 2006-01-05  Robert McQueen  <robot101@debian.org>
2828
2829         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2830         <ricardo.kekki@movial.fi> to make it possible to inherit from
2831         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2832         a private part, and moving the setting of the DBusGProxyManager into a
2833         connection property, allowing proper GObject construction.
2834
2835 2006-01-05  Robert McQueen  <robot101@debian.org>
2836
2837         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2838         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2839         annotations when generating glib client bindings.
2840
2841 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2842
2843         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2844
2845         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2846
2847 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2848
2849         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2850
2851 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2852
2853         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2854
2855 2005-12-19  Ross Burton  <ross@openedhand.com>
2856
2857         * doc/dbus-tutorial.xml:
2858         Document the Glib client-side bindings, and list all possible annotations.
2859
2860 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2861
2862         * dbus/bus.c (dbus_bus_release_name): Add documentation
2863
2864 2005-12-06  Robert McQueen  <robot101@debian.org>
2865
2866         * python/service.py: s/sucessful/successful/ so we're allocating to
2867         and reading from the same variable. Oops.
2868
2869 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2870
2871         * Released 0.60
2872
2873 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2874
2875         * test/qt/Makefile.am: build from srcdir
2876
2877         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2878         Note - this code is wrong and needs to be fixed by the Qt binding
2879         developers.  The flags should be treated as bitfields and not enums.
2880
2881         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2882
2883 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2884
2885         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2886           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2887           in production code
2888
2889 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2890
2891         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2892         method for getting messages off the bus in the absence of a
2893         mainloop.  This method is much like 
2894         dbus_connection_read_write_dispatch except it does not dispatch
2895         the messages to a registered filter function.  Instead it
2896         allows a developer to process messages by directly popping
2897         them off the bus.
2898
2899 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2900
2901         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2902         the parser to continue instead of returning error
2903         (bus_desktop_file_load): Do not free parser data when
2904         parse_section_start or parse_key_value fails because it was 
2905         already freed by parser_free (patch from Carlos Garcia Campos  
2906         <carlosgc at gnome.org>)
2907
2908 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2909
2910         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2911         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2912         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2913         test/test-segfault.c, test/test-utils.c,
2914         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2915         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2916         Various cleanup of dead code and compiler warnings (patch from
2917         Kjartan Maraas <kmaraas at gnome.org>) 
2918
2919 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2920
2921         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2922         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2923
2924 2005-11-27  Robert McQueen  <robot101@debian.org>
2925
2926         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2927         part of the preceding one. Oops. Merge patch by Johan Hedberg
2928         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2929         on big-endian platforms.
2930
2931         * test/python/test-client.py: Add some 16-bit integers to the test
2932         values.
2933
2934 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2935
2936         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2937         method return message for property getters
2938
2939 2005-11-27  Robert McQueen  <robot101@debian.org>
2940
2941         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2942         with type v of an instance of dbus.Variant(foo, type='x') caused
2943         it to be boxed twice before sending over the bus.
2944
2945         * python/dbus_bindings.pyx, python/service.py,
2946         test/python/test-client.py: Update the constants for the new
2947         request_name flags, and update comments/test cases now that queueing
2948         is the default action.
2949
2950 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2951
2952         * configure.in:
2953         - Change version to 0.60 for impending release
2954         - upped the sonames because of ABI and API breakage
2955
2956 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2957
2958         * configure.in: Add test/name-test/Makefile to the generated
2959         Makefile list
2960
2961         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2962         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2963         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2964         not to queue an ower if it can't be the primary owner
2965
2966         * bus/bus.h: Add new internal BusOwner struct
2967
2968         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2969         to bus_registry_ensure and don't set the prohibit_replacement flag
2970         since they are now set per BusOwner and not per name.
2971         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2972         that returns the list of connections in a name's connection queue
2973         
2974         * bus/services.c (struct BusService): remove prohibit_replacement field
2975         (struct BusOwner): new struct for keeping track of queued connections
2976         and their associated flags for the queue
2977         (struct BusRegistry): add a BusOwner memory pool
2978         (bus_registry_new): initialize the BusOwner memory pool
2979         (bus_registry_unref): free the BusOwner memory pool
2980         (_bus_service_find_owner_link): new internal method for
2981         searching the queue for a specific connection
2982         (bus_owner_set_flags): new method for adding setting the flags on a
2983         bus owner
2984         (bus_owner_new): new method that creates a BusOwner object from the
2985         pool and sets its flags
2986         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2987         (bus_registry_ensure): Add the flags parameter
2988         (bus_registry_acquire_service): Switch from using raw connections to
2989         using the BusOwner struct
2990         Add new state machine for dealing with the new set of flags
2991         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2992         cancel_ownership, free_ownership_cancel_data, 
2993         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2994         restore_ownership, free_ownership_restore_data, 
2995         add_restore_ownership_to_transaction): Switch to using BusOwner 
2996         instead of raw connections
2997         (bus_service_add_owner): Add flags parameter
2998         Switch to using BusOwner instead of raw connections
2999         Add state machine for dealing with the new set of flags
3000         (bus_service_swap_owner): Swaps the first and second owners in the
3001         queue.  Used to make sure proper signals are sent when a service looses 
3002         or gains primary ownership.  We never insert an owner at the top of the
3003         queue.  Instead we insert it in the second position and then swap.
3004         (bus_service_remove_owner): Remove the owner from the queue sending
3005         out the NameLost and NameOwnerChanged signals if the we were the 
3006         primary owner
3007         (bus_service_get_primary_owners_connection): New method that extracts
3008         the connection from the primary owner
3009         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
3010         connection
3011         (bus_service_get_allow_replacement): Changed from the old 
3012         bus_service_get_prohibit_replacement method.  Checks the flags of the 
3013         primary owner and returns if it can be replaced or not
3014         (bus_service_set_prohibit_replacement): removed
3015         (bus_service_has_owner): returns TRUE if and owner with
3016         the specified connection exists in the queue
3017         
3018         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
3019         method that only compiles if tests are enabled.  Allows us to get the 
3020         unique name of a connection so we can check it against the queue when
3021         doing regression tests
3022
3023         * bus/activation.c (bus_activation_send_pending_auto_activate),
3024         bus/dispatch.c (bus_dispatch),  
3025         bus/driver.c (bus_driver_handle_get_service_owner, 
3026         bus_driver_handle_get_connection_unix_user, 
3027         bus_driver_handle_get_connection_unix_process_id,
3028         bus_driver_handle_get_connection_selinux_security_context),
3029         bus/signals.c (connection_is_primary_owner): 
3030         use bus_service_get_primary_owners_connection instead of
3031         bus_service_get_primary_owner
3032
3033         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
3034         _dbus_listen_unix_socket): Calculate the length of the socket
3035         path and use that instead of using a fixed length which was
3036         causing socket names to contain many trailing Nul bytes.
3037
3038         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
3039         (dbus_g_method_get_sender): New method for extracting the sender 
3040         from a DBusGMethodInvocation
3041         (dbus_g_method_return_get_reply): changed name to 
3042         dbus_g_method_get_reply
3043         (dbus_g_method_return_send_reply): changed name to
3044         dbus_g_method_send reply
3045
3046         * doc/dbus-specification.xml: New docs that describe how the new
3047         queueing system works and talks about the changes to the how
3048         we specify socket names
3049
3050         * glib/examples/example-service.c, 
3051         glib/examples/example-signal-emitter.c,
3052         glib/examples/statemachine/statemachine-server.c:
3053         Changed the RequestName flags to the new system
3054
3055         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
3056         regression test suite for testing various states of the new
3057         queueing system
3058         
3059 2005-11-15  Robert McQueen  <robot101@debian.org>
3060
3061         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
3062         Taylor to add two methods, dbus_g_method_return_get_reply and
3063         dbus_g_method_return_send_reply, to allow you to get the reply
3064         message from a DBusGMethodInvocation, append arbitrary stuff to it,
3065         and send it. The GLib bindings can't marshal a return value of
3066         something like a(s) if the array is empty - ultimately they should be
3067         made to heed the signature of the out arguments as the Python bindings
3068         now can, but this is a workable interim solution which might have
3069         other applications.
3070
3071 2005-11-15  Robert McQueen  <robot101@debian.org>
3072
3073         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
3074         method to org.freedesktop.DBus to release a bus name or give up
3075         waiting in the queue for it.
3076
3077         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
3078         dbus_bus_release_name method to send the ReleaseName method calls.
3079         Add constants for the return values to dbus/dbus-shared.h.
3080
3081         * doc/dbus-specification.xml: Document the new ReleaseName method
3082         in the specification.
3083
3084         * python/dbus_bindings.pyx: Add a low-level python binding for the
3085         release name method.
3086
3087         * python/exceptions.py, python/service.py: Make freeing BusName
3088         objects release the name. Add a NameExistsException, and fix a
3089         bug with creating UnknownMethodException.
3090
3091         * test/python/test-client.py: Add tests for freeing BusName
3092         objects causing names to be released.
3093
3094 2005-11-14  Robert McQueen  <robot101@debian.org>
3095
3096         * python/service.py: Include the traceback in the error reply when we
3097         send an exception over the bus. _BEST_ _PATCH_ _EVER_
3098
3099 2005-11-14  David Zeuthen  <davidz@redhat.com>
3100
3101         Patch from Timo Hoenig <thoenig@suse.de>.
3102
3103         * bus/bus.c: I've recently investigated why the automatic reload
3104         of configuration files does not work as expected.
3105
3106         Currently, reloading configuration files does only work when
3107         running dbus-daemon with --nodaemon.  If we are running as daemon
3108         we're hitting a dnotify bug once we fork the process.
3109
3110         We're initializing the dnotify fds before calling fork().  Once
3111         the child process forked it does still have the fds (and they
3112         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
3113         getting SIGIO as changes are made to the configuration files.
3114
3115         The attached patch moves the initialization of the dnotify fds to
3116         process_config_postinit().  This is safe for all current code
3117         paths and solves the dnotify disfunction.  If we're running
3118         dbus-daemon as daemon the fds for dnotify are now being
3119         initialized after fork() for the child process.
3120
3121         * configure.in: The current configure.in check for dnotify probes
3122         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
3123         match for 'xlinux', too. Additionally I have adapted the configure
3124         option's style to match with the others.
3125
3126 2005-11-14  Robert McQueen  <robot101@debian.org>
3127
3128         * python/decorators.py, python/service.py: Add a new argument to the
3129         dbus.service.method decorator called sender_keyword, which if set,
3130         specifies the name of an argument which will be provided the bus
3131         name of the method caller.
3132
3133         * test/python/test-client.py, test/python/test-service.py: Add a
3134         method and test to check the sender_keyword functionality.
3135
3136 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
3137
3138         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
3139         empty reply so blocking calls don't block forever (Patch from Sjoerd 
3140         Simons <sjoerd at luon.net>)
3141
3142         * AUTHORS: Add Robert McQueen for his work on the Python
3143         Bindings and other parts of D-Bus
3144
3145 2005-11-07  Robert McQueen  <robot101@debian.org>
3146
3147         * python/decorators.py: Change emit_signal function to use the
3148         signature annotation of the signal when marhsalling the arguments from
3149         the service. Fix a bug where the code checking signature length
3150         against argument length referenced the wrong variable.
3151
3152         * python/introspect_parser.py: Avoid adding the type signature of
3153         signal arguments to any methods which occur after them in the
3154         introspection data (!) by making the parser a little more careful
3155         about its current state.
3156
3157         * python/service.py: Remove debug prints from last commit (again :D).
3158
3159         * test/python/test-client.py, test/python/test-service.py: Add test
3160         signals with signature decorators to test the strict marshalling code
3161         gives errors at the right time. Could do with checking the signals
3162         actually get emitted too, given that the test does nothing with
3163         signals at the moment...
3164
3165 2005-11-07  Robert McQueen  <robot101@debian.org>
3166
3167         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
3168         instances to stop madness of creating new instances representing
3169         the same bus connection all the time, rendering any tracking of
3170         match rules and bus names quite meaningless. Caught a bug where
3171         the private argument to SessionBus() and friends was being passed
3172         in as use_default_mainloop by mistake. Still some problems with
3173         multiple dbus_binding.Connection instances representing the same
3174         low-level connection (eg when you use both SessionBus() and
3175         StarterBus() in same process), but it's a lot better now than it
3176         was.
3177
3178         * python/dbus_bindings.pyx: Add constants with the return values
3179         for bus_request_name().
3180
3181         * python/service.py: Store bus name instances in a per-dbus.Bus cache
3182         and retrieve the same instances for the same name, so deletion can be
3183         done with refcounting. Also now throws some kind of error if you
3184         don't actually get the name you requested, unlike previously...
3185
3186         * test/python/test-client.py: Add tests for instance caching of buses
3187         and bus name objects.
3188
3189 2005-11-04  Robert McQueen  <robot101@debian.org>
3190
3191         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
3192         marshalling of boolean values. Add some booleans to the values in
3193         the test client.
3194
3195         * python/decorators.py, python/service.py: Add an 'async_callbacks'
3196         argument to the dbus.service.method decorator, which allows you to
3197         name arguments to take two callback functions for replying with
3198         return values or an exception.
3199
3200         * test/python/test-client.py, test/python/test-service.py: Add test
3201         case using asynchronous method reply functions, both return values and
3202         errors, and from within both the function itself and from a mainloop
3203         callback.
3204
3205         * python/decorators.py, python/service.py: Perform checking that the
3206         number of method/signal arguments matches the number of types in the
3207         signature at class loading time, not when you first introspect the
3208         class.
3209
3210         * python/service.py: Remove debug print left by the last commit.
3211
3212 2005-11-03  Robert McQueen  <robot101@debian.org>
3213
3214         * python/service.py: Heavy refactoring of method invocation, with
3215         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
3216         in favour of a new _message_cb that uses seperate functions for
3217         looking up the method to call, marshalling the return values, and
3218         sending exceptions as errors, and is easier to follow as a
3219         consequence.  Fixes some corner cases about returning things that
3220         don't match your declared out_signature, allows exceptions to define
3221         _dbus_error_name and have it be sent over the bus as the error name,
3222         and paves the way for cool stuff like heeding the message no reply
3223         flag, asynchronous method implementations, informing the method of the
3224         sender, and including backtraces in the error messages.
3225
3226         * test/python/test-client.py: Catch and print exceptions thrown in the
3227         async callback tests, rather than passing them to the low-level
3228         bindings to be ignored in a noisy and frustrating manner.
3229
3230 2005-11-03  Robert McQueen  <robot101@debian.org>
3231
3232         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
3233         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
3234         tweak others to be consistent.
3235
3236         * test/python/test-client.py: Tweak output of testInheritance.
3237
3238 2005-10-29  Robert McQueen  <robot101@debian.org>
3239
3240         * python/service.py: Major changes to allow multiple inheritance
3241         from classes that define D-Bus interfaces:
3242         
3243          1. Create a new Interface class which is the parent class of
3244             Object, and make the ObjectType metaclass into InterfaceType.
3245         
3246          2. Patch written with Rob Taylor to replace use of method_vtable
3247             with code that walks the class's __MRO__ (method resolution order)
3248             to behave like Python does when invoking methods and allow
3249             overriding as you'd expect. Code is quite tricky because
3250             we have to find two methods, the one to invoke which has the
3251             right name and isn't decorated with the /wrong/ interface,
3252             and the one to pick up the signatures from which is decorated
3253             with the right interface.
3254         
3255             The same caveats apply as to normal multiple inheritance -
3256             this has undefined behaviour if you try and inherit from two
3257             classes that define a method with the same name but are
3258             decorated with different interfaces. You should decorate
3259             your overriding method with the interface you want.
3260         
3261          3. Replace grungy introspection XML generation code in the metaclass
3262             with dictionaries that cope correctly with multiple inheritance
3263             and the overriding of methods. This also uses the signature
3264             decorations to provide correct introspection data, including
3265             the debut appearance of the types of your return values. :D
3266
3267         * test/python/test-client.py, test/python/test-service.py: Add a test
3268         case to try invoking an method that overrides one inherited from a
3269         D-Bus interface class.
3270
3271 2005-10-29  Robert McQueen  <robot101@debian.org>
3272
3273         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
3274         Add checking for the end of struct character when marshalling a
3275         struct in MessageIter.append_strict.
3276
3277         * python/examples/example-service.py,
3278         python/examples/gconf-proxy-service.py,
3279         python/examples/gconf-proxy-service2.py: Update to use gobject
3280         mainloop directly rather than appearing to depend on gtk.
3281
3282         * python/test/test-client.py, python/test/test-server.py: Remove
3283         obsolete and broken test scripts for old bindings. We have up to date
3284         and working tests in test/python/.
3285
3286 2005-10-29  Robert McQueen  <robot101@debian.org>
3287
3288         * python/decorators.py: Add optional arguments to the method and
3289         signal decorators to allow you to specify the signature of arguments
3290         and return values. Preserve the doc strings of signal functions in the
3291         decorated version, for pydoc and friends.
3292
3293         * python/dbus_bindings.pyx, python/proxies.py: Replace the
3294         parse_signature_block function with an iterable dbus.Signature()
3295         type. Fix a bug in MessageIter.append_strict where you could append
3296         anything by claiming it was a string.
3297
3298         * python/service.py: Use the out_signature decoration on methods to
3299         marshal return values, meaning you no longer require dbus.Array()
3300         or dbus.Dictionary() to indicate the type when returning empty
3301         arrays or dictionaries. Fix a bug where exceptions which are defined
3302         in __main__ are not turned into error replies.
3303
3304         * test/python/test-client.py, test/python/test-service.py: Add test
3305         for correct marshalling of return values according to out_signature.
3306         Fix a bug in the async call test where the error_handler is missing a
3307         self argument.
3308
3309 2005-10-29  Robert McQueen  <robot101@debian.org>
3310
3311         * glib/Makefile.am, glib/examples/Makefile.am,
3312         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
3313         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
3314
3315         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
3316
3317         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
3318         from Ubuntu by Daniel Silverstone to allow specifying match rules on
3319         the command line.
3320
3321 2005-10-27  Ross Burton  <ross@openedhand.com>
3322
3323         * dbus/dbus-marshal-header.c:
3324         Remove dead code.
3325
3326         * glib/dbus-gobject.c:
3327         Stop compiler warning.
3328
3329 2005-10-25  Ross Burton  <ross@openedhand.com>
3330
3331         * dbus/dbus-auth.c:
3332         * dbus/dbus-server-unix.c:
3333         * dbus/dbus-transport-unix.c:
3334         * glib/dbus-gmain.c:
3335         * glib/dbus-gobject.c:
3336         Add some const keywords.
3337
3338 2005-10-25  Ross Burton  <ross@openedhand.com>
3339
3340         * doc/dbus-specification.xml:
3341         Document the NoReply annotation.
3342
3343         * glib/dbus-binding-tool-glib.h:
3344         * glib/dbus-binding-tool-glib.c:
3345         Respect the NoReply annotation.
3346
3347 2005-10-24  Robert McQueen <robot101@debian.org>
3348
3349         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3350         derive from unicode instead of str, and encode/decode UTF-8 when
3351         marshalling/unmarshalling bus messages
3352
3353         * python/introspect_parser.py: encode introspection data as UTF-8
3354         before passing the buffer into libxml2
3355
3356         * test/python/test-client.py: add unicode test strings
3357
3358         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3359         ignore generated python test files
3360
3361 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3362
3363         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3364         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3365         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3366
3367         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3368         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3369         when constructing struct signatures
3370
3371         * python/_dbus.py (Bus): handle private connections using the
3372         private keyword in the constructor. defaults to private=False
3373         (Bus::close): new method to close a connection to the bus
3374
3375         * python/dbus_bindings.pyx (Connection::close): renamed method
3376         was previously called disconnect
3377         (bus_get): now supports getting a private connection
3378
3379         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3380         keyword is set to True.  if it is, execute the method without waiting
3381         for a reply
3382         (ProxyObject::_introspect_execute_queue): new method for executing
3383         all the pending methods that were waiting for the introspect to
3384         finish.  this is called when introspect either succeeds or fails
3385         (ProxyObject::_introspect_error_handler): call queued methods
3386
3387 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3388
3389         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3390         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3391
3392         * python/service.py (Object::_message_cb): handle exceptions correctly
3393         by sending them over the wire to the calling app.  This makes sure
3394         the client returns immediately instead of waiting the 15 seconds to
3395         timeout.
3396
3397         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3398         Add a test to benchmark how long it takes to introspect a service and 
3399         call a method which returns a large element (pretty fast)
3400
3401         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3402         method which pushes a lot of data
3403
3404 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3405
3406         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3407         reclaim memory outside of the loop and use del istead of just setting
3408         the key to None
3409
3410 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3411
3412         * python/service.py (ObjectType::_reflect_on_signal): Always close
3413         signal tag even when there are no arguments
3414
3415 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3416
3417         * configure.in: Set mono, mono-docs and Qt3 to default
3418         to no instead of auto when building.  These bindings do not
3419         have full time maintainers and will not be supported for the
3420         1.0 release.
3421
3422 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3423
3424         patches from Michael Krivoruchko <misha at sun.com>: 
3425         
3426         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3427         _dbus_connection_message_sent, 
3428         _dbus_connection_send_preallocated_unlocked_no_update, 
3429         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3430         is NULL when calling _dbus_verbose
3431
3432         * configure.in: check for functions getpeerucred and getpeereid
3433
3434         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3435         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3436         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3437         Patch was only tested on Solaris 10 x86 so it might be issues
3438         with other platforms (i.e. BSDs and MacOSX)
3439         
3440
3441 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3442
3443         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3444         instead of marshal basic so we can handle recursive types in a variant
3445
3446         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3447         in variants
3448
3449         * test/glib/test-service-glib.c, test-service-glib.xml
3450         (my_object_echo_variant [EchoVariant], 
3451         my_object_process_variant_of_array_of_ints123
3452         [ProcessVariantOfArrayOfInts123]): 
3453         Add two test methods
3454
3455         * python/introspect_parser.py: New module for parsing introspect
3456         data.
3457
3458         * python/dbus_bindings.pyx:
3459         (various places): when throwing errors fix to use errormsg instead 
3460         of message local variable because Pyrex can get confused with other 
3461         message variables (initial patch by Robert McQueen 
3462         <robert.mcqueen at collabora.co.uk>)
3463         (MessageIter::parse_signature_block): new method for getting the next
3464         block in a signiture.
3465         (MessageIter::append_strict): new method for appending values strictly
3466         using the passed in signature instead of guessing at the type
3467         (MessageItter:: append_dict, append_struct, append_array): use 
3468         signatures to marshal children if the signature is available
3469         
3470         * python/exceptions.py (IntrospectionParserException): new exception
3471
3472         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3473         introspected signatures if available, else we fall back to the
3474         old way of doing things.
3475         (ProxyObject::_introspect_reply_handler ): parse introspection data
3476         
3477         * python/service.py (ObjectType::_reflect_on_method): Properly
3478         terminate <method> if there are no args in the reflection data
3479
3480         * test/python/test-client.py: add tests for talking with the GLib
3481         test server.  This gives us better coverage for introspection since
3482         python to python will always generate arguments as variants.  It also
3483         allows us to test the robustness of the GLib bindings and interlanguage
3484         communications.
3485
3486         
3487 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3488
3489         * bus/driver.c (bus_driver_handle_introspect): Add signals
3490         to the introspect data. (patch from Daniel P. Berrange 
3491         <dan at berrange.com>)
3492
3493         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3494         
3495         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3496         _dbus_connection_run_builtin_filters): Changed these to
3497         be unlock_no_update functions and call 
3498         _dbus_connection_send_unlocked_no_update instead of
3499         dbus_connection_send to avoid locking errors.
3500         
3501         * doc/TODO: Removed the make Ping test TODO
3502         
3503 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3504
3505         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3506         We now copy the message from a DBusError and then free 
3507         the error object befor throwing the error
3508
3509         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3510         DBusBindingOutputMode enum which was causing a warning.
3511         #include <time.h> so using time_t is explicitly defined
3512
3513 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3514
3515         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3516         - dbus/dbus-bus.c
3517         (internal_bus_get): new method that take over the heavy lifting
3518         of dbus_bus_get and adds the ability to get a private connection
3519         to the bus
3520         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3521         interface as in previous versions
3522         (dbus_bus_get_private): new method that is a wrapper to 
3523         internal_bus_get to get a private connection to the bus
3524
3525         - dbus/dbus-bus.h
3526         (dbus_bus_get_private): add as a public libdbus interface
3527
3528         - dbus-1.pc.in: output system_bus_default_address and 
3529         sysconfdir variables so apps can use them when compiling
3530
3531 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3532         * dbus/qt: New Qt bindings
3533
3534 2005-09-12  Waldo Bastian  <bastian@kde.org>
3535
3536         * dbus/dbus-marshal-validate.c,
3537         doc/dbus-specification.xml, test/Makefile.am,
3538         test/test-names.c: allow hyphens in bus names.
3539
3540 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3541
3542         * test/data/auth/fallback.auth-script: we don't
3543         retry the EXTERNAL method when we know its going
3544         to fail anymore.
3545
3546 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3547
3548         * dbus/dbus-connection-internal.h: rename
3549         (add|remove|toggle)_(watch|timeout) to unlocked()
3550         
3551         * dbus/dbus-connection.c: ditto.
3552         
3553         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3554         Update some callers for the renaming.
3555
3556 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3557
3558         * dbus/dbus-auth.c: (record_mechanisms): don't
3559         retry the first auth mechanism because we know
3560         we're just going to get rejected again.
3561         
3562         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3563         Fix thinko ... and what a nasty little bugger to
3564         track down you were ...
3565
3566         * dbus/dbus-connection.c:
3567         (_dbus_connection_add_watch),
3568         (_dbus_connection_remove_watch): add note about
3569         these needing the connection to be locked.
3570         (_dbus_connection_get_dispatch_status_unlocked):
3571         set status to DATA_REMAINS when we queue the
3572         disconnected message.
3573         
3574         * bus/dispatch.c:
3575         (bus_dispatch): fix warning.
3576         (check_existent_service_no_auto_start):
3577         Expect ChildSignaled error too.
3578         (check_existent_hello_from_self): fix another
3579         couple of warnings.
3580         
3581 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3582
3583         Patches from James Willcox <snorp@snorp.net>
3584
3585         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3586
3587         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3588         support array "out" parameters.
3589
3590         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3591         for 16-bit int support.
3592
3593 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3594
3595         * Released 0.50
3596
3597         * Patch from Steve Grubb:
3598         - bus/activation.c (bus_activation_service_reload_test): clean up
3599         some indentation
3600         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3601         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3602         buffer overflows in the test suite.  This is non critical because
3603         it can not be exploited and this code is only run when doing a 
3604         make check.
3605
3606         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3607         - configure.in: Don't check and link against kdecore, only qt headers
3608         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3609         - gcj/org/freedesktop/dbus/Makefile.am:
3610         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3611         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3612         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3613         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3614         - tools/Makefile.am: Add platform extentions to binaries 
3615         (i.e. .exe on windows)
3616
3617         * configure.in: 
3618         - Make it so if no suitable version of python is found we only 
3619         disable building python instead of exiting the configure script
3620         - Require version 2.4 of glib for glib bindings
3621         - Up version to 0.50
3622
3623         * python/__init__.py: Sync version with libdbus to (0,50,0)
3624         
3625 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3626
3627         * dbus/dbus-object-tree.c (find_subtree_recurse):
3628         a couple of optimizations (bug #710):
3629         - do a binary search in the tree
3630         - insert a new child at the right place directly, no need for
3631           qsort anymore
3632         - do the "double alloc" thing when allocating children
3633
3634 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3635
3636         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3637
3638         * python/dbus_bindings.pyx: Memory management foo
3639         (global): remove hacky _user_data_references global list
3640         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3641         tuples. Unref user_data
3642         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3643         (Connection::__del__): Remove and replace with __dealloc__ method
3644         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3645         to keep tuple from being deallocated instead of the global var hack
3646         (Connection::register_object_path): Stuff user_data into a tuple.
3647         Use Py_INCREF to keep tuple from being deallocated instead of the 
3648         global var hack
3649         (Connection::register_fallback): Stuff user_data into a tuple.
3650         Use Py_INCREF to keep tuple from being deallocated instead of the 
3651         global var hack
3652         (GIL_safe_pending_call_notification): Don't unref the message
3653         because it gets unreffed when going out of scope.  Py_XDECREF
3654         the user_data
3655         (PendingCall::__del__): Remove and replace with __dealloc__ method
3656         (PendingCall::set_notify): ref the pending call because we will
3657         need it to stick around for when the notify callback gets called
3658         (Message::__del__): Remove and replace with __dealloc__ method
3659
3660         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3661         gthreads_init to match up with the dbus call
3662
3663         * python/glib.py (init_threads): Changed to threads_init to match
3664         up with gobject.threads_init().  init_threads is kept for backwards
3665         compat but will most likely be deprecated in the future
3666
3667         * test/python/test-client.py: 
3668         - revamp to use Python's unittest functionality
3669         - add async call tests
3670         - setup threads in glib and dbus so we make sure locks are working
3671         
3672 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3673
3674         * python/dbus_bindings.pyx 
3675         (_pending_call_notification, cunregister_function_handler, 
3676         cmessage_function_handler): All callback functions have been rearranged 
3677         to workaround a bug in Pyrex when working with the GIL which is Python's 
3678         global lock when dealing with threads.  They have been split into
3679         a wrapper function (which assumes the name of the old function) and
3680         a _GIL_safe_<function name> function which contains the functionality
3681         of the old function.  This ensures that Pyrex does not write code
3682         the lock is released.
3683         
3684
3685 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3686
3687         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3688         GIL global lock when calling back into Python
3689
3690 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3691
3692         * Release 0.36.2
3693
3694         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3695
3696         * bus/policy.c (bus_policy_allow_user): change default "user is
3697         allowed" to be "user has same uid as the bus itself"; any
3698         allow/deny rules will override.
3699
3700         * bus/session.conf.in: don't allow all users, since now by default
3701         the user that ran the bus can connect.
3702
3703 2005-08-26  Colin Walters  <walters@verbum.org>
3704
3705         * tools/dbus-print-message.c (print_message): Flush stdout
3706         after printing a message, so that redirecting to a file, then
3707         hitting Ctrl-C works.
3708
3709 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3710
3711         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3712         (EmptyMessage): new class that subclasses Message.  This is a workaround
3713         to a Pyrex bug that fails to call __del__ when the Message object goes out
3714         of scope.  For some reason subclassing Message fixes this bug
3715         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3716         - s/Message(_create=0)/EmptyMessage everywhere else
3717         
3718         * test/python/test-{server|client}.py: add the python/.libs directory
3719         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3720         get picked up from the system
3721
3722 2005-08-25  Colin Walters  <walters@verbum.org>
3723
3724         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3725         to Ryan Lortie for the suggestion.
3726
3727 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3728
3729         * test/python: Add python regression test
3730
3731         * configure.in: Add test/python/Makefile
3732
3733         * test/Makefile.am: Add the python directory to SUBDIRS
3734
3735 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3736
3737         * Release 0.36.1
3738
3739         * python/_dbus.py: 
3740         (Interface::connect_to_signal): propigate keywords for match on args
3741         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3742
3743         * python/proxies.py (ProxyObject::connect_to_signal):
3744         propigate keywords for match on args
3745
3746         * Makefile.am: point everything to pyexecdir since python borks
3747         on multilib
3748
3749 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3750
3751         * Release 0.36
3752
3753 2005-08-23  Colin Walters  <walters@verbum.org>
3754
3755         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3756
3757 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3758
3759         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3760         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3761         of defining DBusConnection ourselves.
3762
3763 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3764
3765         * python/dbus.pth: New path file to fix up problems when installing
3766         c libraries to lib64 and python files to lib.
3767
3768         * python/Makefile.am: install dbus.pth in the correct spot
3769
3770 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3771         * ChangeLog: clean up my last entry a bit
3772
3773         * doc/introspect.xsl: New stylesheet for converting introspection data
3774         into browser renderable xhtml. Contributed by Lennart Poettering.
3775
3776         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3777         Poettering.
3778
3779         * doc/dbus-tutorial.xml: 
3780         - Add Colin Walter to the Authors section for authoring the GLib
3781         section
3782         - Add descriptions of the new signature and type functionality
3783         in the Python complex type mapping section
3784         - Add a sidenote on the new args matching functionality in 
3785         the Python bindings
3786         - Fixed up some of the examples to use the gobject.MainLoop
3787         instead of gtk.main
3788         
3789         * python/_dbus.py:
3790         (Bus::_create_args_dict): New. Converts a hash of arg matches
3791         to a more useable format
3792         (Bus::add_signal_receiver): add a **keywords parameter for catching
3793         arg match parameters
3794         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3795         arg match parameters
3796         
3797         * python/matchrules.py:
3798         (MatchTree::exec_matches): Check for arg matches
3799         (SignalMatchRule::add_args_match): New method
3800         (SignalMatchRule::execute): Added args_list parameter as an optimization
3801         so we don't have to marshal the args more than once
3802         (SignalMatchRule::match_args_from_list): New method that checks to see
3803         if the rule's arg matches match an argument list.  Only arguments
3804         set in the rule are checked.
3805         (SignalMatchRule::match_args_from_rule): New method that checks to see
3806         if the rule's arg matches match another rule's.  All args have to match
3807         in order for this method to return true.  If either rule has more args
3808         then it is not a match.
3809         (SignalMatchRule::is_match): Add args match
3810         (SignalMatchRule::repr): Add args to the final output if they exist
3811
3812 2005-08-17  Ross Burton  <ross@burtonini.com>
3813
3814         * glib/dbus-gproxy.c:
3815         (dbus_g_proxy_call_no_reply): unref the message once sent.
3816         (dbus_g_proxy_call): protect against NULL proxy.
3817
3818 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3819
3820         * python/__init__.py: Version updated (0, 43, 0)
3821         
3822         * python/dbus_bindings.pyx: 
3823         - Fixed type objects to have self passed into __init__
3824         - Added the Variant type
3825         - Add the ability to specify types or signatures for Array, Variant 
3826         and Dictionary
3827         (Connection::send_with_reply_handlers): return a PendingCall object
3828         (_pending_call_notification): handle the case when an error is returned 
3829         without an error message in the body
3830         (MessageIter::get_boolean): return True or False instead of an integer
3831         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3832         and add checks for objects with embeded signatures or types (Array, 
3833         Variant and Dictionary)
3834         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3835         (MessageIter::append_dict): handle embeded types or signatures
3836         (MessageIter::append_array): handle embeded types or signatures
3837         (MessageIter::append_variant): new method
3838         
3839         * python/proxies.py:
3840         (DeferedMethod): New. Dummy executable object used when queuing calls 
3841         blocking on introspection data
3842         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3843         or shorter timeouts for method calls
3844         (ProxyObject): Add first pass at an introspection state machine
3845         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3846         introspection. 
3847         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3848         the usual mechanisms for sending messages.  This is to avoid a deadlock
3849         where the Intospect call would be queued waiting for the Introspect 
3850         call to finish ;-)
3851         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3852         when introspection returns with no error
3853         (ProxyObject::_introspect_error_handler): New.  This method is called 
3854         when introspection encounters an error
3855         (ProxyObject::__getattr__): Code to handle different introspection 
3856         states.  Queue async calls or block blocking calls if we are 
3857         introspecting.  Pass through as normal if we are not or are done with 
3858         introspecting.
3859         
3860         * python/service.py: Import signal and method from decorators.py
3861
3862         * python/types.py: Add Variant type
3863
3864 2005-08-16  Colin Walters  <walters@verbum.org>
3865
3866         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3867         DBusError message is NULL.
3868
3869 2005-08-09  Havoc Pennington  <hp@redhat.com>
3870
3871         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3872         malloc'd copy of the name parameter
3873
3874 2005-08-09  Havoc Pennington  <hp@redhat.com>
3875
3876         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3877         warning if the reply serial is set to 0
3878
3879 2005-08-04  Colin Walters  <walters@verbum.org>
3880
3881         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3882         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3883         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3884         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3885         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3886         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3887         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3888         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3889         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3890         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3891         
3892         Prefix name with _ to ensure they're not exported.  All callers
3893         updated.
3894
3895         * glib/dbus-gvalue.c (typecode_to_gtype)
3896         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3897         (signature_iter_to_g_type_dict)
3898         (signature_iter_to_g_type_array)
3899         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3900         (dbus_gtypes_from_arg_signature):
3901         Move to dbus-gsignature.c.
3902
3903         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3904         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3905         (dbus_binding_tool_output_glib_client): Ditto.
3906
3907         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3908         and dbus-gsignature.h
3909
3910         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3911         unused variable.
3912
3913 2005-08-03  Colin Walters  <walters@verbum.org>
3914
3915         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3916         catch any incompatible changes accidentally made.
3917
3918 2005-08-03  Havoc Pennington  <hp@redhat.com>
3919
3920         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3921         typo, from Julien Puydt
3922
3923         * bus/connection.c (bus_connection_disconnected): we were always
3924         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3925
3926 2005-08-01  Colin Walters  <walters@verbum.org>
3927
3928         Patch from Joe Markus Clarke:   
3929         
3930         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3931         use-after-free.
3932
3933 2005-08-01  Colin Walters  <walters@verbum.org>
3934         
3935         Patch from Joe Markus Clarke:   
3936         
3937         * tools/dbus-send.c (main): 
3938         
3939         Don't use C99 style initializers (bug #3933).
3940         
3941 2005-08-01  Colin Walters  <walters@verbum.org>
3942
3943         Patch from Joe Markus Clarke:   
3944
3945         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3946         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3947         * glib/dbus-gobject.c (write_interface):
3948
3949         Don't use C99 style initializers (bug #3933).
3950
3951 2005-07-31  Havoc Pennington  <hp@redhat.com>
3952
3953         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3954         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3955
3956 2005-07-30  Havoc Pennington  <hp@redhat.com>
3957
3958         * fix a bunch of Doxygen warnings and mistakes
3959
3960 2005-07-30  Havoc Pennington  <hp@redhat.com>
3961
3962         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3963         DBUS_BUILD_TESTS since it's now used in production code
3964
3965 2005-07-29  Havoc Pennington  <hp@redhat.com>
3966
3967         * test/glib/test-profile.c (write_junk): initialize the junk
3968         buffer so valgrind doesn't have a breakdown
3969
3970 2005-07-29  Havoc Pennington  <hp@redhat.com>
3971
3972         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3973         (match_rule_matches): remove unused arg
3974         (test_matching): add tests for match_rule_matches()
3975
3976         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3977         do arg0='foo' arg5='bar' in the match rules
3978         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3979
3980         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3981
3982 2005-07-29  Ross Burton  <ross@openedhand.com>
3983
3984         * dbus/dbus-connection.c:
3985         Don't create a DBusCondVar which is never used.
3986
3987 2005-07-27  Ross Burton  <ross@openedhand.com>
3988
3989         * dbus/dbus-message.c:
3990         Reduce the size of the maximum cached message to 10K.
3991
3992 2005-07-25  Ross Burton  <ross@openedhand.com>
3993
3994         * glib/dbus-gproxy.c:
3995         Remove matches when all proxies are unregistered.
3996
3997 2005-07-24  Colin Walters  <walters@verbum.org>
3998
3999         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
4000         typedata; recursive arrays won't have it.
4001
4002         * test/glib/test-dbus-glib.c:
4003         * test/glib/test-service-glib.c:
4004         * test/glib/test-service-glib.xml: Add recursive arrays tests.
4005         
4006 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
4007
4008         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
4009         proxies.py, service.py: Cleanup of code after running it through the
4010         pyflakes code checker mostly dealing with undefined names.  
4011         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
4012
4013 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
4014
4015         * NEWS: Update to 0.35.2
4016
4017 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
4018
4019         * python/_dbus.py: Remove import of the dbus.services
4020         module as it no longer exists (patch from Dimitur Kirov)
4021
4022         * python/service.py (Object::__init__): Fixed typo
4023         s/name/bus_name (patch from Dimitur Kirov)
4024
4025         * python/examples/example-signal-emitter.py: import dbus.glib
4026         to get the main loop and use glib mainloop instead of gtk so
4027         X doesn't have to be running.
4028
4029         * python/examples/example-signal-recipient.py: import dbus.glib
4030         to get the main loop and use glib mainloop instead of gtk so
4031         X doesn't have to be running. Import the decorators module
4032         directly.
4033
4034         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
4035         didn't pick up on but are needed to build
4036
4037         * configure.in: upped version to 0.35.2
4038
4039         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
4040         added Colin Walters' SELinux API rename patch from head 
4041         s/unix sercurity context/selinux security context/
4042
4043 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
4044
4045         * python/Makefile.am: dbus_binding.pxd.in should be included 
4046         in EXTRA_DIST not dbus_binding.pxd
4047         fix up $(srcdir) hopefully for the last time
4048
4049         * NEWS: Update to 0.35.1
4050
4051 2005-07-16  Colin Walters  <walters@verbum.org>
4052
4053         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
4054         from bus_driver_handle_get_connection_unix_security_context.  Update for
4055         error usage.
4056         (message_handlers): Update for renames.
4057
4058         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
4059         _dbus_string_init failure correctly.
4060         (bus_selinux_append_context): Convert SID to context.  Append it
4061         as a byte array.
4062         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
4063         hasn't been called.
4064
4065         * bus/selinux.h: Update prototype.
4066
4067         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
4068         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
4069
4070 2005-07-15  Colin Walters  <walters@verbum.org>
4071
4072         * doc/TODO: Add note about convenience wrappers.
4073
4074 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4075
4076         * NEWS: Update to 0.35
4077
4078 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4079
4080         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
4081         so distcheck doesn't fail
4082
4083         * glib/examples/Makefile.am: Add example-service.xml and 
4084         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
4085
4086         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
4087         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
4088
4089         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
4090         compiler looks in the right places during distcheck
4091
4092 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4093
4094         * glib/example/Makefile.am: Fix a typo which cause make distcheck
4095         to fail
4096
4097 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4098
4099         * python/examples/example-service.py,
4100         python/examples/example-signal-emitter.py: Fixed up examples
4101         for API changes
4102
4103 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4104
4105         * python/__init__.py: Upped to version (0,42,0) because of
4106         the API change
4107
4108 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4109
4110         * ChangeLog: fix date in last entry
4111
4112         * configure.in, bus/system.conf.in: add the ability to configure 
4113         the system bus user at compiletime with the --with-dbus-user flag
4114         (patch from Kristof Vansant)
4115
4116 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4117
4118         * bus/dispatch.c, test/test-service.c: Add testcase
4119         for sending messages to oneself (TODO item).
4120
4121         * python/service.py (class Object): Swap ordering of bus_name 
4122         and object_path parameters to better support inheritance.
4123
4124         * doc/dbus-tutorial.xml: change Python docs to reflect change
4125         in parameter ordering and fix the inheritance section.
4126
4127         * doc/TODO: remove sending message to oneself TODO item
4128
4129 2005-07-15  Ross Burton  <ross@openedhand.com>
4130
4131         * glib/dbus-gproxy.c:
4132         Fix a leak when calling methods via the proxy.
4133
4134 2005-07-15  Colin Walters  <walters@verbum.org>
4135
4136         * bus/selinux.c (bus_selinux_append_context): Wrap in
4137         HAVE_SELINUX.
4138
4139 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4140
4141         * python/_dbus.py (Bus::remove_signal_receiver):
4142         don't add a callback to the match if none has been passed in
4143         
4144         * python/matchrules.py (SignalMatchTree::remove): if the rule
4145         being matched does not have a callback treat it as a wildcard
4146         fix matching logic
4147
4148         * doc/dbus-tutorial.xml: Add Python tutorial
4149
4150 2005-07-14  Colin Walters  <walters@verbum.org>
4151
4152         * bus/driver.c
4153         (bus_driver_handle_get_connection_unix_security_context): New function.
4154         (message_handlers): Add.
4155
4156         * bus/selinux.c (bus_selinux_append_context): New function; appends
4157         security context to message.
4158
4159         * bus/selinux.h: Prototype.
4160
4161         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
4162
4163 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4164
4165         * bus/activation.c: clean up all tabs to be 8 spaces 
4166         (bus_activation_activate_service): make sure we clean up
4167         if activation fails
4168
4169         * bus/dispatch.c: clean up all tabs to be 8 spaces 
4170         (check_shell_fail_service_auto_start): New function
4171         tests to make sure we get fail properly when trying to auto start a service
4172         with a faulty command line
4173         (check_shell_service_success_auto_start): New function tests to make sure
4174         auto started services get the arguments on the command line
4175
4176         * test/test-shell-service.c: Added service for testing auto-starting with 
4177         command line arguments
4178
4179         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
4180         test/data/valid-service-files/debug-shell-echo-success.service.in:
4181         Added service files for testing auto-starting with command line arguments
4182
4183         * */.cvsignore: added a bunch of generated files to various .cvsignore files
4184
4185 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
4186
4187         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
4188         
4189         * dbus/Makefile.am: added new files to build.
4190
4191         * bus/activation.c (bus_activation_activate_service): support
4192         activation commands with parameters.
4193
4194         * test/shell-test.c: added test program for the shell parsing
4195         code.
4196
4197 2005-07-13  David Zeuthen  <davidz@redhat.com>
4198
4199         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
4200         64 bit signed and unsigned parameters
4201
4202 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
4203
4204         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
4205
4206         * python/service.py (class Name): renamed BusName to make it clearer
4207         what the object is for (a name on the bus)
4208
4209         * python/examples/example-service.py,
4210         python/examples/example-signal-emitter.py: change the Name object to
4211         BusName
4212
4213 2005-07-12  Colin Walters  <walters@verbum.org>
4214
4215         Patch from Jim Gettys <Jim.Gettys@hp.com>.
4216
4217         * tools/dbus-launch.c: Include sys/select.h.
4218
4219 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
4220         * python/dbus_bindings.pyx.in: removed
4221
4222         * python/dbus_bindings.pyx: Added.
4223         - Fixed some memleaks (patch from 
4224         Sean Meiners <sean.meiners@linspireinc.com>)
4225         - Broke out the #include "dbus_h_wrapper.h" and put it in its
4226         own pxd file (Pyrex definition)
4227         - Broke out glib dependancies into its own pyx module
4228         
4229         * python/dbus_bindings.pdx: Added.
4230         - Defines C class Connection for exporting to other modules
4231
4232         * python/dbus_glib_bindings.pyx: Added.
4233         - New module to handle lowlevel dbus-glib mainloop integration
4234
4235         * python/glib.py: Added.
4236         - Registers the glib mainloop when you import this module
4237
4238         * python/services.py: Removed (renamed to service.py)
4239         
4240         * python/service.py: Added.
4241         - (class Server): renamed Name
4242
4243         * python/__init__.py: Bump ro version (0,41,0)
4244         -don't import the decorators or service module
4245         by default.  These now reside in the dbus.service namespace
4246
4247         * python/_dbus.py (Bus::__init__): Add code run the main loop 
4248         setup function on creation 
4249
4250         * python/examples/example-service.py,
4251         python/examples/example-signal-emitter.py: update examples
4252
4253         * python/examples/gconf-proxy-service.py,
4254         python/examples/gconf-proxy-service2.py: TODO fix these up
4255
4256         * doc/TODO: Addition
4257         - Added a Python Bindings 1.0 section
4258         - added "Add match on args or match on details to match rules"
4259
4260
4261 2005-07-12  Colin Walters  <walters@verbum.org>
4262
4263         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
4264         (statemachine-glue.h): 
4265         * glib/examples/Makefile.am (example-service-glue.h) 
4266         (example-signal-emitter-glue.h): 
4267         * glib/Makefile.am (dbus-glib-error-switch.h): 
4268         Add libtool --mode=execute so we use the built library instead
4269         of any installed one.
4270
4271 2005-07-11  Colin Walters  <walters@verbum.org>
4272
4273         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
4274         (dbus_g_value_types_init): Remove assertion.
4275         (dbus_g_value_get_g_type, dbus_g_value_open)
4276         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
4277         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
4278         functions related to DBusGValue.  Now we marshal/demarshal
4279         structures as GValueArray.
4280         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
4281         structures.
4282         (signature_iter_to_g_type_array): Don't call
4283         signature_iter_to_g_type_struct.
4284         (signature_iter_to_g_type_struct): Delete.
4285         (dbus_gvalue_to_signature): Delete.
4286         (dbus_gvalue_to_signature): New function with same name as other
4287         one; we can convert structures to signatures.
4288         (demarshal_valuearray): New function.
4289         (get_type_demarshaller): Use it.
4290         (demarshal_recurse): Delete.
4291         (marshal_proxy): New function.
4292         (marshal_map): Warn if we can't determine signature from type.
4293         (marshal_collection_ptrarray): Ditto.
4294         (marshal_collection_array): Ditto.
4295         (get_type_marshaller): Use marshal_valuearray.
4296         (marshal_recurse): Delete.
4297         (_dbus_gvalue_test): Add some tests.
4298
4299         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
4300         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
4301         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4302         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4303         (dbus_g_value_free): Remove prototypes.
4304
4305         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
4306         G_TYPE_VALUE_ARRAY.
4307
4308         * glib/examples/example-service.c:
4309         * glib/examples/example-client.c: Implement GetTuple.
4310
4311         * test/glib/test-dbus-glib.c:
4312         * test/glib/test-service-glib.c:
4313         * test/glib/test-service-glib.xml: Add structure tests.
4314
4315 2005-07-10  Colin Walters  <walters@verbum.org>
4316
4317         * doc/TODO: Knock off some GLib items with this patch.
4318
4319         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
4320         (_dbus_gvalue_signals_error): New functions.
4321
4322         * glib/dbus-gvalue-utils.h: Prototype them.
4323
4324         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
4325         and change to not output const/retval flags for input args.  All
4326         callers updated.
4327         (invoke_object_method): Refactor to handle return values.  Add
4328         some more comments in various places.  Remove debug g_print.
4329
4330         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
4331
4332         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
4333         Handle G_TYPE_NONE.
4334         (compute_gsignature): New function; refactored from code from
4335         compute_marshaller and compute_marshaller_name.  Enhance to
4336         handle return values and async ops more cleanly.  Update for
4337         async ops returning NONE instead of BOOLEAN.
4338         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
4339         and output appropriate string.
4340         (generate_glue): Handle return value annotation.  Also don't dump
4341         constness flag for input arguments.
4342
4343         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
4344         files shared between installed library and utilities.
4345         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4346         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4347         binding tool can access gtype utility functions.
4348
4349         * test/glib/test-service-glib.c: 
4350         * test/glib/test-service-glib.xml: 
4351         * test/glib/test-dbus-glib.c: Add some tests for return values.
4352
4353 2005-07-09  Colin Walters  <walters@verbum.org>
4354
4355         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4356         argument if available, not method.
4357
4358         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4359         (invoke_object_method): First, remove some redundant
4360         GValues (object_value, error_value) in favor of working on
4361         array directly.  Second, rework constness to be less buggy.
4362         Now we iterate directly over the argument metadata instead
4363         of parallel iterating over output signature and metadata.
4364
4365         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4366
4367         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4368         annotation on input args.
4369         
4370 2005-07-09  Colin Walters  <walters@verbum.org>
4371
4372         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4373         Define.
4374
4375         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4376         annotation.
4377
4378         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4379         (method_dir_signature_from_object_info): Handle arg_iterate change.
4380         (write_interface): Ditto.
4381         (lookup_object_info): Don't barf if format_version is > 0.
4382         (invoke_object_method): Handle arg constness.
4383
4384         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4385         (arg_info_new): Create.
4386         (arg_info_unref): Destroy.
4387         (arg_info_get_annotations, arg_info_get_annotation) 
4388         (arg_info_add_annotation): New functions.
4389
4390         * glib/dbus-gidl.h: Prototype them.
4391
4392         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4393         args, disallow them in properties.
4394         (parse_annotation): Handle arg annotations.
4395
4396         * test/glib/test-service-glib.xml: 
4397         * test/glib/test-service-glib.c: Update to make some methods
4398         const.
4399
4400 2005-07-08  Colin Walters  <walters@verbum.org>
4401
4402         * test/glib/test-service-glib.xml: 
4403         * test/glib/test-service-glib.c:
4404         * test/glib/test-dbus-glib.c: Test a{sv}.
4405
4406         * glib/examples/statemachine/statemachine.c:
4407         * glib/examples/statemachine/statemachine-server.c:
4408         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4409         add progress bar, etc.
4410
4411         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4412         needed anymore due to generic array/map marshalling.
4413         (dbus_g_value_types_init): Don't register basic arrays or the
4414         string/string hash.
4415         (dbus_gtype_from_signature_iter): Don't try to recurse into
4416         variants.
4417         (dbus_gtype_to_signature): Check collection/map before type
4418         metadata.
4419         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4420         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4421         generic map creation/append functions instead of hash table
4422         specifically.
4423         (get_type_demarshaller): Handle maps.
4424         (demarshal_collection): Dispatch on collection type to either
4425         demarshal_collection_ptrarray or demarshal_collection_array.
4426         (get_type_marshaller): Handle maps.
4427         (marshal_collection): Dispatch collection type to either
4428         marshal_collection_ptrarray or marshal_collection_array.
4429         (_dbus_gvalue_test): New test.
4430
4431         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4432         (hash_free_from_gtype): Use it to free GValues.
4433         (hashtable_append): New function.
4434         (ptrarray_append): Fix prototype.
4435         (slist_append): Ditto.
4436         (_dbus_gvalue_utils_test): Extend tests.
4437
4438         * glib/dbus-gtype-specialized.c
4439         (dbus_g_type_specialized_init_append): Renamed from
4440         dbus_g_type_specialized_collection_init_append.  Remove const from
4441         value, since we steal it.
4442         (dbus_g_type_specialized_map_append): New function.
4443
4444         * glib/dbus-gtype-specialized.h: Update prototypes.
4445         Add DBusGTypeSpecializedMapAppendFunc.
4446
4447         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4448         _dbus_gvalue_test.
4449         
4450         * glib/dbus-gtest.h: Prototype it.
4451
4452 2005-07-08  Ross Burton  <ross@openedhand.com>
4453
4454         * dbus/dbus-glib.h:
4455         Add DBysGAsyncData for the async bindings.
4456
4457         * glib/dbus-binding-tool-glib.c:
4458         Re-enable the async bindings.
4459
4460         * test/glib/test-dbus-glib.c:
4461         Add a test for the generated async bindings.
4462
4463 2005-07-08  Colin Walters  <walters@verbum.org>
4464
4465         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4466         connection concept.
4467         
4468 2005-07-08  Colin Walters  <walters@verbum.org>
4469         
4470         * tools/Makefile.am: Kill of print-introspect in favor of using
4471         dbus-send --print-reply=literal.
4472
4473         * test/glib/test-service-glib.xml: 
4474         * test/glib/test-service-glib.c (my_object_get_objs): New test
4475         for "ao".
4476
4477         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4478         (main): Test GetObjs.
4479
4480         * glib/examples/statemachine/Makefile.am:
4481         * glib/examples/statemachine/sm-marshal.list:
4482         * glib/examples/statemachine/statemachine-client.c:
4483         * glib/examples/statemachine/statemachine-server.c:
4484         * glib/examples/statemachine/statemachine-server.xml:
4485         * glib/examples/statemachine/statemachine.c:
4486         * glib/examples/statemachine/statemachine.h:
4487         * glib/examples/statemachine/statemachine.xml:
4488
4489         New example.
4490
4491         * glib/examples/example-service.c (main): Move invocation
4492         of dbus_g_object_type_install_info earlier, to emphasize it
4493         should only be done once.
4494
4495         * glib/examples/example-signal-emitter.c (main): Ditto.
4496
4497         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4498
4499         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4500         (dbus_gvalue_marshal): Update prototypes.
4501
4502         * glib/dbus-gvalue.c: Update all marshalling functions to take
4503         const GValue instead of GValue.
4504         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4505         types.
4506         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4507         change.
4508         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4509         Return a newly-allocated string.
4510         (demarshal_proxy, demarshal_object_path, demarshal_object)
4511         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4512         we get the wrong types from message.
4513         (get_type_demarshaller): New function, extracted from
4514         dbus_gvalue_demarshal.
4515         (demarshal_collection): New function, demarshals generic
4516         collection.
4517         (dbus_gvalue_demarshal): Just invoke result of
4518         get_type_demarshaller.  Throw error if we don't have one.
4519         (marshal_garray_basic): Abort on OOM.
4520         (get_type_marshaller): New function, extracted from
4521         dbus_gvalue_marshal.
4522         (collection_marshal_iterator, marshal_collection): New functions;
4523         implements generic marshalling for an iteratable specialized
4524         collection.
4525         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4526
4527         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4528         G_TYPE_STRING.
4529         (ptrarray_value_from_gvalue): Ditto.
4530         (ptrarray_append, ptrarray_free): New functions.
4531         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4532         (slist_append, slist_end_append, slist_free): New functions.
4533         (dbus_g_type_specialized_builtins_init): Add append fuctions
4534         for GPtrArray and GSList.  Register GSList.
4535         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4536
4537         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4538         New.
4539         (dbus_g_type_specialized_collection_init_append)
4540         (dbus_g_type_specialized_collection_append)
4541         (dbus_g_type_specialized_collection_end_append): Prototype.
4542         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4543         end_append_func.
4544
4545         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4546         (dbus_g_type_specialized_collection_append) 
4547         (dbus_g_type_specialized_collection_end_append): New functions.
4548         (dbus_g_type_map_value_iterate): Take const GValue.
4549         (dbus_g_type_collection_value_iterate): Ditto.
4550
4551         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4552         _dbus_gvalue_utils_test.
4553         
4554         * glib/dbus-gtest.h: Prototype it.
4555
4556         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4557         using uninitialized owner_list.
4558         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4559         public API.
4560         (dbus_g_proxy_end_call_internal): Update to use error set
4561         from dbus_gvalue_demarshal instead of setting it here.
4562         (dbus_g_proxy_begin_call): Move return_if_fail here.
4563
4564         * glib/dbus-gobject.c (write_interface): Update for
4565         dbus_gtype_to_signature returning new string.
4566
4567         * configure.in: Add glib/examples/statemachine.
4568
4569 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4570
4571         * configure.in: Add a configure option, --with-console-auth-dir
4572         
4573         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4574         new setting.  Patch from Kay Sievers.
4575
4576 2005-07-06  Colin Walters  <walters@verbum.org>
4577
4578         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4579         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4580         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4581         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4582         Delete in favor of dbus_g_proxy_begin_call and
4583         dbus_g_proxy_cancel_call.
4584         (DBusGProxyCall, DBusGProxyCallNotify): New.
4585         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4586         data, and destroy function.  This replaces
4587         dbus_g_pending_call_set_notify.
4588         (dbus_g_proxy_cancel_call): Prototype.
4589         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4590
4591         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4592         pending_calls map.
4593         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4594         internal proxy for calls to the bus. Remove
4595         pending_nameowner_calls, now the internal proxy keeps track.
4596         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4597         pending_nameowner_calls.
4598         (got_name_owner_cb): Update prototype, and use
4599         dbus_g_proxy_end_call.
4600         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4601         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4602         favor of using internal proxy.
4603         (dbus_g_proxy_manager_unregister): Update to use
4604         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4605         (dbus_g_proxy_init): Initialize pending calls map.
4606         (dbus_g_proxy_constructor): New.
4607         (dbus_g_proxy_class_init): Add get/set property functions,
4608         constructor, and add NAME, PATH, and INTERFACE properties.
4609         (cancel_pending_call): New function.
4610         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4611         cancel them.
4612         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4613         (GPendingNotifyClosure): New structure.
4614         (d_pending_call_notify, d_pending_call_free): Moved here from
4615         dbus-glib.c.
4616         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4617         ordering.
4618         (manager_begin_bus_call): New internal function for talking to
4619         internal bus proxy.
4620         (dbus_g_proxy_new): Construct object using GObjet properties.
4621         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4622         Create closure of same, and insert call into map of pending calls.
4623         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4624         call.  Look up pending call in current set.  Remove it when we've
4625         completed.
4626         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4627         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4628         and destroy function directly.
4629         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4630         (dbus_g_proxy_call): Invoke with NULL callback.
4631         (dbus_g_proxy_cancel_call): New function, replaces
4632         dbus_g_pending_call_cancel.
4633
4634         * glib/dbus-gparser.c (validate_signature): Fix call to
4635         dbus_set_g_error.
4636
4637         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4638         New quark for attaching metadata to GType.
4639         (info_hash): Delete.
4640         (lookup_object_info): Look up using quark.
4641         (dbus_g_object_type_install_info): Check that a type is classed,
4642         not that it's an object.  Also just install type data using quark
4643         instead of using global hash.
4644
4645         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4646         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4647         (GPendingNotifyClosure): Delete.
4648         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4649         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4650
4651         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4652         client method generation until we can fix it...
4653         
4654         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4655         (load_from_service_thread_func): Ditto.
4656
4657         * tools/dbus-names-model.c (struct NamesModel): Hold
4658         DBusGProxyCall.
4659         (have_names_notify): Update prototype, use
4660         dbus_g_proxy_cancel_call.
4661         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4662
4663         * tools/dbus-monitor.c (filter_func): Update for print_message
4664         API change.
4665
4666         * test/glib/test-dbus-glib.c: Add more tests for async
4667         invocations.  Update many begin_call/end_call pairs to just use
4668         dbus_g_proxy_call.
4669
4670         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4671         allows us to dump print-introspect.c.
4672
4673         * tools/dbus-print-message.h (print_message): Add literal argument
4674         to print_message which is intended to allow printing arguments without
4675         metadata like "string=".
4676
4677         * tools/dbus-print-message.c (print_iter): Add literal argument.
4678         (print_message): Allow printing string messages literally.
4679
4680 2005-07-05  Colin Walters  <walters@verbum.org>
4681
4682         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4683         Remove value refcount leak, original patch from Jorn Baayen
4684         <jorn@openedhand.com>.  Also remove useless extra value in favor
4685         of prepending to value array directly.
4686
4687 2005-07-02  Colin Walters  <walters@verbum.org>
4688
4689         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4690
4691 2005-07-01  Colin Walters  <walters@verbum.org>
4692
4693         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4694         
4695         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4696         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4697         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4698         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4699
4700 2005-06-30  Colin Walters  <walters@verbum.org>
4701
4702         * test/glib/test-dbus-glib.c:
4703         * test/glib/test-service-glib.c:
4704         * test/glib/test-service-glib.xml: Update tests for new error
4705         setting bits, also add async tests (patch from Ross Burton).
4706
4707         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4708         DBUS_GLIB_THREADS_LIBS.
4709
4710         * glib/dbus-gproxy.c (get_name_owner)
4711         (dbus_g_pending_call_end_valist): Ditto.
4712
4713         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4714         domain (GQuark) to DBusGErrorInfo.  
4715         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4716         quark in error_metadata.  Take message interface as default
4717         error message interface.
4718         (gerror_to_dbus_error_message): Pass message interface.
4719         (dbus_set_g_error): Resurrected.
4720         (dbus_g_error_info_free): New function.
4721         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4722         of _peek to actually create the object class if it hasn't been
4723         created yet.
4724         (dbus_g_error_domain_register): New function.
4725
4726         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4727
4728         * glib/dbus-gparser.c (validate_signature): Ditto.
4729
4730         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4731         (dbus_g_error_domain_register): Prototype.
4732
4733         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4734         Update tests.
4735
4736 2005-06-29  Colin Walters  <walters@verbum.org>
4737
4738         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4739         DBUS_TYPE_G_OBJECT_PATH.
4740
4741         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4742         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4743         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4744         (dbus_g_object_path_get_g_type): New function.
4745         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4746         to DBUS_TYPE_G_OBJECT_PATH by default.
4747         (demarshal_proxy): Remove unused name variable.
4748         (demarshal_object_path, marshal_object_path): New functions.
4749         (demarshal_proxy_array, marshal_proxy_array): Delete.
4750         
4751         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4752         DBUS_TYPE_G_OBJECT_PATH to char *.
4753         (dbus_g_type_get_lookup_function): Map builtin
4754         DBUS_TYPE_G_OBJECT_PATH.
4755
4756         * test/glib/test-dbus-glib.c
4757         * test/glib/test-service-glib.c (my_object_objpath): 
4758         Adapt tests to new object path marshalling.
4759
4760 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4761
4762         * configure.in: force check for Python >= 2.4
4763
4764 2005-06-29  Colin Walters  <walters@verbum.org>
4765         
4766         Patch from Ross Burton <ross@openedhand.com>
4767         
4768         * glib/dbus-gobject.c (invoke_object_method): Unset object
4769         value in all cases, not only in async case.
4770
4771 2005-06-29  Colin Walters  <walters@verbum.org>
4772
4773         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4774         name_call for keeping track of any outgoing GetNameOwner call.
4775         Also add for_owner and associated.
4776         (struct _DBusGProxyManager): Add owner_names, which is hash table
4777         that maps a base name to a list of names it owns (that we're
4778         interested in).  Add pending_nameowner_calls which is a list of
4779         all outstanding GetNameOwner; avoids us having to iterate over
4780         every proxy.  Add unassociated_proxies which keeps track of name
4781         proxies with no associated name owner.
4782         (dbus_g_proxy_manager_unref): Destroy owner_names.
4783         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4784         name refcounts.
4785         (find_name_in_info, name_owner_foreach)
4786         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4787         (dbus_g_proxy_manager_monitor_name_owner)
4788         (dbus_g_proxy_manager_unmonitor_name_owner)
4789         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4790         New functions; they manipulate the owner_names mapping.
4791         (got_name_owner_cb): New function.
4792         (get_name_owner): New function, extracted from
4793         dbus_g_proxy_new_for_name_owner.
4794         (dbus_g_proxy_manager_register): For now we need to keep track of
4795         all NameOwnerChanged.  Also if the proxy is for a name, if we
4796         don't already know the name owner, queue a new GetNameOwner
4797         request and add it to our list of unassociated proxies.  Otherwise
4798         inc the refcount.
4799         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4800         cancel any pending GetNameOwner call, etc.
4801         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4802         the owner_names mapping to look up the current names for the
4803         signal source, and dispatch to any proxies for that name.
4804         (dbus_g_proxy_new): Initialize new members.
4805         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4806         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4807         (dbus_g_pending_call_end_valist): New function, extracted from
4808         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4809         but want to use the GLib infrastructure.  Also note how many
4810         arguments in reply were over.
4811         (dbus_g_pending_call_end): New function, just call
4812         dbus_g_pending_call_end_valist.
4813         (dbus_g_proxy_end_call_internal): Just call
4814         dbus_g_pending_call_end_valist.
4815
4816         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4817         of builtin marshaller for STRING_STRING_STRING.
4818
4819         * test/glib/test-dbus-glib.c: 
4820         * test/glib/test-service-glib.c:
4821         * test/glib/test-service-glib.xml:
4822         Extend tests to cover name proxies, destruction of owner proxies,
4823         etc.
4824         
4825         * glib/examples/example-signal-recipient.c
4826         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4827         
4828         * tools/dbus-send.c (main): Print D-BUS error name in addition
4829         to message.
4830
4831 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4832
4833         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4834         cmessage_function_handler): Patch from 
4835         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4836         by using the Py_GILState_Ensure/Release to synchronize with the
4837         python runtime.
4838         
4839 2005-06-28  Ray Strode  <rstrode@redhat.com>
4840
4841         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4842         babysitter helper process on last unref, bug #2813.
4843
4844 2005-06-27  Colin Walters  <walters@verbum.org>
4845
4846         * test/glib/test-dbus-glib.c: 
4847         * test/glib/test-service-glib.c:
4848         * test/glib/test-service-glib.xml:
4849         Test hash table signal emitting.
4850
4851         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4852         types to their fundamental basis types, since this is what
4853         marshallers operate on.  Also add an entry for VOID__BOXED.
4854         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4855
4856 2005-06-26  Havoc Pennington  <hp@redhat.com>
4857
4858         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4859         from Don Park
4860
4861 2005-06-26  Colin Walters  <walters@verbum.org>
4862
4863         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4864         (dbus_g_error_set): New public function from its ashes; used by
4865         both service-side method implementation and GLib bindings
4866         internals.
4867         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4868         (_dbus_glib_test): Add some tests.
4869
4870         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4871
4872         * test/glib/test-service-glib.c (my_object_throw_error): Use
4873         dbus_g_error_set.
4874
4875         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4876         errors thrown by dbus_g_error_set.
4877
4878         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4879
4880         * glib/dbus-gparser.c (validate_signature): Ditto.
4881
4882         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4883         (dbus_g_proxy_end_call_internal): Ditto.
4884
4885         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4886         converts DBUS_ERROR_x to DBUS_GERROR_x.
4887         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4888
4889         * doc/TODO: Remove error TODO.
4890
4891         * doc/dbus-tutorial.xml: Update with documentation about error
4892         handling.
4893
4894         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4895         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4896         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4897
4898 2005-06-22  Colin Walters  <walters@verbum.org>
4899         
4900         Patch from Ross Burton <ross@openedhand.com>
4901
4902         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4903
4904 2005-06-20  Colin Walters  <walters@verbum.org>
4905
4906         * configure.in: Add glib/examples.
4907
4908         * glib/Makefile.am: Add examples/
4909
4910         * glib/examples/.cvsignore
4911         * glib/examples/Makefile.am
4912         * glib/examples/example-client.c
4913         * glib/examples/example-service.c
4914         * glib/examples/example-service.xml
4915         * glib/examples/example-signal-emitter.c
4916         * glib/examples/example-signal-emitter.xml
4917         * glib/examples/example-signal-recipient.c:
4918         New files; GLib binding examples, ported from
4919         python/examples.
4920
4921 2005-06-20  Colin Walters  <walters@verbum.org>
4922
4923         * dbus/dbus-glib.h: 
4924         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4925         dbus_g_proxy_call.
4926
4927         * glib/dbus-binding-tool-glib.c: 
4928         * doc/dbus-tutorial.xml: 
4929         * test/glib/test-dbus-glib.c: Update for rename.
4930         
4931 2005-06-20  Colin Walters  <walters@verbum.org>
4932
4933         Patch suggested by Ross Burton <ross@openedhand.com>
4934
4935         * glib/dbus-gobject.c (export_signals): Free signal name.
4936         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4937         memory leak.  Add a bit of documentation.
4938         (dbus_g_method_return_error): Free context, and note we do
4939         so.
4940
4941 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4942
4943         * dbus/dbus-glib.h:
4944         * glib/dbus-gobject.c:
4945         * glib/dbus-gproxy.c:
4946         * glib/dbus-gvalue.c: Predeclare structs as 
4947         typedef struct _Something Something instead of 
4948         typedef struct Something Something, so we can 
4949         redeclare the prototypes. Other GNOME libraries 
4950         do this already.
4951
4952 2005-06-17  Colin Walters  <walters@verbum.org>
4953
4954         * tools/dbus-names-model.c (have_names_notify): Fix call
4955         to dbus_g_proxy_end_call.
4956         
4957 2005-06-17  Colin Walters  <walters@verbum.org>
4958
4959         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4960         spew warnings if we get malformed remote signals.
4961
4962         * glib/dbus-gobject.c (propsig_iterate): New function.
4963         (lookup_object_info): New function, extracted from
4964         lookup_object_and_method.
4965         (introspect_properties, introspect_signals): Delete; these
4966         are merged into write_interface.
4967         (write_interface): Write out signals and properties here;
4968         dump the org.gtk.object stuff and use the interface given
4969         in the introspection data blob.  Also fix up property XML.
4970         (lookup_values): New function.
4971         (introspect_interfaces): Gather a mapping from interface to a
4972         list of its methods, signals, and properties, then write out
4973         each interface.
4974         (lookup_object_and_method): Use lookup_object_info.
4975         (struct DBusGSignalClosure): Add interface.
4976         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4977         we can just use the constant data.
4978         (dbus_g_signal_closure_finalize): Don't free signal name.
4979         (signal_emitter_marshaller): Use interface from signal closure.
4980         (export_signals): Only export signals mentioned in introspection
4981         blob.
4982         (dbus_g_connection_register_g_object): Warn if we have no
4983         introspection data for an object.
4984         (funcsig_equal): Remove unused variable.
4985         (dbus_g_object_register_marshaller): Take varargs instead of
4986         list.
4987         (dbus_g_object_register_marshaller_array): New function,
4988         extracted from old dbus_g_object_register_marshaller.
4989
4990         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4991         signals and property data.
4992         (write_quoted_string): New function, extracted from generate_glue.
4993         (generate_glue): Write signals and properties to introspection
4994         blob.
4995
4996         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4997         exported_signals and exported_properties.
4998         (dbus_g_object_register_marshaller): Update prototype.
4999         (dbus_g_object_register_marshaller_array): Prototype.
5000         
5001         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
5002
5003         * test/glib/test-service-glib.c: Add new test signals and method
5004         to emit them.
5005
5006         * test/glib/test-service-glib.xml: Add some test signals.
5007
5008         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
5009         and my-object-marshal.h
5010         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
5011         my-object-marshal.c.
5012         (my-object-marshal.c, my-object-marshal.h): Implement.
5013
5014         * test/glib/.cvsignore: Update.
5015
5016         * doc/TODO: Remove two GLib TODO items fixed by this
5017         patch.
5018
5019 2005-06-16  Colin Walters  <walters@verbum.org>
5020
5021         * doc/TODO: Update for GLib bindings.
5022         
5023 2005-06-16  Colin Walters  <walters@verbum.org>
5024
5025         * glib/dbus-binding-tool-glib.c:
5026         * glib/dbus-gobject.c:
5027         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
5028         from Ross Burton, for his GLib bindings work.
5029
5030 2005-06-16  Colin Walters  <walters@verbum.org>
5031
5032         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
5033         to iterate instead of walking to G_TYPE_INVALID.
5034
5035         Patch based on a patch from Ryan Gammon.
5036
5037 2005-06-16  Colin Walters  <walters@verbum.org>
5038
5039         * bus/bus.c (bus_context_new): Set parser to NULL
5040         after we unref it (Patch from Chris Boscolo, #2174).
5041         
5042 2005-06-16  Colin Walters  <walters@verbum.org>
5043
5044         * python/dbus_bindings.pyx.in: Import size_t,
5045         __int64_t, __uint64_t, and __signed.
5046
5047         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
5048         Define cmsg struct, output it.
5049         (_dbus_read_credentials_unix_socket):
5050         Use cmsg struct.
5051         
5052         Patch from Joe Markus Clarke for FreeBSD support.
5053         
5054 2005-06-16  Colin Walters  <walters@verbum.org>
5055
5056         * tools/dbus-send.c (append_array): Use strtok.
5057         (append_dict): New function.
5058         (type_from_name): New function, extracted from main.
5059         (main): Handle sending dicts.
5060
5061         * tools/dbus-print-message.c (print_iter): Print dict
5062         entries.
5063         
5064 2005-06-16  Colin Walters  <walters@verbum.org>
5065
5066         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
5067         values as the empty string (#2948).
5068         
5069 2005-06-16  Colin Walters  <walters@verbum.org>
5070
5071         * dbus/Makefile.am:
5072         * mono/doc/Makefile.am:
5073         * test/glib/Makefile.am:
5074
5075         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
5076
5077 2005-06-16  Colin Walters  <walters@verbum.org>
5078
5079         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
5080         header byte order from expected byte order (Patch from Chris Wilson, #3475).
5081
5082         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
5083         Increment pointer after swapping fixed array.  Add assertion
5084         for array length.
5085                 
5086 2005-06-15  Colin Walters  <walters@verbum.org>
5087
5088         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
5089         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
5090         
5091 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5092
5093         * NEWS: Update to 0.34
5094
5095 2005-06-15  David Zeuthen  <davidz@redhat.com>
5096
5097         * configure.in (LT_CURRENT): Revert back to 1 as the library
5098         hasn't changed and we've certainly not committed to protocol
5099         stability yet.  All this does is to break ABI. See commit note
5100         from hp@redhat.com 2005-05-05 for details.
5101         
5102 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5103
5104         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
5105         (_dbus_connection_run_builtin_filters): New method
5106         (dbus_connection_dispatch): Run the builtin filters which in turn
5107         runs the peer filter which handles Ping messages.
5108
5109         * doc/TODO: 
5110          - Ping isn't handled: This patch fixes it
5111          
5112          - Add a test case for the Ping message: added TODO item
5113
5114 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5115
5116         * dbus/dbus-message.c:
5117         (dbus_message_has_path): New method
5118         (dbus_message_has_interface): New method
5119         (dbus_message_has_member): New method
5120
5121         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
5122         New method
5123
5124         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
5125         the keyring directory is private to the user
5126
5127         * doc/TODO:
5128          - The convenience functions in dbus-bus.h should perhaps have
5129          the signatures that they would have if they were autogenerated
5130          stubs. e.g. the acquire service function. We should also evaluate
5131          which of these functions to include, in light of the fact that
5132          GLib/Qt native stubs will probably also exist.: Punted
5133
5134          - add dbus_message_has_path(), maybe has_member/interface:
5135          fixed in this patch
5136
5137          - in dbus-keyring.c, enforce that the keyring dir is not
5138          world readable/writable: Fixed in this patch
5139
5140 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5141
5142         * dbus/dbus-marshal-validate.h: Added a new validation
5143         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
5144         out of memory errors when validating signitures
5145
5146         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
5147         in places where we previously used DBUS_VALID and a FALSE return 
5148         value to indicate OOM
5149         
5150         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
5151         Use a stack to track the number of elements inside containers.  The 
5152         stack values are then used to validate that dict entries have only two
5153         elements within them.
5154         (validate_body_helper): check the reason for failure when validating
5155         varients
5156         
5157         * dbus/dbus-message.c (load_message): use 
5158         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
5159         DBUS_VALID and a FALSE return value to indicate OOM
5160
5161         * doc/TODO: remove "- validate dict entry number of fields" as this
5162         patch fixes it
5163
5164 2005-06-14  David Zeuthen  <davidz@redhat.com>
5165
5166         * bus/bus.c (process_config_every_time): Drop existing conf-dir
5167         watches (if applicable) and add new watches
5168
5169         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
5170         (main): Setup SIGIO signal handler if using D_NOTIFY
5171
5172         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
5173
5174         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
5175         (merge_included): Also merge conf_dirs list
5176         (bus_config_parser_unref): Clear conf_dirs list
5177         (include_dir): Add directory to conf_dirs list
5178         (bus_config_parser_get_conf_dirs): New function
5179
5180         * bus/dir-watch.[ch]: New files
5181
5182         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
5183
5184         * configure.in: Add checks for D_NOTIFY on Linux
5185
5186 2005-06-14  Colin Walters  <walters@verbum.org>
5187
5188         * glib/dbus-binding-tool-glib.c:
5189         * glib/dbus-gobject.c:
5190         * glib/dbus-gvalue.c: Fix indentation and brace style.
5191         
5192 2005-06-14  Ross Burton <ross@openedhand.com>.
5193
5194         * glib/dbus-glib.h: Make DBusGMethodInvocation
5195         a private structure.  Rearrange prototypes a bit.
5196         
5197         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
5198         documentation for first_arg_type.
5199         
5200         * glib/dbus-gobject.c: Move DBusGMethodInvocation
5201         here, add documentation.  Move dbus_g_method_return
5202         and dbus_g_method_return_error into public API
5203         section.
5204
5205 2005-06-14  Colin Walters  <walters@verbum.org>
5206
5207         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
5208         Add missing return statements, noticed by Ross Burton.
5209         
5210 2005-06-13  Ross Burton <ross@openedhand.com>.
5211
5212         * glib/dbus-gobject.c: Handle errors on message
5213         demarshalling by sending error message back.
5214         * glib/dbus-gvalue.c: Initialize return variables.
5215
5216 2005-06-13  Colin Walters  <walters@verbum.org>
5217
5218         * glib/Makefile.am: Fix thinko in last patch.
5219
5220 2005-06-13  Colin Walters  <walters@verbum.org>
5221
5222         * glib/Makefile.am: Move dbus-gtype-specialized.c
5223         and dbus-gtype-specialized.h into a _HEADERS variable,
5224         install them.
5225
5226 2005-06-12  Colin Walters  <walters@verbum.org>
5227
5228         Async signals and various bugfixes and testing by
5229         Ross Burton <ross@openedhand.com>.
5230
5231         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
5232         (dbus_gvalue_genmarshal_name_from_type)
5233         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
5234         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
5235         (dbus_g_value_types_init, dbus_gtype_from_signature)
5236         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
5237         (dbus_gtypes_from_arg_signature): New function prototypes.
5238         (dbus_gvalue_demarshal): Take context and error arguments.
5239         (dbus_gvalue_demarshal_variant): New function.
5240         (dbus_gvalue_demarshal_message): New function.
5241         (dbus_gvalue_store): Delete.
5242
5243         * glib/dbus-gvalue.c:
5244
5245         File has been almost entirely rewritten; now we special-case
5246         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
5247         hash tables correctly, etc.  Full support for recursive values
5248         is not yet complete.
5249
5250         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
5251         argument of signal to G_TYPE_POINTER since we now pass a
5252         structure.
5253         (lookup_g_marshaller): Delete in favor of
5254         _dbus_gobject_lookup_marshaller.
5255         (marshal_dbus_message_to_g_marshaller): Use
5256         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
5257         to handle remote signal callbacks.
5258         (dbus_g_proxy_new_from_proxy): New function; creates a new
5259         DBusGProxy by copying an existing one.
5260         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
5261         (dbus_g_proxy_get_path): New functions.
5262         (dbus_g_proxy_marshal_args_to_message): New function;
5263         factored out of existing code.
5264         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
5265         from a varargs array.
5266         (dbus_g_proxy_begin_call_internal): New function.
5267         (dbus_g_proxy_end_call_internal): New function.
5268         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
5269         as arguments; simply invoke dbus_g_proxy_begin_call_internal
5270         after collecting args into value array.
5271         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
5272         invoke dbus_g_proxy_end_call_internal.
5273         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
5274         end_call_internal.
5275         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
5276         types.
5277         (array_free_all): New function.
5278         (dbus_g_proxy_add_signal): Take GTypes.
5279
5280         * glib/dbus-gobject.h:
5281         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5282         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
5283         Prototype.
5284
5285         * glib/dbus-gobject.c: Add a global marshal_table hash which
5286         stores mappings from type signatures to marshallers.  Change lots
5287         of invocations of dbus_gtype_to_dbus_type to
5288         dbus_gtype_to_signature.
5289         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5290         (introspect_signals): Fix test for query.return_type.
5291         (set_object_property): Update invocation of dbus_gvalue_demarshal.
5292         (invoke_object_method): Many changes.  Handle asynchronous
5293         invocations.  Convert arguments with
5294         dbus_gvalue_demarshal_message.  Handle errors.  Use
5295         DBusSignatureIter instead of strlen on args. Handle all arguments
5296         generically.  Special-case variants.
5297         (dbus_g_method_return, dbus_g_method_return_error): New function.
5298         (DBusGSignalClosure): New structure, closes over signal
5299         information.
5300         (dbus_g_signal_closure_new): New function.
5301         (dbus_g_signal_closure_finalize): New function.
5302         (signal_emitter_marshaller): New function; is special marshaller
5303         which emits signals on bus.
5304         (export_signals): New function; introspects object signals and
5305         connects to them.
5306         (dbus_g_object_type_install_info): Take GType instead of
5307         GObjectClass.
5308         (dbus_g_connection_register_g_object): Invoke export_signals.
5309         (dbus_g_connection_lookup_g_object): New function.
5310         (DBusGFuncSignature) New structure; used for mapping type
5311         signatures to marshallers.
5312         (funcsig_hash): New function; hashes DBusGFuncSignature.
5313         (funcsig_equal): New function; compares DBusGFuncSignature.
5314         (_dbus_gobject_lookup_marshaller): New function.
5315         (dbus_g_object_register_marshaller): New function; used to
5316         register a marshaller at runtime for a particular signature.
5317
5318         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
5319
5320         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
5321         which notes a server method implementation should be
5322         asynchronous.
5323
5324         * glib/dbus-binding-tool-glib.c
5325         (dbus_binding_tool_output_glib_server): Call
5326         dbus_g_value_types_init.
5327         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
5328         variants specially.
5329         (dbus_g_type_get_lookup_function): Turn GType into an invocation
5330         of a lookup function.
5331         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
5332         (write_untyped_out_args): New method; write output arguments.
5333         (write_formal_declarations_for_direction): Function for
5334         writing prototypes.
5335         (write_formal_parameters_for_direction): Function for
5336         writing implementations.
5337         (write_typed_args_for_direction): Function for writing
5338         arguments prefixed with GTypes.
5339         (write_async_method_client): Write out async version
5340         of method.
5341
5342         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
5343         (dbus_g_type_get_marshal_name): Move mapping from GType
5344         to marshal name into here.
5345         (dbus_g_type_get_c_name): Move into here.
5346         (compute_marshaller): Convert signature to type with
5347         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5348         (compute_marshaller_name): Ditto.
5349         (compute_marshaller): Handle async signal annotations.
5350         (gather_marshallers): Return if we don't have a known
5351         prefix.
5352         (generate_glue): Collect introspection blob here, and
5353         write all of the blob at the end.  This allows an object
5354         with multiple interfaces to work.
5355         Mark async methods in introspection blob.
5356
5357         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5358         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5359         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5360
5361         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5362         avoids people accidentally using DBUS_TYPE_* which should
5363         not be necessary anymore.
5364         Do include dbus-gtype-specialized.h, which are utilities
5365         for GLib container types.
5366         Add various #defines for types such as
5367         DBUS_TYPE_G_BOOLEAN_ARRAY.
5368         (DBusGValueIterator, DBusGValue): Define, not fully used
5369         yet.
5370         (dbus_g_value_get_g_type): Type for recursive value.
5371         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5372         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5373         (dbus_g_value_free): Prototypes.
5374         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5375         (dbus_g_proxy_set_interface): Prototype.
5376         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5377         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5378         types.
5379         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5380         Accessors.
5381         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5382         doing async invocations.
5383         (dbus_g_method_return, dbus_g_method_return_error):
5384         Prototypes.
5385         * doc/dbus-tutorial.xml: Update GLib section.
5386         
5387         * tools/dbus-viewer.c (load_child_nodes): Update
5388         for new invocation type of dbus_g_proxy_end_call.
5389         (load_from_service_thread_func): Ditto.
5390
5391         * tools/print-introspect.c (main): Ditto.
5392
5393         * tools/dbus-names-model.c (have_names_notify)
5394         (names_model_reload, names_model_set_connection)
5395         Use GTypes.
5396
5397         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5398         needed since Python bindings use GLib bindings.
5399
5400         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5401         Add --prefix argument.
5402
5403         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5404         unneeded --ignore-unsupported arg.
5405         
5406         * test/glib/test-service-glib.c: 
5407         * test/glib/test-service-glib.xml:
5408         * test/glib/test-dbus-glib.c: Add many more tests.
5409
5410 2005-06-06  David Zeuthen  <davidz@redhat.com>
5411
5412         * doc/TODO: Add item about need to remove deprecated functions.
5413
5414         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5415
5416         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5417         to repair the ABI which was broken with the last commit.
5418
5419 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5420
5421         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5422         (dbus_connection_disconnect): renamed to dbus_connection_close 
5423         for API symmetry with dbus_connection_open
5424         (_dbus_connection_open_internal): 
5425         s/dbus_connection_disconnect/dbus_connection_close
5426
5427         * dbus/dbus-bus.c (dbus_bus_get):
5428         s/dbus_connection_disconnect/dbus_connection_close
5429
5430         * bus/connection.c (bus_connections_unref, 
5431         bus_connections_setup_connection, bus_connections_expire_incomplete):
5432         s/dbus_connection_disconnect/dbus_connection_close
5433
5434         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5435         kill_client_connection_unchecked, check_hello_connection):
5436         s/dbus_connection_disconnect/dbus_connection_close
5437
5438         * bus/bus.c (new_connection_callback):
5439         s/dbus_connection_disconnect/dbus_connection_close
5440
5441         * tools/dbus-send.c (main):
5442         s/dbus_connection_disconnect/dbus_connection_close
5443
5444         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5445         s/dbus_connection_disconnect/dbus_connection_close
5446         
5447         * test/test-service.c (path_message_func, filter_func):
5448         s/dbus_connection_disconnect/dbus_connection_close
5449         
5450         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5451         
5452 2005-05-25  Colin Walters  <walters@verbum.org>
5453
5454         * dbus/dbus-protocol.h: Move various bus service #defines such
5455           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5456           dbus/dbus-shared.h.
5457         * dbus/dbus-shared.h: Various defines moved here.
5458         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5459
5460 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5461
5462         * python/__init__.py: Python bindings deserve a minor version
5463         update.  Upped to (0, 40, 2)
5464
5465 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5466
5467         * python/decorators.py: add explicitly_pass_message decorator
5468         for passing in the dbus message as keyword for edge case signal
5469         handling
5470
5471         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5472         to conform with what dbus expects for match rules
5473         (SignalMatchRule.execute): add the dbus message as a keyword
5474         if the signal handler has requested it
5475
5476         * python/examples/example/signal-recipient.py: added some more
5477         examples on how to hook up to signals
5478
5479 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5480
5481         * python/decorators.py: import dbus_bindings
5482
5483         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5484         SignalMatchNode): new classes that implement wildcard signal
5485         callback matching using a tree lookup. Heavily modified from a
5486         patch sent by Celso Pinto (fd.o bug #3241)
5487
5488         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5489         use new match classes to handle signals.
5490
5491 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5492         
5493         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5494
5495 2005-05-18  Havoc Pennington  <hp@redhat.com>
5496
5497         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5498         gettext. Not really worth requiring yet perhaps, but any
5499         production quality 1.0 would require it so we should go ahead and
5500         get things set up. We do have a couple token calls to
5501         bindtextdomain in the code already.
5502
5503 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5504
5505         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5506         when using recursive g_main_loops
5507
5508         * python/_dbus.py (class Bus): add the ProxyObjectClass
5509         alias for ProxyObject to make it easier for the Twisted 
5510         networking framework to integrate dbus.
5511
5512         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5513         alias for ProxyMethod to make it easier for the Twisted 
5514         networking framework to integrate dbus. 
5515
5516 2005-05-11  Ross Burton  <ross@openedhand.com>
5517
5518         * glib/dbus-glib-tool.c: Add --prefix argument.
5519         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5520         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5521         Add prefix argument.
5522         (generate_glue): Pass prefix argument down.
5523         (dbus_binding_tool_output_glib_server): Pass prefix to
5524         glib-genmarshal.
5525         
5526 2005-05-11  Colin Walters  <walters@verbum.org>
5527
5528         * tools/dbus-send.c (append_array): New function.
5529         (append_arg): Broken out from main.
5530         (main): Add cheesy hack to send arrays and variants.
5531         (usage): Update.
5532         * tools/dbus-print-message.c (print_iter): Broken out
5533         from main.
5534
5535 2005-05-11  Colin Walters  <walters@verbum.org>
5536
5537         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5538         New function, returns signature string for signature iter.
5539         * dbus/dbus-signature.h: Prototype it.
5540         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5541         New function, returns signature string for message iter.
5542         (dbus_message_iter_get_array_len): New function, returns
5543         length of array.
5544         (dbus_message_iter_get_fixed_array): Fix assertion; this
5545         function should be used when the iter is pointing to the
5546         contents of an array
5547         * dbus/dbus-message.h: Prototypes.
5548         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5549         New function; returns length of an array.
5550         * dbus/dbus-marshal-recursive.h: Prototype it.
5551         
5552 2005-05-11  Colin Walters  <walters@verbum.org>
5553
5554         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5555         compilation error.
5556         
5557 2005-05-08  Havoc Pennington  <hp@redhat.com>
5558
5559         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5560         daemon's pid, not the parent's pid, to the file descriptor.
5561         Reported by Taj Morton.
5562
5563 2005-05-05  Havoc Pennington  <hp@redhat.com>
5564
5565         * configure.in (LT_*): add notes on how the libtool versioning
5566         works to save thinking. Increment soname to indicate protocol
5567         breakage (though really the library interface hasn't changed I
5568         guess)
5569
5570         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5571         verify the GUID received from server matches what we were
5572         expecting, if we had an expectation
5573
5574         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5575         (_dbus_auth_get_guid_from_server): new function
5576         (send_begin): parse the OK args
5577
5578         * doc/dbus-specification.xml: add GUID to the auth protocol
5579
5580 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5581
5582         * Fix my name in previous changelog ;)
5583
5584         * python/proxies.py (ProxyObject.__getattr__): add further patch
5585         from Anthony Baxter to throw an AttributeError when python 
5586         __special__ functions are called instead of marshling them over 
5587         the bus (Bug#1685 comment 3).
5588
5589 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5590
5591         * python/Makefile.am: changed to use pyexecdir for the binding
5592         shared libraries (Bug#2494)
5593
5594         * python/exceptions.py: bring exceptions over from the bindings
5595         so they can be used in applications (Bug#2036)
5596         Make all exceptions derive from DBusException
5597
5598         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5599         of classes so that print obj doesn't throw an exception (Bug #1685)
5600
5601 2005-05-03  Ross Burton  <ross@openedhand.com>
5602
5603         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5604         Return if we get an error during registration.  Set up a
5605         weak reference on object to unregister if object is destroyed.
5606         (unregister_gobject): New function.
5607         
5608 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5609
5610         * python/dbus_bindings.pyx.in: 
5611         - added new type classes for hinting to the marashaler what type 
5612         to send over the wire
5613         - added int16 and uint16 marshalers
5614         - Fixed a bug in the type constants that caused int32 to go out
5615         as uint16 over the wire
5616         * python/dbus.py: split up into different files and renamed _dbus.py
5617         * python/__init__.py, python/_util.py, python/decorators.py, 
5618         python/exceptions.py, python/proxies.py, python/services.py,
5619         python/types.py: new files split off from dbus.py
5620         * python/Makefile.am: Add new files, remove dbus.py and 
5621         install all python files to <python module dir>/dbus
5622         * python/examples/*: Added #!/usr/bin/env python to the top of
5623         every example.  Patch provided by Tatavarty Kalyan
5624
5625 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5626
5627         * NEWS: Update to 0.33
5628
5629 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5630
5631         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5632         method for doing async calls
5633         (_pending_call_notification): New C function for handling pendning call
5634         callbacks
5635         (set_notify): New method for setting pending call notification
5636         
5637         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5638         Async capabilities added to remote method calls
5639         (Sender): class removed
5640         (RemoteService): class removed
5641         (ObjectTree): class removed for now
5642         (RemoteObject): Renamed to ProxyObject
5643         (RemoteMethod): Renamed to ProxyMethod
5644         (method): Decorator added for decorating python methods as dbus methods
5645         (signal): Decorator added for decorating python methods as signal emitters
5646         (ObjectType): Metaclass added for generating introspection data and the
5647         method callback vtable
5648         (Interface): Wrapper class added to wrap objects in a dbus interface
5649         (Object): Uses ObjectType as its metaclass and exports Introspect
5650         of the org.freedesktop.DBus.Introspectable interface
5651         (ValidationException, UnknownMethodException): new exceptions
5652
5653         * python/examples/*: Modified to fit with the new bindings
5654
5655 2005-04-23  Havoc Pennington  <hp@redhat.com>
5656
5657         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5658         reported by Tony Houghton
5659
5660         * test/test-service.c (main): test
5661         dbus_connection_get_object_path_data()
5662
5663         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5664         the exact_match
5665         (_dbus_object_tree_get_user_data_unlocked): new function used by
5666         dbus_connection_get_object_path_data()
5667         (do_register): add assertion test for get_user_data_unlocked
5668         (object_tree_test_iteration): more tests
5669
5670         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5671         new function from Dan Reed to let you get the user data from 
5672         dbus_connection_register_object_path()
5673
5674 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5675
5676         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5677         in numerous places that did not account for the NULL terminator
5678         (signature_from_seed): changed the manual string copy loop to 
5679         just use strcpy instead
5680         make check should now pass
5681
5682 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5683
5684         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5685         so that it allows messages that are not signals to pass in 
5686         NULL as the interface.
5687
5688 2005-04-18  David Zeuthen  <davidz@redhat.com>
5689
5690         * glib/dbus-gmain.c (io_handler_destroy_source): 
5691         (timeout_handler_destroy_source, connection_setup_free): 
5692         Also unref the source to avoid memory leaks.
5693
5694 2005-04-13  David Zeuthen  <davidz@redhat.com>
5695
5696         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5697         more reasonable, yet still totally arbitrary, value :-). 
5698
5699 2005-04-13  David Zeuthen  <davidz@redhat.com>
5700
5701         * doc/TODO: Added an "important for 1.0" item about selinux
5702         allow/deny messages
5703
5704 2005-04-13  David Zeuthen  <davidz@redhat.com>
5705
5706         * bus/selinux.c: Add c-file-style to top of file
5707         (log_audit_callback): Don't free the data here anymore
5708         (bus_selinux_check): Don't take spid and tpid since appending
5709         that to auxdata may OOM.
5710         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5711         to the caller if we are OOM by taking an error object.
5712         (bus_selinux_allows_send): -do-
5713
5714         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5715         and bus_selinux_allows_send
5716
5717         * bus/bus.c (bus_context_check_security_policy): Pass error and
5718         pass on OOM thrown by bus_selinux_allows_send()
5719
5720         * bus/services.c (bus_registry_acquire_service): Pass error and
5721         pass on OOM thrown by bus_selinux_allows_acquire_service()
5722
5723 2005-04-13  Havoc Pennington  <hp@redhat.com>
5724
5725         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5726         message at a time to avoid monopolizing the main loop, bug 
5727         #2953 from Benjamin Otte
5728
5729 2005-04-09  Havoc Pennington  <hp@redhat.com>
5730
5731         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5732         possible overlap, fix from Daniel Reed
5733         (fixup_alignment): fix signedness warnings
5734         (_dbus_string_append_unichar): ditto
5735
5736 2005-04-09  Havoc Pennington  <hp@redhat.com>
5737
5738         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5739
5740         * glib/dbus-glib-tool.c (main): fix warning
5741
5742         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5743
5744         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5745         add a new function that can be used in simple applications that
5746         don't have a main loop and are willing to block
5747
5748 2005-04-05  David Zeuthen  <davidz@redhat.com>
5749
5750         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5751
5752         * glib/dbus-gmain.c:
5753         (io_handler_destroy_source): Remove from list of IO handlers
5754         of the ConnectionSetup object
5755         (timeout_handler_destroy_source): -do- for timeout handlers
5756         (io_handler_source_finalized): Don't remove from list since
5757         we now do that in io_handler_destroy_source(). Renamed from
5758         io_handler_source_destroyed
5759         (timeout_handler_source_destroyed): -do- for timeout handlers
5760         (connection_setup_free): It is now safe to iterate over all
5761         IO and timeout handlers as the _destroy_source removes them
5762         from the list synchronously
5763
5764 2005-03-30  Havoc Pennington  <hp@redhat.com>
5765
5766         * configure.in: change check to gtk 2.4
5767
5768         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5769         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5770         to 2.4
5771
5772 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5773
5774         * News: Update 0.32
5775
5776         * HACKING: Fixed realease instructions.  configure.in should be updated to
5777           the next release by the person who made the last release.
5778
5779 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5780
5781         * python/lvalue_cast_post_process.py - removed.  Patch has been
5782           submitted to Pyrex maintainers that fixes gcc4.0 errors
5783
5784         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5785
5786 2005-03-24  Daniel Reed  <n@ml.org>
5787
5788         * tools/Makefile.am: Make print-introspect and
5789         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5790
5791 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5792
5793         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5794
5795         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5796           had in Red Hat packages for a while but for some reason never 
5797           got merged upstream
5798           (_dbus_is_a_number): New checks if a string
5799           can be converted to a number and does the conversion if it can
5800           (_dbus_user_database_lookup): Add check to see if the given username
5801           is a udi.  This allows udi's to be used instead of usernames in the
5802           config file.
5803           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5804           is a gdi.  This allows gdi's to be used instead of groupnames in the
5805           config file.
5806
5807 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5808
5809         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5810           code so that it compiles with gcc4.0
5811
5812         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5813           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5814           results back to dbus_binding.c
5815
5816 2005-03-20  Colin Walters  <walters@verbum.org>
5817
5818         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5819
5820         * configure.in: Require GTK+ 2.6.
5821         
5822 2005-03-20  Colin Walters  <walters@verbum.org>
5823
5824         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5825
5826 2005-03-17  Tom Parker  <palfrey@tevp.net>
5827
5828         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5829         print DBUS_UID_UNSET; instead print passed username.  Also
5830         be sure to actually use gid looked up in cache.
5831         
5832         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5833         for DBUS_GID_UNSET and groupname.
5834
5835 2005-03-17  Colin Walters  <walters@verbum.org>
5836
5837         * bus/print-introspect.c: Move to tools/.
5838         * bus/run-with-tmp-session-bus.sh: Ditto.
5839         
5840         * glib/Makefile.am (dbus-glib-bindings.h): Move
5841         generation to tools/Makefile.am.
5842
5843         * test/glib/run-test.sh: Update to handle move
5844         of run-with-tmp-session-bus.sh.
5845
5846         * test/glib/test-service-glib.c: Update to handle
5847         move of dbus-glib-bindings.h.
5848
5849         * tools/print-introspect.c: Moved here
5850         from bus/, and ported to GLib bindings.
5851
5852         * tools/run-with-tmp-session-bus.sh: Moved here
5853         from bus/.
5854
5855         * tools/Makefile.am: Generate dbus-glib-bindings.h
5856         and dbus-bus-introspect.xml here.
5857
5858         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5859         Update.
5860
5861 2005-03-17  Colin Walters  <walters@verbum.org>
5862
5863         * bus/driver.c (write_args_for_direction): Use
5864         _dbus_string_get_const_data to retrieve string;
5865         _dbus_string_get_const_data_len doesn't actually return
5866         a NULL-terminated substring.
5867
5868         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5869         (main): Change to use org_freedesktop_DBus_request_name
5870         instead of using g_proxy_begin_call/end_call.
5871
5872 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5873
5874         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5875         generating the finalizer.  Fixes from Ben Maurer.
5876
5877 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5878
5879         * mono/BusDriver.cs: Update method names: ListServices
5880         becomes ListNames; GetOwner becomes GetNameOwner.
5881
5882         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5883         onto the eval stack when removing the delegate.
5884
5885 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5886
5887         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5888         LT_CURRENT.  Set it to the autoconf variable.
5889                                                                                 
5890         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5891         classes that disconnects the signal handler delegate from the
5892         service object.  Fixes a big leak of proxy objects on the
5893         client side of things.  Patch from Ben Maurer
5894         <bmaurer@ximian.com>
5895
5896 2005-03-12  Colin Walters  <walters@verbum.org>
5897
5898         * bus/driver.c (write_args_for_direction): New function,
5899         parses a type signature into arguments and outputs to
5900         XML.
5901         (bus_driver_handle_introspect): Use it instead of
5902         hardcoding XML for certain signatures.
5903         
5904         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5905         dependency on dbus-daemon.
5906
5907         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5908         argument, pass it to dbus_binding_tool_output_glib_client.
5909
5910         * glib/dbus-binding-tool-glib.c
5911         (generate_client_glue): Protect against multiple inclusion.
5912         (dbus_binding_tool_output_glib_client): Add
5913         G_BEGIN_DECLS/G_END_DECLS.
5914
5915         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5916         Change to just take iface prefix directly.
5917         (write_formal_parameters): Clarify error message.
5918         (check_supported_parameters): New function; checks to see type
5919         signatures of method parameters are supported.
5920         (generate_client_glue): Handle ignore_unsupported flag.
5921         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5922         parameter.
5923
5924         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5925         --ignore-unsupported by default until glib bindings
5926         support arrays.
5927
5928 2005-03-11  Colin Walters  <walters@verbum.org>
5929
5930         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5931         install it.
5932
5933         * bus/print-introspect.c: New file; prints introspection
5934         data for a given name and object path.
5935
5936         * bus/run-with-tmp-session-bus.sh: New file, refactored
5937         from test/glib/run-test.sh.  Creates a temporary session
5938         bus and runs another program.
5939
5940         * test/glib/run-test.sh: Refactor to invoke
5941         run-with-tmp-session-bus.sh.
5942
5943         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5944         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5945         macros instead of hardcoding.
5946
5947         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5948
5949 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5950
5951         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5952         this unref; it doesn't match up evenly in some codepaths.
5953         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5954         this evenly matches with the ref near the top of this function.
5955
5956 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5957
5958         * dbus/dbus-object-tree.c
5959         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5960         and we try to unregister a path that's not registered, still go
5961         through the process of unlocking and don't just return.
5962
5963 2005-03-09  Colin Walters  <walters@verbum.org>
5964
5965         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5966         to this are generated for client-side wrappers.  Invokes a
5967         D-BUS method and returns reply values.  
5968
5969         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5970         function; writes signature string for argument direction.
5971         (write_args_for_direction): Change to pass input values directly
5972         instead of via address, and fix indentation.
5973         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5974         make generated wrappers inlineable.
5975
5976         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5977         note about using dbus_type_is_fixed.
5978
5979         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5980         dbus/dbus-signature.c as dbus_type_is_fixed.
5981
5982         All callers updated.
5983
5984         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5985         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5986
5987         * dbus/dbus-signature.h: Prototype.
5988
5989         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5990         error printf code.
5991
5992         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5993         appropriate instead of just freeing it.
5994         (main): Free returned strings using g_free.
5995
5996         * test/glib/Makefile.am (test-service-glib-glue.h)
5997         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5998
5999         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
6000         simply maps a simple D-BUS type to GType.
6001         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
6002         GType.
6003         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
6004         initialize the value with it.
6005         (dbus_gvalue_binding_type_from_type): Unused, delete.
6006         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
6007         various types instead of unmarshalling to value data directly.
6008         Remove can_convert boolean.
6009         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
6010         returning directly instead of using can_convert boolean.
6011         (dbus_gvalue_store): New function; not related to D-BUS per-se.
6012         Stores a GValue in a pointer to a value of its corresponding C
6013         type.
6014
6015         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
6016         add dbus_gvalue_store.
6017
6018 2005-03-08  Joe Shaw  <joeshaw@novell.com>
6019
6020         Fix a bunch of lifecycle and memory management problems
6021         in the mono bindings.
6022
6023         * mono/Arguments.cs (Arguments): Implement IDisposable
6024
6025         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
6026         strictly a static class.
6027
6028         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
6029         delegates into this file.
6030         (Connection): Implement IDisposable.
6031         (Dispose): Disconnect the connection and set the raw connection
6032         pointer to IntPtr.Zero.
6033         (~Connection): Call Dispose().
6034         (RegisterObjectPath): Added.  Manages the registration of object
6035         paths so we can cleanly disconnect them at dispose/finalize time.
6036         (UnregisterObjectPath): Ditto.
6037         (set_RawConnection): Unregister all of the object paths when
6038         changing the underlying DBusConnection.  Add them back onto the
6039         new connection, if any.
6040
6041         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
6042         more unmanaged resources anymore, so it's not necessary.  Move all
6043         the DBusObjectPathVTable stuff out of here.
6044         (Handler): Save references to our delegates so that they don't get
6045         finalized.  Call Connection.RegisterObjectPath() instead of
6046         dbus_connection_register_object_path() directly.
6047         (Message_Called): Dispose the message after we're finished with
6048         it.
6049
6050         * mono/Message.cs (Message): Implement IDisposable.
6051         (Dispose): Dispose the Arguments, and set the RawMessage to
6052         IntPtr.Zero.
6053         (SendWithReplyAndBlock): We own the ref to the reply that comes
6054         back from dbus_connection_send_with_reply_and_block() so add a
6055         comment about that and unref it after we've constructed a managed
6056         MethodReturn class around it.  Fixes a big, big leak.
6057
6058         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
6059         method.
6060         (BuildSignalHandler): After we've sent the Signal message, dispose
6061         of it.
6062         (BuildMethod): Dispose of the method call and reply messages after
6063         we've sent the message and extracted the data we want from the
6064         reply.
6065
6066         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
6067         anymore.
6068         (Service_FilterCalled): Dispose of the message after we're
6069         finished with it.
6070
6071 2005-03-08  Joe Shaw  <joeshaw@novell.com>
6072
6073         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
6074         After we attach our pending call to the connection, unref
6075         it.  Fixes a leak.
6076  
6077         * mono/Connection.cs (set_RawConnection): Disconnect our
6078         filter and match callbacks from the old connection and
6079         reconnect them to the new connection, if any.
6080
6081         * mono/DBusType/Array.cs: "Code" is a static member, so
6082         don't use "this" to refer to it.  Fix for stricter checking
6083         in Mono 1.1.4.
6084  
6085         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
6086         object path that we pass into unmanaged code.
6087  
6088         * mono/DBusType/String.cs (Append): Don't leak the string
6089         that we pass into unmanged code.
6090
6091 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
6092         * NEWS: Update for 0.31
6093
6094         * configure.in: Release 0.31
6095         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
6096
6097         * qt/Makefile.am: fixed build
6098
6099         * dbus/Makefile.am: soname bump for libdbus
6100
6101         * glib/Makefile.am: soname bump for libdbus-glib
6102
6103 2005-03-05  Havoc Pennington  <hp@redhat.com>
6104
6105         * dbus/dbus-sysdeps.c:
6106         (pseudorandom_generate_random_bytes_buffer): fix to have no return
6107         value
6108         (_dbus_generate_random_bytes_buffer): fix return value
6109
6110         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
6111         checks actually work, from Tom Parker <fdo@tevp.net>
6112
6113 2005-03-01  Colin Walters  <walters@verbum.org>
6114
6115         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
6116         functions copied from dbus-glib-tool.c.
6117         (main): Convert lots of error code to use them.
6118         Also add some testing for introspection bits.
6119
6120 2005-03-01  Colin Walters  <walters@verbum.org>
6121         
6122         * doc/TODO: Remove introspection signature TODO.
6123
6124 2005-02-27  Colin Walters  <walters@verbum.org>
6125
6126         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
6127         Change return value to const char * instead of int so we can do
6128         full signatures.
6129         (struct PropertyInfo, struct ArgInfo): Store char *.
6130         (property_info_new, arg_info_new): Update parameters, strdup.
6131         (property_info_unref, arg_info_unref): Free.
6132
6133         * glib/dbus-gidl.h: Update prototypes.
6134
6135         * glib/dbus-gparser.c (basic_type_from_string): Delete.
6136         (validate_signature): New function, just validates signature and
6137         sets GError.
6138         (parse_property, parse_arg): Invoke validate_signature.  Store
6139         signature instead of just type code.
6140
6141         * glib/dbus-gvalue.c (base_type_from_signature): New utility
6142         function to return a primary type for a signature, dropping
6143         information about types in container types.
6144         (dbus_gvalue_genmarshal_name_from_type)
6145         (dbus_gvalue_binding_type_from_type)
6146         (dbus_gvalue_ctype_from_type): Update to take full signature
6147          instead of type code.
6148         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
6149
6150         * glib/dbus-gvalue.h: Update prototypes for above.
6151
6152         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
6153         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
6154         (introspect_properties, introspect_signals, write_interface):
6155         Update to handle signatures, and remove usage of
6156         _dbus_gutils_type_to_string.
6157         (handle_introspect): Print out type codes instead of e.g. "string"
6158         in hardcoded introspection XML; also use x_AS_STRING constants
6159         instead of hardcoding in string.
6160
6161         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
6162         to string.  Remove usage of _dbus_gutils_type_to_string.
6163
6164         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
6165
6166         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
6167         deletion.
6168         
6169         * glib/dbus-binding-tool-glib.c (compute_marshaller)
6170         (compute_marshaller_name, generate_glue): Handle signature change
6171         to string.
6172         (write_formal_parameters, write_args_for_direction): Ditto, and
6173         remove FIXME.
6174
6175         * tools/dbus-tree-view.c (type_to_string): Delete.
6176         (info_set_func_text): Update to print full signatures.
6177
6178         * test/glib/test-service-glib.xml: Change types to new
6179         introspection format.
6180
6181 2005-02-26  Havoc Pennington  <hp@redhat.com>
6182
6183         * doc/TODO: remove the "guid" item
6184
6185         * test/glib/test-profile.c (no_bus_thread_func): use open_private
6186         (with_bus_thread_func): use open_private
6187
6188         * dbus/dbus-connection.c (dbus_connection_open_private): new
6189         function that works like the old dbus_connection_open()
6190         (dbus_connection_open): now returns an existing connection if
6191         possible
6192
6193         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
6194         through the GUID to the transport
6195
6196         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
6197         GUID in hex-encoded form.
6198
6199         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
6200         pass GUID argument in to the transport
6201
6202         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
6203         guid argument
6204
6205         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
6206
6207         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
6208
6209 2005-02-25  Havoc Pennington  <hp@redhat.com>
6210
6211         * doc/dbus-specification.xml: document the GUID thing
6212
6213         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
6214         globally unique ID for the server, and put a "guid=hexencoded"
6215         field in the address
6216
6217         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
6218
6219         * dbus/dbus-message.c: ditto
6220
6221         * dbus/dbus-dataslot.c: ditto
6222
6223         * dbus/dbus-list.c: ditto
6224
6225         * dbus/dbus-internals.h: wait, just include
6226         dbus-threads-internal.h here
6227         
6228         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
6229         use in main library
6230
6231         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
6232
6233 2005-02-24  Colin Walters  <walters@verbum.org>
6234
6235         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
6236
6237 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
6238
6239         * glib/Makefile.am: added dbus-gobject.h to sources list
6240         so distcheck doesn't fail
6241         
6242 2005-02-24  Havoc Pennington  <hp@redhat.com>
6243
6244         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
6245         you must disconnect before unref, since locking and other things
6246         are screwed up otherwise. Fix assorted other locking stuff.
6247
6248         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
6249         fix compilation
6250
6251         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
6252         into a private header and don't export from the library
6253
6254         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
6255
6256 2005-02-24  Colin Walters  <walters@verbum.org>
6257         
6258         * dbus/dbus-signature.c: New file; implements various functions
6259         related to type signatures.  Includes an interator for parsing,
6260         validation functions.
6261         (dbus_type_is_basic): Moved here from
6262         dbus-marshal-basic.c:_dbus_type_is_basic.
6263         (dbus_type_is_container): Moved here from
6264         dbus-marshal-basic.c:_dbus_type_is_container.
6265
6266         All callers of _dbus_type_is_container and _dbus_type_is_basic
6267         updated, and include dbus-signature.h.
6268
6269         * dbus/dbus-signature.h: New file; prototypes for the above.
6270
6271         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
6272         dbus-signature.h.
6273
6274         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
6275         function factored out of _dbus_first_type_in_signature.
6276         (_dbus_first_type_in_signature_c_str): New function; returns first
6277         type code for a type signature character.
6278
6279         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
6280         handle function moves.
6281
6282         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
6283
6284         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
6285         function; skips to next complete type in type signature.
6286         Implemented using previous skip_one_complete_type.  Now
6287         skip_one_complete_type just delegates to
6288         _dbus_type_signature_next.
6289
6290         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
6291         to dbus-signature.c
6292         (_dbus_type_is_container): Ditto.
6293
6294         * doc/dbus-specification.xml: Update introspection sample to
6295         use real type signatures.
6296
6297         * dbus/dbus-test.h: Prototype signature test.
6298
6299         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
6300         signature tests.
6301
6302         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
6303
6304 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
6305
6306         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
6307         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
6308
6309 2005-02-21  Colin Walters  <walters@verbum.org>
6310
6311         * dbus/dbus-test-main.c (main): Take optional specific test
6312         argument.
6313
6314         * dbus/dbus-test.c (run_test): New function, runs a test function
6315         with no data directory.
6316         (run_data_test): Like above, but takes data directory.
6317         (dbus_internal_do_not_use_run_tests): Take
6318         specific test argument.  Replace lots of cut n' paste code
6319         with run_test and run_data_test.
6320
6321         * dbus/dbus-test.h: Update prototype for
6322         dbus_internal_do_not_use_run_tests.
6323
6324 2005-02-20  Havoc Pennington  <hp@redhat.com>
6325
6326         Fix bugs reported by Daniel P. Berrange
6327         
6328         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
6329         (protected_change_watch): new function
6330         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
6331         (_dbus_server_add_watch): change to work like the
6332         dbus-connection.c equivalents; like those, probably kind of
6333         busted, but should at least mostly work for now
6334         (dbus_server_disconnect): drop the lock if we were already
6335         disconnected, patch from Daniel P. Berrange
6336
6337         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
6338         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
6339         same stuff
6340
6341         * doc/TODO: todo about unscrewing this mess
6342
6343 2005-02-19  Colin Walters  <walters@verbum.org>
6344
6345         * glib/dbus-binding-tool-glib.c
6346         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6347
6348         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6349         as errno.h and sys/stat.h.
6350         (lose): New function, prints error with
6351         newline and exits.
6352         (lose_gerror): Similar, but takes GError for message.
6353         (main): Add --output argument to specify output file to write to,
6354         instead of always printing to stdout.  In this mode, determine
6355         timestamps on source files to see whether any are newer than the
6356         target file.  If not, exit.  Also convert a number of error
6357         messages to use lose (since it's shorter), and switch to using
6358         g_io_channel_shutdown.
6359
6360 2005-02-19  Havoc Pennington  <hp@redhat.com>
6361
6362         * glib/dbus-gobject.c
6363         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6364
6365         * glib/dbus-glib.c: fix doxygen warnings
6366
6367         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6368         is found on an <arg>
6369
6370 2005-02-17  Colin Walters  <walters@verbum.org>
6371
6372         * glib/dbus-gobject.h: Don't export
6373         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6374         
6375         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6376         (invoke_object_method): Handle it.
6377
6378         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6379         Handle rename.
6380         
6381 2005-02-17  Colin Walters  <walters@verbum.org>
6382
6383         * bus/.cvsignore, doc/.cvsignore
6384         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6385         Update.
6386
6387 2005-02-17  Colin Walters  <walters@verbum.org>
6388         
6389         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6390         Rename to DBUS_SERVICE_DBUS.
6391         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6392         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6393         Change the value from "org.freedesktop.Local"
6394         to "org.freedesktop.DBus.Local".
6395         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6396         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6397         DBUS_INTERFACE_INTROSPECTABLE.
6398         Change the value from "org.freedesktop.Introspectable"
6399         to "org.freedesktop.DBus.Introspectable".
6400         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6401         DBUS_INTERFACE_PROPERTIES.
6402         Change the value from "org.freedesktop.Properties"
6403         to "org.freedesktop.DBus.Properties".
6404         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6405         DBUS_INTERFACE_PEER.
6406         Change the value from "org.freedesktop.Peer"
6407         to "org.freedesktop.DBus.Peer".
6408         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6409         DBUS_INTERFACE_LOCAL.
6410         Change the value from "org.freedesktop.Local"
6411         to "org.freedesktop.DBus.Local".
6412
6413         All other users of those constants have been changed.
6414
6415         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6416
6417         * glib/dbus-gobject.c (handle_introspect): Use constants.
6418
6419         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6420
6421 2005-02-17  Colin Walters  <walters@verbum.org>
6422
6423         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6424         (parse_node, parse_interface, parse_method, parse_signal)
6425         (parse_property, parse_annotation): Lose if we're currently in an
6426         annotation.
6427         (parse_annotation): New function.
6428         (parser_start_element, parser_end_element): Handle annotation.
6429         (parse_method, parse_interface): Remove support for c_name attribute,
6430         switch to annotations.
6431
6432         * glib/dbus-gidl.h (interface_info_get_binding_names)
6433         (method_info_get_binding_names)
6434         (interface_info_get_binding_name, method_info_get_binding_name)
6435         (interface_info_set_binding_name, method_info_set_binding_name):
6436         Remove.
6437         (interface_info_get_annotations, method_info_get_annotations)
6438         (interface_info_get_annotation, method_info_get_annotation)
6439         (interface_info_add_annotation, method_info_add_annotation):
6440         Prototype.
6441
6442         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6443         for "bindings".
6444         (struct MethodInfo): Ditto.
6445         Straightfoward conversion of binding methods into annotation methods
6446         as prototyped.
6447
6448         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6449
6450         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6451
6452         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6453         Use new annotation API.
6454
6455         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6456         annotation element.
6457         
6458         * doc/dbus-specification.xml: Discuss introspection annotations,
6459         include list of well-known annotations.
6460
6461         * test/glib/test-service-glib.xml: Make validate against new DTD.
6462
6463 2005-02-17  Colin Walters  <walters@verbum.org>
6464
6465         This patch is based on initial work from
6466         Paul Kuliniewicz <kuliniew@purdue.edu>.
6467
6468         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6469         initialization of GValue from dbus type to here.
6470         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6471         for the "glib-genmarshal" program from a DBus type.
6472         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6473         into the C name for it we use in the glib bindings.
6474         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6475         glib C type (not GValue).
6476         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6477
6478         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6479         from dbus-gobject.c.
6480
6481         * glib/dbus-gutils.h: Prototype it.
6482
6483         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6484         (marshal_dbus_message_to_g_marshaller): Use new shared function
6485         dbus_glib_marshal_dbus_message_to_gvalue_array.
6486
6487         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6488         Will be changed once we have annotations.
6489
6490         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6491         GStaticRWLock.  Callers updated.
6492         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6493         (string_table_next): New function for iterating over zero-terminated
6494         string value array.
6495         (string_table_lookup): New function; retrieves specific entry in
6496         array.
6497         (get_method_data): New function; look up method data in object data chunk.
6498         (object_error_domain_prefix_from_object_info)
6499         (object_error_code_from_object_info): New functions, but not implemented yet.
6500         (method_interface_from_object_info): New function; retrieve interface name.
6501         (method_name_from_object_info): New function; retrieve method name.
6502         (method_arg_info_from_object_info): New function; retrieve argument data.
6503         (arg_iterate): New function; iterates over serialized argument data.
6504         (method_dir_signature_from_object_info): New function; returns a
6505         GString holding type signature for arguments for just one
6506         direction (input or output).
6507         (method_input_signature_from_object_info)
6508         (method_output_signature_from_object_info): New functions.
6509         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6510         converts dbus message arguments into a GValue array.  Used for both
6511         signal handling and method invocation.
6512         (struct DBusGlibWriteIterfaceData): New utility structure.
6513         (write_interface): New function; generate introspection XML for
6514         an interface.
6515         (introspect_interfaces): New function; gathers all interface->methods,
6516         generates introspection XML for them.
6517         (handle_introspect): Invoke introspect_interfaces.
6518         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6519         (lookup_object_and_method): New function; examines an incoming message
6520         and attempts to match it up (via interface, method name, and argument
6521         signature) with a known object and method.
6522         (gerror_domaincode_to_dbus_error_name): New function; converts a
6523         GError domain and code into a DBus error name.  Needs GError data
6524         added to object introspection to work well.
6525         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6526         GError.
6527         (invoke_object_method): New function to invoke an object method
6528         looked up via lookup_object_and_method.  Parses the incoming
6529         message, turns it into a GValue array, then invokes the marshaller
6530         specified in the DBusGMethodInfo.  Creates a new message with
6531         either return values or error message as appropriate.
6532         (gobject_message_function): Invoke lookup_object_and_method and
6533         invoke_object_method.
6534
6535         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6536         (enum DBusBindingOutputMode): New enum for binding output modes.
6537         (pretty_print): Print binding names.
6538         (dbus_binding_tool_error_quark): GError bits.
6539         (version): Fix typo.
6540         (main): Create GIOChannel for output.  Parse new --mode argument,
6541         possible values are "pretty-print", "glib-server", "glib-client".
6542         Use mode to invoke appropriate function.
6543         
6544         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6545
6546         * glib/dbus-glib-tool.h: New header, just includes GError bits
6547         for now.
6548
6549         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6550         maps binding style to name.
6551         (struct MethodInfo): Ditto.
6552         (get_hash_keys, get_hash_key): Utility function, returns keys for
6553         a GHashTable.
6554         (interface_info_new, method_info_new): Initialize bindings.
6555         (interface_info_unref, method_info_unref): Destroy bindings.
6556         (method_info_get_binding_names, method_info_get_binding_name)
6557         (interface_info_get_binding_names, interface_info_get_binding_name):
6558         Functions for retrieving binding names.
6559         (method_info_set_binding_name, interface_info_set_binding_name):
6560         Functions for setting binding names.
6561
6562         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6563         for glib binding generation.
6564
6565         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6566         and client-side glib glue generation.
6567
6568         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6569         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6570         dbus-glib-tool.h.
6571
6572         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6573         of using GClosureMarshal directly.
6574         (struct DBusGObjectInfo): Add n_infos member.
6575
6576         * test/glib/test-service-glib.xml: New file; contains introspection data
6577         for MyTestObject used in test-service-glib.c.
6578
6579         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6580         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6581         (my_object_uppercase, my_object_many_args): New test methods.
6582         (main): Use dbus_g_object_class_install_info to include generated object
6583         info.
6584
6585         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6586         as well as client-side bindings.
6587
6588         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6589         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6590         using both the dbus_gproxy stuff directly as well as the generated bindings.
6591
6592 2005-02-15  Havoc Pennington  <hp@redhat.com>
6593
6594         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6595         complete a pending call, don't run filters first.
6596
6597         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6598         dbus_pending_call_steal_reply
6599
6600         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6601         _dbus_connection_block_pending_call
6602         (dbus_pending_call_get_reply): change to steal_reply and return a
6603         ref
6604
6605         * dbus/dbus-connection.c
6606         (dbus_connection_send_with_reply_and_block): port to work in terms
6607         of DBusPendingCall
6608         (_dbus_connection_block_pending_call): replace block_for_reply
6609         with this
6610
6611 2005-02-14  Havoc Pennington  <hp@redhat.com>
6612
6613         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6614         properly handle looking up group information by name; fix 
6615         from j@bootlab.org
6616
6617 2005-02-13  Havoc Pennington  <hp@redhat.com>
6618
6619         * dbus/dbus-connection.c (dbus_connection_return_message) 
6620         (dbus_connection_borrow_message): hold dispatch lock while message
6621         is outstanding
6622         (_dbus_connection_block_for_reply): hold dispatch lock while we
6623         block for the reply, so nobody steals our reply
6624         (dbus_connection_pop_message): hold the dispatch lock while we
6625         pluck the message
6626
6627 2005-02-13  Havoc Pennington  <hp@redhat.com>
6628
6629         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6630         (_dbus_connection_release_dispatch)
6631         (_dbus_connection_acquire_io_path)
6632         (_dbus_connection_release_io_path): make the mutex and condvar
6633         control access to the "acquired" flag. Drop the connection lock
6634         while waiting on the condvar. Hopefully these are baby steps in
6635         roughly the right direction.
6636
6637 2005-02-13  Havoc Pennington  <hp@redhat.com>
6638
6639         * dbus/dbus-connection.c: use separate mutexes for the condition
6640         variables; this is some kind of baseline for sanity, but the
6641         condition variables still aren't used correctly afaict
6642
6643 2005-02-13  Havoc Pennington  <hp@redhat.com>
6644
6645         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6646         fix a double-unlock
6647
6648         * dbus/dbus-connection.c
6649         (_dbus_connection_detach_pending_call_unlocked): add this
6650
6651         Initial semi-correct pass through to fix thread locking; there are
6652         still some issues with the condition variable paths I'm pretty
6653         sure
6654         
6655         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6656         lock/unlock calls
6657
6658         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6659         rename to add _unlocked
6660         (struct DBusConnection): move "dispatch_acquired" and
6661         "io_path_acquired" to use only one bit each.
6662         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6663         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6664         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6665         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6666         (_dbus_connection_remove_timeout) 
6667         (_dbus_connection_toggle_timeout): drop lock when calling out to
6668         user functions; done in a hacky/bad way.
6669         (_dbus_connection_send_and_unlock): add a missing unlock
6670         (_dbus_connection_block_for_reply): add a missing unlock
6671
6672         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6673         drop lock in a hacky probably unsafe way to call out to user
6674         function
6675
6676 2005-02-12  Havoc Pennington  <hp@redhat.com>
6677
6678         * tools/dbus-tree-view.c (info_set_func_text): display more
6679         details on args
6680
6681         * bus/driver.c (bus_driver_handle_list_services): list the bus
6682         driver
6683
6684         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6685
6686         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6687         (method_info_get_n_args): new function
6688
6689 2005-02-12  Havoc Pennington  <hp@redhat.com>
6690
6691         * bus/driver.c (bus_driver_handle_introspect): add introspection
6692         for bus driver
6693
6694 2005-02-12  Havoc Pennington  <hp@redhat.com>
6695
6696         * bus/driver.c: put the signature of each bus driver method in the
6697         table of handlers and check it on incoming calls; this isn't
6698         really useful, but going to add introspect support in a minute.
6699
6700 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6701
6702         * mono/Connection.cs: The unpredictability of finalizers in mono
6703         prevents us from deterministically disconnecting the filters from
6704         the Service class's finalizer, so move tracking of filters and
6705         matches here.  Add API for that.
6706
6707         * mono/Service.cs: Remove the code, add code which calls the
6708         methods now on the Connection class.
6709
6710 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6711
6712         * python/dbus.py (class Sender): added to support dbus signals better
6713         (Bus::add_signal_receiver): added expand_args parameter which defaults
6714         to True.  When expand args is True the signal handler will pass the 
6715         message arguments as parameters to the signal handler.  If False
6716         revert to previous behavior where the signal handler must get the
6717         argument list from the message.  This is to help port applications
6718         like HAL that have a tendancy to send variable length argument lists.
6719         self._match_rule_to_receivers is now a dict of dicts.
6720         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6721         removing it from a list
6722         (Bus::_signal_func): change signal handlers so that interface,
6723         signal_name, service, path and message are packed into a Sender
6724         object and that is passed to the handler.  If expand_args is True
6725         extract the args list from the message and append it to the parameter
6726         list
6727         
6728         * python/dbus_bindings.pyx.in (class Signature): added to support 
6729         signiature types
6730         (MessageIter::__init__): changed iteration limit to match D-BUS
6731         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6732         STRUCT and VARIENT type support
6733         (MessageIter::python_value_to_dbus_sig): made recursive to support
6734         recursive types
6735         (MessageIter::append*): added Signature, dict, tuple 
6736         support
6737
6738         * python/examples/example-client.py: added examples of getting tuples
6739         and dicts
6740
6741         * python/examples/example-service.py: added examples of sending tuples
6742         and dicts
6743
6744         * python/examples/example-signal-recipient.py: Fixed to handle new
6745         signal callback format
6746
6747 2005-02-10  Havoc Pennington  <hp@redhat.com>
6748
6749         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6750         (call dbus_g_proxy_add_signal)
6751
6752         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6753         escape the hostname
6754         (_dbus_server_new_for_domain_socket): escape the path
6755
6756         * dbus/dbus-address.c (dbus_address_escape_value): new
6757         (dbus_address_unescape_value): new
6758         (dbus_parse_address): unescape values
6759
6760         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6761
6762         * doc/dbus-specification.xml: explain how to escape values in
6763         addresses
6764
6765 2005-02-10  Havoc Pennington  <hp@redhat.com>
6766
6767         * dbus/dbus-message-factory.c (generate_special): modify test to
6768         avoid using a non-basic dict key
6769
6770         * dbus/dbus-marshal-validate-util.c: add test for the below
6771
6772         * doc/dbus-specification.xml: require that dict keys are a basic
6773         type
6774
6775         * dbus/dbus-marshal-validate.c
6776         (_dbus_validate_signature_with_reason): require that dict key is a
6777         basic type
6778
6779 2005-02-10  Havoc Pennington  <hp@redhat.com>
6780
6781         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6782         change to be _and_unlock instead of _unlocked
6783
6784         * dbus/dbus-connection.c
6785         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6786         have no_update so we can find this bug quickly in future
6787
6788 2005-02-10  Havoc Pennington  <hp@redhat.com>
6789
6790         * dbus/dbus-message-util.c (verify_test_message): tests for string
6791         array
6792
6793         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6794         support for arrays of string/signature/path
6795
6796 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6797
6798         * dbus/dbus-connection.c
6799         (_dbus_connection_queue_received_message_link,
6800         _dbus_connection_message_sent): Add the path to
6801         the verbose output.
6802         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6803         _dbus_connection_send_preallocated_unlocked(), updated the
6804         dispatch status, and unlocks.  Fixes a bug where certain
6805         situations (like a broken pipe) could cause a Disconnect message
6806         to not be sent, tricking the bus into thinking a service was still
6807         there when the process had quit.
6808         (_dbus_connection_send_preallocated): Call
6809         _dbus_connection_send_preallocated_and_unlock().
6810         (_dbus_connection_send_and_unlock): Added.  Calls
6811         _dbus_connection_send_preallocated_and_unlock().
6812         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6813         (dbus_connection_send_with_reply): Update the dispatch status and
6814         unlock.
6815
6816         * mono/Service.cs (~Service): Added.  Removes the filter so that
6817         we don't get unmanaged code calling back into a GCed delegate.
6818         (RemoveFilter); Added.
6819
6820 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6821
6822         * dbus/dbus-message.c (dbus_message_iter_open_container):
6823         - Removed check for iterator type being an array because
6824         get_arg_type does not work with writer iterators
6825         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6826
6827 2005-02-07  Havoc Pennington  <hp@redhat.com>
6828
6829         * doc/dbus-specification.xml: some more language cleanups; add
6830         stuff about how to deal with invalid protocol and extension
6831         points; add _ to allowed chars in auth commands; add EXTENSION_
6832         auth command prefix
6833
6834 2005-02-06  Havoc Pennington  <hp@redhat.com>
6835
6836         * s/expected/required/ in a couple places for clarity
6837
6838 2005-02-07  Colin Walters  <walters@verbum.org>
6839
6840         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6841         sender or proposed_recipient.
6842
6843 2005-02-06  Havoc Pennington  <hp@redhat.com>
6844
6845         * dbus/dbus-message-factory.c (generate_special): more tests
6846
6847         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6848         array length that exceeds the maximum
6849
6850 2005-02-05  Havoc Pennington  <hp@redhat.com>
6851
6852         * dbus/dbus-message-factory.c (generate_special): more test cases,
6853         increasing coverage
6854
6855         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6856         reason why a signature was invalid
6857
6858         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6859         skip the length of the string before we look at it in validation
6860
6861         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6862         equal_substring
6863
6864         * dbus/dbus-message.c (_dbus_message_loader_new): default
6865         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6866
6867 2005-02-05  Havoc Pennington  <hp@redhat.com>
6868
6869         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6870         if the signature of a variant was empty
6871         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6872         struct with no element type)
6873
6874         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6875         mangled messages to break things
6876
6877 2005-02-04  Havoc Pennington  <hp@redhat.com>
6878
6879         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6880         g_quark_try_string() so it actually can return 0
6881         (dbus_g_proxy_connect_signal): ditto
6882
6883 2005-02-04  Havoc Pennington  <hp@redhat.com>
6884
6885         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6886         bogus warning
6887         (tristring_from_message): assert cleanly on null path/interface
6888         (should not be possible though I decided later)
6889         (dbus_g_proxy_dispose): move proxy manager unregistration here
6890         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6891         g_return_if_fail() checks
6892
6893 2005-02-04  Havoc Pennington  <hp@redhat.com>
6894
6895         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6896
6897         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6898         (with some minor changes)
6899
6900         * doc/dbus-specification.xml: add deprecated attribute to
6901         introspection format
6902
6903 2005-01-31  Havoc Pennington  <hp@redhat.com>
6904
6905         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6906         think it's sort of right
6907
6908 2005-01-30  Havoc Pennington  <hp@redhat.com>
6909
6910         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6911
6912 2005-01-30  Havoc Pennington  <hp@redhat.com>
6913
6914         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6915
6916         * autogen.sh: change to autotools 1.9
6917
6918         * glib/dbus-gproxy.c: completely change how signals work
6919         (dbus_g_proxy_add_signal): new function to specify signature of a
6920         signal
6921         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6922         and g_warning if the incoming message has the wrong signature.
6923
6924 2005-01-30  Havoc Pennington  <hp@redhat.com>
6925
6926         * tools/dbus-names-model.c (have_names_notify): fix this
6927
6928         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6929         up the string array handling a bit 
6930
6931 2005-01-30  Havoc Pennington  <hp@redhat.com>
6932
6933         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6934         (dbus_g_pending_call_cancel): new function
6935
6936         * dbus/dbus-glib.h: move GType decls for connection/message here;
6937         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6938         here, just kind of rationalizing how we handle all that
6939
6940         * tools/dbus-names-model.c: new file for a tree model listing the
6941         services on a bus
6942
6943         * tools/dbus-tree-view.c (model_new): use proper typing on the
6944         model rows
6945
6946 2005-01-30  Havoc Pennington  <hp@redhat.com>
6947
6948         * glib/dbus-gmain.c: add a custom GSource back that just checks
6949         whether the message queue has anything in it; otherwise, there are 
6950         cases where we won't see messages in the queue since there was no 
6951         IO visible to the glib main loop
6952
6953         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6954         increase default message timeout to 25 seconds
6955
6956 2005-01-30  Havoc Pennington  <hp@redhat.com>
6957
6958         * test/glib/test-profile.c (no_bus_stop_server): remove the
6959         warning about the g_warning that I just fixed
6960
6961         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6962         custom source, seems to be a lot easier to understand and work
6963         better.
6964
6965 2005-01-30  Havoc Pennington  <hp@redhat.com>
6966
6967         I think this main loop thing is conceptually broken, but here are 
6968         some band aids. I'll maybe rewrite it in a minute.
6969         
6970         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6971         custom GSource, so don't pass it in; confusing
6972         (gsource_server_finalize, gsource_connection_finalize): add
6973         finalize handlers that remove all the watches.  
6974
6975 2005-01-30  Havoc Pennington  <hp@redhat.com>
6976
6977         * glib/dbus-gobject.c (introspect_properties): fix the XML
6978         generated
6979
6980         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6981         which effectively detects the use of freed messages
6982
6983         * glib/dbus-gobject.c (handle_introspect): modify and return the
6984         reply message instead of the incoming message
6985
6986         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6987         gee, maybe it should SEND THE XML instead of just making a string
6988         and freeing it again ;-)
6989
6990         * tools/dbus-print-message.c (print_message): improve printing of
6991         messages
6992
6993         * configure.in: add debug-glib.service to the output
6994
6995 2005-01-30  Havoc Pennington  <hp@redhat.com>
6996
6997         dbus-viewer introspected and displayed the bus driver
6998         
6999         * dbus/dbus-object-tree.c 
7000         (object_tree_test_iteration): add tests for a handler registered on "/"
7001
7002         * dbus/dbus-object-tree.c
7003         (_dbus_decompose_path): fix to handle path "/" properly
7004         (run_decompose_tests): add tests for path decomposition
7005         
7006         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
7007         properly
7008
7009         * glib/dbus-gobject.c (handle_introspect): fix quotes
7010
7011         * test/glib/run-test.sh: support launching the bus, then running
7012         dbus-viewer
7013
7014         * test/glib/test-service-glib.c (main): put in a trivial gobject
7015         subclass and register it on the connection
7016
7017         * bus/driver.c (bus_driver_handle_introspect): implement
7018         introspection of the bus driver service
7019
7020         * dbus/dbus-protocol.h: add #defines for the XML namespace,
7021         identifiers, doctype decl
7022
7023         * bus/driver.c (bus_driver_handle_get_service_owner): handle
7024         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
7025         returning the service unchanged.
7026         (bus_driver_handle_message): remove old check for reply_serial in
7027         method calls, now the message type deals with that
7028         (bus_driver_handle_message): handle NULL interface
7029
7030         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
7031
7032         * glib/dbus-gloader-expat.c (description_load_from_string): allow
7033         -1 for len
7034
7035         * tools/dbus-viewer.c: add support for introspecting a service on
7036         a bus
7037
7038         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
7039         (dbus_g_pending_call_unref): add
7040
7041 2005-01-29  Havoc Pennington  <hp@redhat.com>
7042
7043         * tools/dbus-tree-view.c: add support for displaying properties.
7044         (run dbus-viewer with an introspect xml file as arg, then resize
7045         the window so the tree elements show up, not sure what that is)
7046
7047         * glib/dbus-gobject.c (handle_introspect): return
7048         org.freedesktop.Properties and org.freedesktop.Introspectable
7049         interfaces when we are introspected.
7050
7051         * doc/dbus-specification.xml: allow empty interface name when 
7052         Get/Set a property
7053
7054 2005-01-29  Havoc Pennington  <hp@redhat.com>
7055
7056         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
7057         though it uses glib, it could be extended for any binding in
7058         principle
7059
7060         * glib/dbus-gobject.c (gobject_message_function): change to the
7061         new way properties work
7062
7063         * dbus/dbus-protocol.h: add the new interfaces
7064
7065         * doc/dbus-specification.xml: document the introspection format,
7066         Introspectable interface, and add an org.freedesktop.Properties
7067         interface.
7068
7069         * glib/dbus-gparser.c: add support for a <property> element
7070
7071         * glib/dbus-gidl.c: add PropertyInfo
7072
7073         * glib/dbus-gobject.c (handle_introspect): put the outermost
7074         <node> outside the signal and property descriptions.
7075         (introspect_properties): export properties as <property> rather
7076         than as method calls
7077
7078 2005-01-28  Havoc Pennington  <hp@redhat.com>
7079
7080         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
7081         related to authentication protocol
7082
7083 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
7084
7085         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
7086                 - BUS_ACTIVATION -> BUS_STARTER
7087                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
7088                 - class MessageIter (__init__): Added recursion checking 
7089                 so we throw a nice error instead of just disconnecting from the
7090                 bus.
7091                 (get): Added arg_type parameter for recursion.
7092                 Removed the nil type
7093                 Added signiture type placeholder (not implemented)
7094                 Added struct type placeholder (not implemented)
7095                 Added varient type placeholder (not implemented)
7096                 Commented out dict type for now     
7097                 (get_element_type): renamed from get_array_type
7098                 (get_*): changed to use the dbus_message_iter_get_basic API
7099                 (get_*_array): removed in favor of recursive get_array method
7100                 (get_array): new recursive method which calls get to marshal
7101                 the elements of the array
7102                 (value_to_dbus_sig): New method returns the corrasponding
7103                 dbus signiture to a python value
7104                 (append): Comment out dict handling for now
7105                 Handle lists with the new recursive API
7106                 Comment out None handling for now
7107                 (append_nil): removed
7108                 (append_*): changed to use dbus_message_iter_append_basic API
7109                 (append_*_array): removed in favor of recursive append_array 
7110                 method
7111                 (__str__): Make it easier to print out recursive iterators
7112                 for debugging
7113                 - class Message (__str__): moved type inspection to the
7114                 MessageIter class' __str__ method
7115                 (get_iter): Added an append parameter wich defaults to False
7116                 If True use the new API's to create an append iterator
7117
7118         * python/dbus.py: Update to use new bindings API
7119                 - TYPE_ACTIVATION -> TYPE_STARTER
7120                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
7121                 - class ActivationBus -> class StarterBus
7122                 - class RemoteObject (__call__): get an append iterator
7123                 - (_dispatch_dbus_method_call): get an append iterator
7124                 - class Object (emit_signal): get an append iterator
7125
7126         * python/examples/: Fixed up the examples to work with the new API
7127                 
7128 2005-01-28  Joe Shaw  <joeshaw@novell.com>
7129
7130         * configure.in: Bump version up to 0.30.
7131
7132         * HACKING: Add a release item to bump the version number up after 
7133         a release.
7134
7135 2005-01-28  Havoc Pennington  <hp@redhat.com>
7136
7137         * doc/dbus-specification.xml: update to describe 16-bit types and
7138         dict entries
7139
7140         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
7141         assertion
7142
7143         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
7144         type
7145
7146         * dbus/dbus-marshal-recursive.c: implement
7147
7148 2005-01-27  Havoc Pennington  <hp@redhat.com>
7149
7150         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
7151
7152         * configure.in: find the right type for 16 and 32 bit ints as well
7153         as 64
7154
7155         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
7156         the 16-bit types so people don't have to stuff them in 32-bit or
7157         byte arrays.
7158
7159 2005-01-27  Havoc Pennington  <hp@redhat.com>
7160
7161         * dbus/dbus-message.c: byteswap the message if you init an
7162         iterator to read/write from it
7163         
7164         * dbus/dbus-marshal-byteswap.c: new file implementing 
7165         _dbus_marshal_byteswap()
7166
7167         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
7168
7169 2005-01-26  Havoc Pennington  <hp@redhat.com>
7170         
7171         * dbus/dbus-marshal-validate-util.c: break this out (and fix
7172         build, apparently - nobody noticed?)
7173         
7174 2005-01-26  Havoc Pennington  <hp@redhat.com>
7175
7176         * dbus/dbus-marshal-recursive.h: remove todo comment
7177
7178 2005-01-25  Joe Shaw  <joeshaw@novell.com>
7179
7180         * Land the mono binding changes to conform to the new APIs.
7181
7182         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
7183         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
7184
7185         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
7186         type code as a string.
7187         (InitAppending): Rename dbus_message_append_iter_init() to
7188         dbus_message_iter_init_append().
7189
7190         * mono/BusDriver.cs: Rename ServiceEventHandler to
7191         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
7192         Rename ServiceOwnerChanged to NameOwnerChanged.
7193
7194         * mono/Connection.cs: Rename BaseService to UniqueName, and the
7195         underlying C call.
7196
7197         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
7198
7199         * mono/Service.cs: Rename Exists to HasOwner, internally rename
7200         dbus_bus_acquire_service() to dbus_bus_request_name().
7201
7202         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
7203         of Type.UnderlyingSystemType to get the correct element type for
7204         the array.
7205         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
7206         dbus_message_get_{element|arg}_type() instead of
7207         dbus_message_iter_init_array_iterator().
7208         (Append): Replace dbus_message_iter_append_array() with
7209         dbus_message_iter_open_container() and
7210         dbus_message_iter_close_container().
7211
7212         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
7213         types have been removed.
7214         
7215         * mono/DBusType/*.cs: Replace calls of
7216         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
7217         but specify the type in the DllImport extern declaration.  Ditto
7218         for dbus_message_iter_append_[type]() ->
7219         dbus_message_iter_append_basic().
7220
7221         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
7222         NameOwnerChangedHandler.
7223
7224 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
7225
7226         * python/dbus_bindings.pyx.in: Rename of methods and bindings
7227                 - get_base_service -> get_unique_name
7228                 - bus_get_base_service -> bus_get_unique_name
7229                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
7230                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
7231                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
7232                 - bus_activate_service -> bus_start_service_by_name
7233                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
7234                 - bus_acquire_service -> bus_request_name
7235                 - dbus_bus_acquire_service -> dbus_bus_request_name
7236                 - bus_service_exists -> bus_name_has_owner
7237                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
7238
7239         * python/dbus.py: Rename of methods
7240                 - activate_service -> start_service_by_name
7241                 - bus_acquire_service -> bus_request_name
7242                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
7243                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
7244
7245         
7246 2005-01-24  Joe Shaw  <joeshaw@novell.com>
7247
7248         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
7249         signature for the method that can't be found.
7250
7251         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
7252         the message has any arguments, we need to call
7253         _dbus_type_reader_get_current_type(), not
7254         _dbus_type_reader_has_next().
7255
7256 2005-01-24  Havoc Pennington  <hp@redhat.com>
7257
7258         * dbus/dbus-message-factory.c: more testing of message validation
7259
7260         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
7261         header
7262
7263 2005-01-23  Havoc Pennington  <hp@redhat.com>
7264
7265         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
7266         get this all working, not many tests in the framework yet though
7267
7268 2005-01-22  Havoc Pennington  <hp@redhat.com>
7269
7270         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
7271         tutorial, based on work from David Wheeler.
7272
7273 2005-01-21  Havoc Pennington  <hp@redhat.com>
7274
7275         * dbus/dbus-bus.c: add more return_if_fail checks
7276
7277         * dbus/dbus-message.c (load_message): have the "no validation"
7278         mode (have to edit the code to toggle the mode for now though)
7279
7280         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
7281         skips all validation; I want to use this at least for benchmark
7282         baseline, I'm not sure if it should be a publicly-available switch.
7283
7284 2005-01-21  Havoc Pennington  <hp@redhat.com>
7285
7286         * glib/dbus-gmain.c: don't put the GLib bindings in the same
7287         toplevel doxygen group as the low-level API stuff
7288
7289         * dbus/dbus.h: note that libdbus is the low-level API
7290
7291 2005-01-20  Havoc Pennington  <hp@redhat.com>
7292
7293         * update-dbus-docs.sh: script to update docs on the web site, only
7294         works for me though. neener.
7295
7296 2005-01-20  Havoc Pennington  <hp@redhat.com>
7297
7298         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
7299         code can reveal bugs in it
7300
7301 2005-01-20  Havoc Pennington  <hp@redhat.com>
7302
7303         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
7304         select() version, patches from Tor Lillqvist
7305
7306 2005-01-20  Havoc Pennington  <hp@redhat.com>
7307
7308         * doc/dbus-tutorial.xml: replace > with &gt;
7309
7310         * bus/services.c (bus_registry_acquire_service): validate the name
7311         and return a better error if it's no good.
7312
7313         * doc/dbus-specification.xml: note NO_AUTO_START change
7314
7315         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
7316         from AUTO_START, we're toggling the default
7317
7318         * bus/dispatch.c: adapt the tests to change of auto-start default
7319
7320 2005-01-18  Havoc Pennington  <hp@redhat.com>
7321
7322         * rename dbus-daemon-1 to dbus-daemon throughout
7323
7324 2005-01-18  Havoc Pennington  <hp@redhat.com>
7325
7326         * Throughout, grand renaming to strip out the use of "service",
7327         just say "name" instead (or "bus name" when ambiguous).  Did not
7328         change the internal code of the message bus itself, only the
7329         programmer-facing API and messages.
7330         
7331         * doc/dbus-specification.xml: further update the message bus section
7332         
7333         * bus/config-parser.c (all_are_equiv): fix bug using freed string
7334         in error case
7335
7336 2005-01-17  Havoc Pennington  <hp@redhat.com>
7337
7338         * dbus/dbus-types.h: remove 16-bit types since we don't use them
7339         ever
7340
7341         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7342         "invalid name character" not only non-ASCII
7343
7344         * doc/dbus-specification.xml: further update spec, message bus 
7345         parts are still out-of-date but the marshaling etc. stuff is now
7346         accurate-ish
7347
7348 2005-01-17  Havoc Pennington  <hp@redhat.com>
7349
7350         * doc/dbus-specification.xml: partially update spec
7351
7352 2005-01-17  Havoc Pennington  <hp@redhat.com>
7353
7354         * Throughout, align variant bodies according to the contained
7355         type, rather than always to 8. Should save a fair bit of space in
7356         message headers.
7357         
7358         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7359         fix handling of case where p == end
7360
7361         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7362
7363 2005-01-17  Havoc Pennington  <hp@redhat.com>
7364
7365         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7366
7367         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7368         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7369         are marshaling/unmarshaling a boolean.
7370
7371 2005-01-16  Havoc Pennington  <hp@redhat.com>
7372
7373         This is about it on what can be disabled/deleted from libdbus
7374         easily, back below 150K anyhow. Deeper cuts are more work than 
7375         just turning the code off as I've done here.
7376         
7377         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7378         signed int convenience funcs
7379
7380         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7381         verbose mode
7382
7383         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7384         things out of libdbus
7385
7386         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7387         
7388         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7389         tests-enabled-only, though it should probably be deleted)
7390
7391         * dbus/dbus-message-util.c: same stuff
7392
7393         * dbus/dbus-auth-util.c: same stuff
7394
7395 2005-01-16  Havoc Pennington  <hp@redhat.com>
7396
7397         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7398
7399         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7400         way for stripping down dbus-userdb.c stuff included in libdbus.
7401         Rename _dbus_parse_uid for consistency.
7402
7403 2005-01-16  Havoc Pennington  <hp@redhat.com>
7404
7405         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7406         name the assertion failed in
7407
7408         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7409         (_dbus_return_val_if_fail): assert that the name of the function
7410         containing the check doesn't start with '_', since we only want to 
7411         use checks on public functions
7412         
7413         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7414         checks to assertions
7415
7416         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7417         change checks to asserts for private function
7418
7419         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7420         to asserts for private function
7421
7422         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7423         broken assertion that was breaking make check
7424         (_dbus_type_reader_array_is_empty): remove this rather than fix
7425         it, was only used in assertions
7426
7427 2005-01-16  Havoc Pennington  <hp@redhat.com>
7428
7429         * test/unused-code-gc.py: hacky script to find code that's used
7430         only by the bus (not libdbus) or used only by tests or not used at
7431         all. It has some false alarms, but looks like we can clean up a
7432         lot of size from libdbus.
7433
7434         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7435         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7436         
7437 2005-01-16  Havoc Pennington  <hp@redhat.com>
7438
7439         * Add and fix docs according to Doxygen warnings throughout
7440         source.
7441         
7442         * dbus/dbus-marshal-recursive.c
7443         (_dbus_type_reader_array_is_empty): change this to just call
7444         array_reader_get_array_len() and make it static
7445
7446         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7447         from get_array_type
7448         (dbus_message_iter_init_append): rename from append_iter_init
7449
7450         * dbus/dbus-marshal-recursive.c
7451         (_dbus_type_reader_get_element_type): rename from
7452         _dbus_type_reader_get_array_type
7453
7454 2005-01-15  Havoc Pennington  <hp@redhat.com>
7455
7456         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7457
7458         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7459         when DBUS_DISABLE_ASSERT
7460         (_dbus_marshal_set_basic): be sure we align for the string length
7461
7462         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7463         this look faster
7464
7465         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7466         inline macro version
7467         (_dbus_string_set_byte): provide inline macro version
7468
7469 2005-01-15  Havoc Pennington  <hp@redhat.com>
7470
7471         * Land the new message args API and type system.
7472
7473         This patch is huge, but the public API change is not 
7474         really large. The set of D-BUS types has changed somewhat, 
7475         and the arg "getters" are more geared toward language bindings;
7476         they don't make a copy, etc.
7477
7478         There are also some known issues. See these emails for details
7479         on this huge patch:
7480         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7481         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7482         
7483         * dbus/dbus-marshal-*: all the new stuff
7484
7485         * dbus/dbus-message.c: basically rewritten
7486
7487         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7488         freed blocks to be all non-nul bytes so using freed memory is less
7489         likely to work right
7490
7491         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7492         DBUS_FAIL_MALLOC=N environment variable, so you can do
7493         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7494         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7495         thorough.
7496
7497         * qt/message.cpp: port to the new message args API
7498         (operator<<): use str.utf8() rather than str.unicode()
7499         (pretty sure this is right from the Qt docs?)
7500
7501         * glib/dbus-gvalue.c: port to the new message args API
7502
7503         * bus/dispatch.c, bus/driver.c: port to the new message args API
7504
7505         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7506         "locked" flag to TRUE and align_offset to 0; I guess we never
7507         looked at these anyhow, but seems cleaner.
7508
7509         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7510         move allocation padding macro to this header; use it to implement
7511         (_DBUS_STRING_STATIC): ability to declare a static string.
7512
7513         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7514         change to return TRUE if the interface is not set.
7515
7516         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7517         to dbus-marshal-validate.[hc]
7518
7519         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7520         dbus-internals.c
7521
7522         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7523         to dbus-marshal-*.[hc]
7524
7525         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7526         function here from dbus-marshal.c
7527
7528 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7529
7530         * NEWS: Update for 0.23.
7531
7532         * configure.in: Release 0.23.
7533
7534 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7535
7536         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7537         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7538         behind.
7539
7540         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7541         uninstall"
7542
7543         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7544         is an enum, get the enum's underlying type.  Another mono
7545         1.1.3 fix.
7546
7547 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7548
7549         Patch from Sjoerd Simons <sjoerd@luon.net>
7550
7551         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7552         DESTDIR.  It breaks stuff.
7553
7554 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7555
7556         Patch from Tambet Ingo <tambet@ximian.com>
7557
7558         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7559         calling type.GetElementType().  The code previously depended on
7560         broken Mono behavior, which was fixed in Mono 1.1.3.
7561
7562         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7563         Activator.CreateInstance() so that the class's constructor is
7564         called with the right parameters.
7565
7566 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7567
7568         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7569
7570         * dbus/dbus-connection.c
7571         (_dbus_connection_queue_received_message_link): Call
7572         _dbus_connection_remove_timeout() instead of the _locked()
7573         variant, since it's always called from
7574         _dbus_connection_handle_watch(), which handles the locking.
7575         Removed the _locked() variant since it's no longer used.
7576
7577 2005-01-03  Havoc Pennington  <hp@redhat.com>
7578
7579         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7580         return
7581         
7582 2004-12-26  Havoc Pennington  <hp@redhat.com>
7583
7584         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7585
7586 2005-01-03  Havoc Pennington  <hp@redhat.com>
7587
7588         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7589         floating point
7590
7591         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7592
7593 2005-01-02  Havoc Pennington  <hp@redhat.com>
7594
7595         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7596
7597 2005-01-01  Havoc Pennington  <hp@redhat.com>
7598
7599         * configure.in: add -Wfloat-equal
7600
7601 2005-01-01  Havoc Pennington  <hp@redhat.com>
7602
7603         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7604         for a variety of reasons '==' doesn't do this.
7605
7606 2004-12-31  Havoc Pennington  <hp@redhat.com>
7607
7608         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7609         I keep wishing I had
7610
7611 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7612
7613         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7614
7615 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7616
7617         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7618         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7619         dbus-protocol.h.  Because they are defines and not enums they are not
7620         autogenerated.
7621
7622 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7623
7624         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7625         dbus_bus_activate_service
7626
7627         * python/dbus.py (Bus.activate_service): activate a service on the
7628         bus.
7629
7630 2004-12-24  Havoc Pennington  <hp@redhat.com>
7631
7632         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7633         file format has also changed and I haven't adapted to that yet
7634         
7635         * Makefile.am: load .gcno files from latest gcc
7636
7637 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7638         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7639
7640         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7641         lowlevel binding
7642
7643         * python/dbus.py (get_unix_user): Added binding to 
7644         call dbus_bindings.bus_get_unix_user
7645
7646         * python/extract.py: Modified the proto_pat regex to
7647         handle unsigned long
7648
7649 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7650
7651         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7652         better POSIX compliance.
7653
7654 2004-12-19  Havoc Pennington  <hp@redhat.com>
7655
7656         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7657         (_dbus_string_insert_8_aligned): new functions
7658
7659         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7660
7661 2004-12-18  Havoc Pennington  <hp@redhat.com>
7662
7663         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7664         macro
7665
7666         * dbus/dbus-message.c: fix a comment, and add a still-unused
7667         not-implemented function
7668
7669         * dbus/dbus-marshal.h: fix comment
7670
7671         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7672
7673 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7674
7675         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7676         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7677         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7678         Type.UnderlyingSystemType to get the actual system type
7679         underneath.  This code previously depended on the broken Mono
7680         behavior, which was fixed in 1.1.3.
7681
7682 2004-11-27  Havoc Pennington  <hp@redhat.com>
7683
7684         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7685         are disabled
7686         (_dbus_string_get_const_data): inline when asserts are disabled
7687
7688         * dbus/dbus-message.c: record the _dbus_current_generation of
7689         creation so we can complain if dbus_shutdown() is used improperly.
7690         Do this only if checks are enabled.
7691
7692         * dbus/dbus-connection.c: ditto
7693         
7694 2004-11-26  Havoc Pennington  <hp@redhat.com>
7695
7696         * test/glib/test-profile.c: add with_bus mode to profile echoes
7697         that go through the bus.
7698
7699         * test/glib/run-test.sh: add ability to run test-profile
7700
7701         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7702         config file reload.
7703
7704 2004-11-26  Havoc Pennington  <hp@redhat.com>
7705
7706         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7707         thing was implemented
7708
7709 2004-11-26  Havoc Pennington  <hp@redhat.com>
7710
7711         * test/glib/test-profile.c: tweak a bit, add support for some
7712         made-up minimal malloc overhead with plain sockets, since in 
7713         real life some sort of buffers are unavoidable thus we could 
7714         count them in the theoretical best case
7715
7716 2004-11-26  Havoc Pennington  <hp@redhat.com>
7717
7718         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7719         where I was trying to cache one too many messages
7720
7721 2004-11-26  Havoc Pennington  <hp@redhat.com>
7722
7723         * dbus/dbus-message.c: reimplement message cache as an array which 
7724         makes the cache about twice as fast and saves maybe 1.5% overall
7725
7726 2004-11-26  Havoc Pennington  <hp@redhat.com>
7727
7728         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7729         message cache lock here
7730
7731 2004-11-26  Havoc Pennington  <hp@redhat.com>
7732
7733         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7734         the "char byte_order" next to each other to save 4 bytes
7735         (dbus_message_new_empty_header): reduce preallocation, since the
7736         message cache should achieve a similar effect
7737         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7738         message cache that keeps a few DBusMessage around in a pool,
7739         another 8% speedup or so.
7740
7741         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7742
7743 2004-11-25  Havoc Pennington  <hp@redhat.com>
7744
7745         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7746         to write, without reading or blocking, try it before the poll()
7747         and skip the poll() if nothing remains to write. This is about a
7748         3% speedup in the echo client/server
7749
7750 2004-11-25  Havoc Pennington  <hp@redhat.com>
7751
7752         The primary change here is to always write() once before adding
7753         the write watch, which gives us about a 10% performance increase.
7754         
7755         * dbus/dbus-transport-unix.c: a number of modifications to cope
7756         with removing messages_pending
7757         (check_write_watch): properly handle
7758         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7759         messages_pending stuff
7760         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7761         AUTHENTICATED cases
7762         (unix_handle_watch): after writing, see if the write watch can be
7763         removed
7764         (unix_do_iteration): assert that write_watch/read_watch are
7765         non-NULL rather than testing that they aren't, since they 
7766         aren't allowed to be NULL. check_write_watch() at the end so 
7767         we add the watch if we did not finish writing (e.g. got EAGAIN)
7768
7769         * dbus/dbus-transport-protected.h: remove messages_pending call,
7770         since it resulted in too much inefficient watch adding/removing; 
7771         instead we now require that the transport user does an iteration 
7772         after queueing outgoing messages, and after trying the first
7773         write() we add a write watch if we got EAGAIN or exceeded our 
7774         max bytes to write per iteration setting
7775
7776         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7777         function
7778
7779         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7780         freed and then accessed, valgrind flagged this bug, fix it
7781
7782         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7783         as the last valid field plus 1, where really it is equal to the
7784         last valid field. Corrects some message corruption issues.
7785
7786         * dbus/dbus-mainloop.c: verbosity changes
7787
7788         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7789         instead of aborting in one of the test codepaths
7790
7791         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7792         caused not printing the pid ever again if a verbose was missing
7793         the newline at the end
7794         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7795
7796         * dbus/dbus-connection.c: verbosity changes; 
7797         (dbus_connection_has_messages_to_send): new function
7798         (_dbus_connection_message_sent): no longer call transport->messages_pending
7799         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7800         try to write() immediately, so we can avoid the write watch. This
7801         is the core purpose of this patchset
7802         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7803         dump the outgoing message queue, so nobody will get confused
7804         trying to send them or thinking stuff is pending to be sent
7805
7806         * bus/test.c: verbosity changes
7807
7808         * bus/driver.c: verbosity/assertion changes
7809
7810         * bus/dispatch.c: a bunch of little tweaks to get it working again
7811         because this patchset changes when/where you need to block.
7812
7813 2004-11-23  Havoc Pennington  <hp@redhat.com>
7814
7815         * test/glib/test-profile.c: modify to accept a plain_sockets
7816         argument in which case it will bench plain sockets instead of
7817         libdbus, for comparison purposes.
7818
7819 2004-11-22  Havoc Pennington  <hp@redhat.com>
7820
7821         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7822         threads for more time, so sysprof can get a grip on it.
7823
7824         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7825         pointless variable
7826
7827 2004-11-13  Havoc Pennington  <hp@redhat.com>
7828
7829         * test/glib/test-profile.c: fix this thing up a bit
7830
7831         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7832         preallocation sizes by a fair bit; not sure if this will be an
7833         overall performance win or not, but it does reduce reallocs.
7834
7835         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7836         the test hack that forced constant realloc if asserts are
7837         disabled, so we can profile sanely. Sprinkle in some
7838         _DBUS_UNLIKELY() which are probably pointless, but before I
7839         noticed the real performance problem I put them in.
7840         (_dbus_string_validate_utf8): micro-optimize this thing a little
7841         bit, though callgrind says it didn't help; then special-case
7842         ascii, which did help a lot; then be sure we detect nul bytes as
7843         invalid, which is a bugfix.
7844         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7845         superstition; use memset to nul the padding instead of a manual
7846         loop.
7847         (_dbus_string_get_length): inline this as a
7848         macro; it showed up in the profile because it's used for loop
7849         tests and so forth
7850
7851 2004-11-10  Colin Walters  <walters@verbum.org>
7852
7853         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7854         for extra paranoia.
7855
7856 2004-11-09  Colin Walters  <walters@verbum.org>
7857
7858         * dbus/dbus-string.c (_dbus_string_get_length): New
7859         function, writes DBusString to C buffer.
7860
7861         * dbus/dbus-string.h: Prototype it.
7862
7863         * dbus/dbus-message.c (dbus_message_type_to_string): New
7864         function, converts message type into C string.
7865
7866         * dbus/dbus-message.h: Prototype it.
7867
7868         * bus/selinux.c (bus_selinux_check): Take source pid,
7869         target pid, and audit data.  Pass audit data to
7870         avc_has_perm.
7871         (log_audit_callback): New function, appends extra
7872         audit information.
7873         (bus_selinux_allows_acquire_service): Also take
7874         service name, add it to audit data.
7875         (bus_selinux_allows_send): Also take message
7876         type, interface, method member, error name,
7877         and destination, and add them to audit data.
7878         (log_cb): Initialize func_audit.
7879         
7880         * bus/selinux.h (bus_selinux_allows_acquire_service)
7881         (bus_selinux_allows_send): Update prototypes 
7882
7883         * bus/services.c (bus_registry_acquire_service): Pass
7884         service name to bus_selinux_allows_acquire_service.
7885
7886         * bus/bus.c (bus_context_check_security_policy): Pass
7887         additional audit data.  Move assignment of dest
7888         to its own line.
7889
7890 2004-11-07  Colin Walters  <walters@verbum.org>
7891
7892         * dbus/dbus-transport-unix.c (do_authentication): Always
7893         initialize auth_completed.
7894         
7895 2004-11-07  Colin Walters  <walters@verbum.org>
7896
7897         * bus/bus.c (load_config): Break into three
7898         separate functions: process_config_first_time_only,
7899         process_config_every_time, and process_config_postinit.
7900         (process_config_every_time): Move call of
7901         bus_registry_set_service_context_table into
7902         process_config_postinit.
7903         (process_config_postinit): New function, does
7904         any processing that needs to happen late
7905         in initialization (and also on reload).
7906         (bus_context_new): Instead of calling load_config,
7907         open config parser here and call process_config_first_time_only
7908         and process_config_every_time directly.  Later, after
7909         we have forked but before changing UID,
7910         invoke bus_selinux_full_init, and then call
7911         process_config_postinit.
7912         (bus_context_reload_config): As in bus_context_new,
7913         load parse file inside here, and call process_config_every_time
7914         and process_config_postinit.
7915
7916         * bus/services.h, bus/services.c
7917         (bus_registry_set_service_context_table): Rename
7918         from bus_registry_set_sid_table.  Take string hash from config
7919         parser, and convert them here into SIDs.
7920
7921         * bus/config-parser.c (struct BusConfigParser): Have
7922         config parser only store a mapping of service->context
7923         string.
7924         (merge_service_context_hash): New function.
7925         (merge_included): Merge context string hashes instead
7926         of using bus_selinux_id_table_union.
7927         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7928         simply create a new string hash.
7929         (bus_config_parser_unref): Unref it.
7930         (start_selinux_child): Simply insert strings into hash,
7931         don't call bus_selinux_id_table_copy_over.
7932
7933         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7934         (bus_selinux_id_table_copy_over): Delete.
7935
7936 2004-11-03  Colin Walters  <walters@verbum.org>
7937
7938         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7939         variables.
7940         
7941 2004-11-03  Colin Walters  <walters@verbum.org>
7942
7943         * bus/test-main.c (test_pre_hook): Fix test logic,
7944         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7945
7946 2004-11-02  Colin Walters  <walters@redhat.com>
7947
7948         * bus/selinux.c (bus_selinux_init): Split into two functions,
7949         bus_selinux_pre_init and bus_selinux_post_init.
7950         (bus_selinux_pre_init): Just determine whether SELinux is
7951         enabled.
7952         (bus_selinux_post_init): Do everything else.
7953
7954         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7955         config file, and bus_selinux_post_init after.  This ensures that
7956         we don't lose the policyreload notification thread that
7957         bus_selinux_init created before forking previously.
7958         
7959         * bus/test-main.c (test_pre_hook): Update for split.
7960
7961 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7962
7963         Patch from Johan Fischer <linux@fischaz.com>
7964         
7965         * mono/doc/Makefile.am (install-data-local): Added directory
7966         install for DESTDIR
7967
7968 2004-10-29  Colin Walters  <walters@redhat.com>
7969
7970         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7971         parameter for fd to write pid to.       
7972
7973         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7974         
7975         * bus/bus.c (bus_context_new): Pass print_pid_fd
7976         to _dbus_become_daemon (bug #1720)
7977
7978 2004-10-29  Colin Walters  <walters@redhat.com>
7979
7980         Patch from Ed Catmur <ed@catmur.co.uk>
7981
7982         * mono/doc/Makefile.am (install-data-local): Handle
7983         DESTDIR.
7984
7985 2004-10-29  Colin Walters  <walters@redhat.com>
7986
7987         * bus/.cvsignore, qt/.cvsignore: Update.
7988
7989 2004-10-29  Colin Walters  <walters@redhat.com>
7990
7991         Patch from Kristof Vansant <de_lupus@pandora.be>
7992
7993         * configure.in: Detect Slackware.
7994         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7995         * bus/rc.messagebus.in: New file.
7996
7997 2004-10-29  Colin Walters  <walters@redhat.com>
7998
7999         * tools/dbus-monitor.c (filter_func): Return
8000         DBUS_HANDLER_RESULT_HANDLED in filter function
8001         for now.  See:
8002         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
8003
8004 2004-10-29  Colin Walters  <walters@redhat.com>
8005
8006         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
8007
8008         * bus/services.c (bus_registry_acquire_service): 
8009         Correctly retrieve service name from DBusString
8010         for printing.
8011
8012 2004-10-29  Colin Walters  <walters@redhat.com>
8013
8014         * dbus/dbus-glib.h: Update documentation to not
8015         refer to internal APIs.
8016
8017 2004-10-27  Joe Shaw  <joeshaw@novell.com>
8018
8019         * mono/Arguments.cs (GetDBusTypeConstructor):
8020         type.UnderlyingSystemType will return "System.Byte" if you do it
8021         on "byte[]", which is not what we want.  So check the type.IsArray
8022         property and use System.Array instead.
8023
8024 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
8025
8026         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
8027         the DBusUserInfo structure since this is passed into the function.
8028         This would cause a double free when the function that allocated
8029         the structure would try to free it when an error occured.
8030
8031         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
8032         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
8033         for service activation to avoid 32bit/64bit parallel install issues
8034
8035 2004-10-21  Colin Walters  <walters@verbum.org>
8036
8037         * AUTHORS: Fix my email address, the @gnu.org one
8038         has been bouncing for some time.  Also add J5.
8039         
8040 2004-10-21  Colin Walters  <walters@verbum.org>
8041
8042         * dbus/dbus-transport-unix.c (do_authentication): Return
8043         authentication status to callers.
8044         (unix_handle_watch): If we completed authentication this round,
8045         don't do another read.  Instead wait until the next iteration,
8046         after we've read any pending data in the auth buffer.
8047         (unix_do_iteration): Ditto.
8048         (unix_handle_watch): Updated for new do_authentication prototype.
8049
8050 2004-10-18  Colin Walters  <walters@verbum.org>
8051
8052         * bus/selinux.c (bus_selinux_enabled): Handle
8053         --disable-selinux case.
8054         
8055 2004-10-18  Colin Walters  <walters@verbum.org>
8056
8057         * bus/selinux.h: Add bus_selinux_enabled.
8058         
8059         * bus/selinux.c (bus_selinux_enabled): Implement it.
8060         
8061         * bus/config-parser.c (struct include): Add
8062         if_selinux_enabled member.
8063         (start_busconfig_child): Parse if_selinux_enabled
8064         attribute for include.
8065         (bus_config_parser_content): Handle it.
8066
8067         * bus/session.conf.in, bus/system.conf.in: Add
8068         inclusion of context mapping to default config files;
8069         conditional on SELinux being enabled.
8070         
8071         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
8072         
8073         * test/data/invalid-config-files/badselinux-1.conf, 
8074         test/data/invalid-config-files/badselinux-2.conf:
8075         Test files for bad syntax.
8076         
8077 2004-10-17  Colin Walters  <walters@verbum.org>
8078
8079         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
8080         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
8081         format specifier mismatches.
8082
8083 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8084
8085         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
8086         format string.
8087
8088         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
8089         pointer (bug #1540, Leonardo Boiko).
8090
8091 2004-09-28  Jon Trowbridge  <trow@ximian.com>
8092
8093         * mono/BusDriver.cs: Changed BusDriver struct to remove
8094         the ServiceCreated and ServiceDeleted events and replace them
8095         with the new ServiceOwnerChanged event.
8096
8097         * mono/example/BusListener.cs: Added a new example program,
8098         which listens for and reports any ServiceOwnerChanged events
8099         on the bus driver.
8100
8101         * mono/example/Makefile.am (DESTDIR): Build changes for the
8102         new BusListener.cs example.
8103
8104 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8105
8106         * bus/signals.c (bus_match_rule_parse): validate the components of
8107         match rules (bug #1439).
8108
8109         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
8110
8111 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8112
8113         * doc/dbus-specification.xml: document ServiceOwnerChanged
8114         signal.
8115         
8116         * bus/driver.c, bus/driver.h, bus/services.c: Use
8117         ServiceOwnerChanged signal instead of ServiceCreated and
8118         ServiceDeleted.
8119         
8120         * bus/dispatch.c: update testcase for the new signal.
8121
8122 2004-09-20  Jon Trowbridge  <trow@ximian.com>
8123
8124         Patch from Nat Friedman <nat@novell.com>
8125
8126         * mono/Makefile.am: A number of small build fixes to allow "make
8127         distcheck" to succeed.
8128
8129         * mono/example/Makefile.am: "make distcheck" fixes.
8130
8131         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
8132         key in @srcdir@.
8133
8134         * test/Makefile.am: "make distcheck" fixes.
8135
8136 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8137
8138         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
8139
8140         * doc/busconfig.dtd: update the DTD for the at_console attribute.
8141
8142         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
8143         messages after the first one (bug #1389).
8144         
8145         * bus/dispatch.c (check_double_hello_message): add a test case for
8146         the double hello message bug.
8147         (check_existent_service_activation): fix check of spawning error.
8148         
8149 2004-09-16  David Zeuthen  <david@fubar.dk>
8150
8151         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
8152
8153 2004-09-12  David Zeuthen  <david@fubar.dk>
8154
8155         Patch from Kay Sievers <kay.sievers@vrfy.org>
8156
8157         * bus/bus.c (bus_context_new):
8158         * bus/bus.h:
8159         * bus/main.c (usage)
8160         (main):
8161         Add commandline option --nofork to override configuration file
8162         setting.
8163
8164 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8165
8166         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
8167         compilers don't like it (bug #974).
8168
8169 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
8170
8171         * qt/connection.*: Applied patch by Jérôme Lodewyck
8172         <lodewyck@clipper.ens.fr> to integrate an existing
8173         connection into the Qt eventloop
8174
8175 2004-08-30  Jon Trowbridge  <trow@ximian.com>
8176
8177         * mono/BusDriver.cs: Added.  This is a class for interacting with
8178         the org.freedesktop.DBus service.
8179
8180         * mono/Message.cs: Added a mechanism to expose the message that is
8181         currently being dispatched via the static Message.Current
8182         property.  Added Message.Sender and Message.Destination
8183         properties.
8184
8185         * mono/Handler.cs: Expose the dispatched message via
8186         Message.Current when handling method calls.
8187
8188         * mono/Service.cs: Expose the dispatched message via
8189         Message.Current when handling signal emissions.
8190         
8191         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
8192         Connection.BaseService property.
8193
8194 2004-08-28  Havoc Pennington  <hp@redhat.com>
8195
8196         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
8197
8198         More fixes from Steve Grubb
8199         
8200         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
8201         (_dbus_listen_tcp_socket): fix fd leak
8202
8203         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
8204         EINTR to a bit lower in the code
8205
8206 2004-08-26  Jon Trowbridge  <trow@ximian.com>
8207
8208         * bus/driver.c (bus_driver_handle_service_exists): Respond with
8209         TRUE if we are inquiring about the existence of the built-in
8210         org.freedesktop.DBus service.
8211
8212 2004-08-25  John Palmieri  <johnp@redhat.com>
8213         * bus/config-parser.c:
8214         (struct PolicyType): Add POLICY_CONSOLE
8215         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
8216         (start_busconfig_child): Sets up console element when
8217         <policy at_console=""> is encountered in a policy file
8218         (append_rule_from_element): Convert console elements to console
8219         rules.
8220
8221         * bus/policy.c: 
8222         (bus_policy_create_client_policy): Add console rules to the client
8223         policy based on if the client is at the console
8224         (bus_policy_append_console_rule): New function for adding a
8225         console rule to a policy
8226         (bus_policy_merge): Handle console rule merging
8227
8228         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
8229         where we check for console user files
8230         
8231         * dbus/dbus-sysdeps.c:
8232         (_dbus_file_exists): New function which checks if the given
8233         file exists
8234         (_dbus_user_at_console): New function which does the system
8235         specific process of checking if the user is at the console
8236
8237         * dbus/dbus-userdb.c:
8238         (_dbus_is_console_user): New function converts a UID to user name
8239         and then calls the system specific _dbus_user_at_console to 
8240         see if the user is at the console and therefor a console user
8241
8242 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8243
8244         * bus/config-parser.c (set_limit):
8245         * bus/dbus-daemon-1.1.in:
8246         * test/data/valid-config-files/many-rules.conf: set the
8247         max_match_rules_per_connection limt from the config file. 
8248
8249         * doc/busconfig.dtd: update the DTD.
8250
8251         * bus/driver.c: remove some unused variables.
8252
8253 2004-08-24  Mikael Hallendal  <micke@imendio.com>
8254
8255         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
8256         it's been replaced by dbus_g_bus_get
8257
8258 2004-08-23  Colin Walters  <walters@redhat.com>
8259
8260         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8261
8262         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
8263
8264         * bus/selinux.c: Create a thread for policy reload notification.
8265         (bus_selinux_get_policy_root): Implement.
8266
8267         * bus/config-parser.c (start_busconfig_child)
8268         (bus_config_parser_content): Support SELinux-root relative
8269         inclusion.
8270
8271         * configure.in <HAVE_SELINUX>: Add -lpthread.
8272         
8273         * bus/test-main.c (test_pre_hook, test_post_hook): New.
8274         (test_post_hook): Move memory checking into here.
8275         (test_pre_hook, test_post_hook): Move SELinux checks in
8276         here, but conditional on a DBUS_TEST_SELINUX environment
8277         variable.  Unfortunately we can't run the SELinux checks
8278         as a normal user, since they won't have any permissions
8279         for /selinux.  So this will have to be tested manually
8280         for now, until we have virtualization for most of
8281         libselinux.
8282         
8283 2004-08-23  Havoc Pennington  <hp@redhat.com>
8284
8285         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
8286         drop supplementary groups, suggested by Steve Grubb
8287
8288 2004-08-20  Colin Walters  <walters@redhat.com>
8289
8290         * bus/config-parser.c (start_busconfig_child): Remove some unused
8291         variables.
8292         
8293         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
8294         warning.
8295
8296 2004-08-17  Joe Shaw  <joeshaw@novell.com>
8297
8298         * configure.in: If --enable-mono is passed in, if we can't find
8299         mono error out.
8300
8301         * mono/Makefile.am: Use /gacutil to install assemblies into the
8302         GAC and not /root.
8303
8304 2004-08-12  Havoc Pennington  <hp@redhat.com>
8305
8306         * NEWS: update for 0.22
8307
8308         * configure.in: release 0.22
8309
8310 2004-08-11  Colin Walters  <walters@redhat.com>
8311
8312         * tools/dbus-send.c (main, usage): Add --reply-timeout
8313         argument.
8314
8315 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8316
8317         * bus/bus.c (process_config_first_time_only): get rid of an unused
8318         DBusError that was causing a memoy leak (bug #989).
8319
8320         * dbus/dbus-keyring.c, dbus/dbus-message.c:
8321         fix compilation on Solaris/Forte C (bug #974)
8322
8323         * bus/main.c (main): plug two minuscule memleaks.
8324
8325 2004-08-10  Havoc Pennington  <hp@redhat.com>
8326
8327         * doc/dbus-tutorial.xml: add some more info on GLib bindings
8328
8329 2004-08-09  Havoc Pennington  <hp@redhat.com>
8330
8331         * COPYING: switch to Academic Free License version 2.1 instead of
8332         2.0, to resolve complaints about patent termination clause.
8333
8334 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
8335
8336         * README: added documentation for the --enable-python 
8337         configure switch.
8338
8339 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8340
8341         * bus/config-parser.c (bus_config_parser_new): fix an invalid
8342         _unref in the SELinux support.
8343
8344         * doc/busconfig.dtd: update DTD for SELinux support.
8345
8346         * bus/config-loader-libxml.c: fix error handler and parser
8347         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8348
8349         * configure.in: remove the warning about libxml2.
8350
8351         * dbus/dbus-bus.c: silence doxygen warning.
8352
8353 2004-07-31  Colin Walters  <walters@redhat.com>
8354
8355         * configure.in: Move #error in SELinux check to its own line.
8356
8357 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8358
8359         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8360         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8361         dbus_error_set.
8362
8363         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8364         broken by the change in the _SET_OOM macros.
8365
8366 2004-07-31  Colin Walters  <walters@redhat.com>
8367
8368         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8369         BUS_SET_OOM.
8370
8371 2004-07-31  Colin Walters  <walters@redhat.com>
8372
8373         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8374         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8375         AC_MSG_CHECKING.
8376
8377 2004-07-24  Havoc Pennington  <hp@redhat.com>
8378
8379         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8380
8381         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8382         functionality
8383
8384         * configure.in: add --enable-selinux
8385         
8386         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8387
8388         * bus/main.c (main): initialize and shut down selinux
8389
8390         * bus/connection.c: store SELinux ID on each connection, to avoid 
8391         repeated getting of the string context and converting it into 
8392         an ID
8393
8394         * bus/bus.c (bus_context_get_policy): new accessor, though it
8395         isn't used
8396         (bus_context_check_security_policy): check whether the security
8397         context of sender connection can send to the security context of
8398         recipient connection
8399
8400         * bus/config-parser.c: add parsing for <selinux> and <associate>
8401         
8402         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8403         implement dbus_connection_get_unix_fd()
8404
8405         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8406         function, used by the selinux stuff
8407         
8408 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8409
8410         * bus/config-loader-libxml.c: complete the implementation of
8411         libxml backend for config file loader. Doesn't work with full OOM
8412         test yet. 
8413         
8414         * configure.in: change error when selecting libxml into a warning.
8415         
8416         * test/data/invalid-config-files: add two non-well-formed XML
8417         files. 
8418         
8419         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8420         
8421         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8422         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8423         be necessary to read all the buffer. (bug #894)
8424
8425         * bus/activation.c (bus_activation_activate_service): fix a
8426         potential assertion failure (bug #896). Small optimization in the
8427         case of auto-activation messages.
8428
8429         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8430         add test case for byte-through-vararg bug (#901). patch by Kimmo
8431         Hämäläinen. 
8432
8433 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8434
8435         * python/dbus.py:
8436         * python/dbus_bindings.pyx.in:
8437         Add dbus.init_gthreads (), allow emit_signal to pass
8438         arguments to the signal.
8439         
8440 2004-07-24  Havoc Pennington  <hp@redhat.com>
8441
8442         * AUTHORS: add some people, not really comprehensively, let me
8443         know if I missed you
8444
8445 2004-07-24  Havoc Pennington  <hp@redhat.com>
8446
8447         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8448         Owen
8449
8450         * test/Makefile.am (DIST_SUBDIRS): here also
8451
8452 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8453
8454         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8455         breaking build on Solaris, reported by Farhad Saberi on the ML.
8456
8457         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8458         va_arg invocation to account for integer promotion in the case of
8459         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8460
8461         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8462         _dbus_list_get_first_link, not _dbus_list_get_first.
8463
8464         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8465
8466         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8467         handler functions so that the asserts in _dbus_object_subtree_unref
8468         do not fail.
8469
8470         * dbus/dbus-transport-unix.c (do_reading):
8471         _dbus_transport_queue_messages return value is of type
8472         dbus_bool_t, not DBusDispatchStatus.
8473         
8474 2004-07-19  David Zeuthen  <david@fubar.dk>
8475
8476         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8477
8478         * bus/dispatch.c:
8479         (check_get_connection_unix_user): Debug says GetProperty; but the
8480         method is called GetConnectionUnixUser
8481         (check_get_connection_unix_process_id): New function
8482         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8483         also call check_get_connection_unix_process_id()
8484         
8485         * bus/driver.c:
8486         (bus_driver_handle_get_connection_unix_process_id): New function,
8487         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8488         interface
8489         
8490         * dbus/dbus-auth.c:
8491         (handle_server_data_external_mech): Set pid from the credentials
8492         obtained from the socket
8493         
8494         * dbus/dbus-connection.c:
8495         (dbus_connection_get_unix_process_id): New function
8496         
8497         * dbus/dbus-connection.h: 
8498         Add prototype for dbus_connection_get_unix_process_id
8499         
8500         * dbus/dbus-transport.c:
8501         (_dbus_transport_get_unix_process_id): New function
8502         
8503         * dbus/dbus-transport.h:
8504         Add prototype for _dbus_transport_get_unix_process_id
8505         
8506 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8507
8508         * dbus/dbus-message.c: Message counter fix, patch by Christian
8509         Hammond <chipx86@gnupdate.org>
8510
8511 2004-07-18  Seth Nickell  <seth@gnome.org>
8512
8513         * python/dbus.py:
8514         * python/dbus_bindings.pyx.in:
8515         * python/tests/test-client.py:
8516
8517         Add dbus.ByteArray and dbus_bindings.ByteArray
8518         types so that byte streams can be passed back.
8519
8520         Give jdahlin the heaps of credit that are so
8521         rightfully his.
8522         
8523 2004-07-12  Seth Nickell  <seth@gnome.org>
8524
8525         * python/dbus.py:
8526
8527         Add message argument to the default object_method_handler
8528         function.
8529         
8530         * python/dbus_bindings.pyx.in:
8531
8532         Automatically return NIL when passed an empty list
8533         (we can't pass back a list since lists are typed
8534         and we don't have any idea what type the the client
8535         intended the list to be... :-( )
8536         
8537 2004-07-10  Seth Nickell  <seth@gnome.org>
8538
8539         * python/examples/Makefile.am:
8540
8541         Fix distcheck breakage caused by new examples.
8542
8543 2004-07-10  Seth Nickell  <seth@gnome.org>
8544
8545         * python/dbus.py:
8546
8547         Add "message" argument to service-side dbus.Object
8548         methods. This will break existing services written
8549         using the python bindings, but will allow extraction
8550         of all the message information (e.g. who its from).
8551
8552         Add improved "object oriented" signal handling/emission.
8553         
8554         * python/examples/example-service.py:
8555
8556         Nix this example.
8557         
8558         * python/examples/example-signal-emitter.py:
8559         * python/examples/example-signal-recipient.py:
8560
8561         Two new examples that show how to emit and receive
8562         signals using the new APIs.
8563         
8564         * python/examples/example-signals.py:
8565         * python/examples/gconf-proxy-service.py:
8566         * python/examples/gconf-proxy-service2.py:
8567
8568         Add "message" argument to service methods.
8569
8570 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8571
8572         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8573         * dbus/bus.c (dbus_bus_get_unix_user)
8574         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8575         method of org.freedesktop.DBus interface.
8576
8577         * bus/dispatch.c: test case
8578
8579 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8580
8581         * python/Makefile.am: switched include directory from glib/ to dbus/
8582         since dbus-glib.h moved
8583  
8584 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8585
8586         * configure.in: prevent building the gcj stuff and libxml loader
8587         since they are broken.
8588
8589 2004-06-20  Havoc Pennington  <hp@redhat.com>
8590
8591         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8592         codes from the dbus error names
8593         
8594         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8595         as dbus/dbus-glib.h and that breakage is now visible due to 
8596         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8597         
8598         * glib/dbus-glib.h: s/gproxy/g_proxy/
8599
8600         * dbus/dbus-shared.h: new header to hold stuff shared with
8601         binding APIs
8602         
8603         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8604         than dbus-errors.h
8605
8606         * glib/dbus-glib.h (dbus_set_g_error): move to
8607         dbus-glib-lowlevel.h
8608
8609         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8610         of stuff to enable this
8611
8612         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8613
8614         * a bunch of other changes with the same basic "separate glib 
8615         bindings from dbus.h" theme
8616         
8617 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8618
8619         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8620
8621         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8622
8623 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8624
8625         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8626         the reply value of the ServiceExists message.
8627
8628 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8629
8630         * python/dbus_bindings.pyx.in: No longer need to parse path
8631         elements and pass them as arrays of strings.  The C API now
8632         accepts plain path strings.
8633         (_build_parsed_path): removed 
8634
8635 2004-06-07  Havoc Pennington  <hp@redhat.com>
8636
8637         * doc/TODO: remove auto-activation item since it's done; sort
8638         items by importance/milestone
8639
8640 2004-06-07  Havoc Pennington  <hp@redhat.com>
8641
8642         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8643         random signature when using REQUIRED_FIELDS (this hack won't work
8644         in the long term)
8645
8646         * dbus/dbus-message.c: change the signature to be a header field,
8647         instead of message->signature special-case string. Incremental
8648         step forward. Then we can fix up code to send the signature in the
8649         message, then fix up code to validate said signature, then fix up
8650         code to not put the typecodes inline, etc.
8651         (load_one_message): don't make up the signature after the fact
8652         (decode_header_data): require signature field for the known
8653         message types
8654
8655         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8656
8657         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8658
8659 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8660
8661         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8662
8663         * mono/Handler.cs: Updated to follow new path argument for
8664         (un-)registering objects.
8665
8666         * mono/example/Makefile.am:
8667         * mono/Makefile.am:
8668         * configure.in: Bumped required version for mono and use new -pkg
8669         syntax for deps
8670
8671 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8672
8673         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8674         registration functions take the path argument as char* instead of
8675         char**.
8676
8677         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8678         split off the path decompostion part of
8679         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8680         warnings. 
8681
8682         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8683         
8684 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8685  
8686         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8687         machine approach.  A state is implemented as a function that
8688         handles incoming events as specified for that state.
8689         
8690         * doc/dbus-specification.xml: Update auth protocol state machine
8691         specification to match implementation.  Remove some leftover
8692         base64 examples.
8693
8694 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8695
8696         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8697         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8698         quiet doxygen.
8699
8700         * Doxyfile.in: remove deprecated options.
8701
8702         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8703         glib/test-thread.h, glib/test-thread-client.c,
8704         glib/test-thread-server.c, glib/test-profile.c,
8705         glib/test-dbus-glib.c: remove these unused files.
8706
8707 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8708
8709         * dbus/dbus-object-tree.c
8710         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8711         non-fallback handlers (bug #684).
8712         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8713         (find_subtree_recurse): report wether the returned subtree is an
8714         exact match or a "fallback" match higher up in the tree.
8715         (object_tree_test_iteration): update test case.
8716
8717 2004-06-01  Seth Nickell  <seth@gnome.org>
8718
8719         * python/dbus_bindings.pyx.in:
8720         * python/tests/test-client.py:
8721
8722         Round off basic type support. Add dicts (yay!), and 
8723         remaining array types.
8724
8725         Make MessageIter more general so it works for dicts too.
8726
8727         Mark all loop variables as C integers.
8728         
8729 2004-05-31  Havoc Pennington  <hp@redhat.com>
8730
8731         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8732         "in" before "out"
8733
8734         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8735
8736         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8737         option that runs the tests, and start filling in some code
8738         including for starters just dumping the interfaces to stdout
8739
8740         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8741
8742         * test/data/valid-introspection-files/lots-of-types.xml: test of
8743         an example introspection file
8744
8745         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8746         "node" (I think...)
8747
8748 2004-05-31  Seth Nickell  <seth@gnome.org>
8749
8750         * python/dbus_bindings.pyx.in:
8751         * python/tests/test-client.py:
8752
8753         Test Suite: 1
8754         Python Bindings: 0
8755
8756         Fix string array memory trashing bug... oops...
8757
8758 2004-05-30  Seth Nickell  <seth@gnome.org>
8759
8760         * python/dbus.py:
8761
8762         Add a nicer-but-less-flexible alternate API for handling 
8763         calls to virtual objects in dbus.ObjectTree.
8764
8765         Screw up the argument order to the dbus.Object constructor
8766         for consistency with dbus.ObjectTree (and to make dbus_methods
8767         optional for future extension)
8768         
8769         * python/examples/Makefile.am:
8770         * python/examples/gconf-proxy-service.py:
8771         * python/examples/gconf-proxy-service2.py:
8772
8773         Alternate implementation of gconf-proxy-service using the
8774         nicer dbus.ObjectTree API.
8775         
8776         * python/examples/example-service.py:
8777         * python/tests/test-server.py
8778
8779         Reverse the argument order to deal with dbus.Object constructor
8780         changes.
8781         
8782 2004-05-30  Seth Nickell  <seth@gnome.org>
8783
8784         * python/examples/example-client.py:
8785         * python/examples/example-service.py:
8786
8787         Take it back. Lists seem to work but they're broken
8788         in the test suite. Make the base examples use
8789         lists (works fine).
8790
8791 2004-05-30  Seth Nickell  <seth@gnome.org>
8792
8793         * python/dbus_bindings.pyx.in:
8794         * python/tests/test-client.py:
8795
8796         Add some more tests and fix errors that crop up.
8797         Unfortunately, currently it seems like marshalling
8798         and unmarshalling of lists is completely broken :-(
8799
8800 2004-05-30  Seth Nickell  <seth@gnome.org>
8801
8802         * python/dbus_bindings.pyx.in:
8803
8804         Add support for ObjectPath type.
8805
8806         * python/dbus.py:
8807
8808         Refactor message handling code to a common function.
8809         
8810         * python/tests/test-client.py:
8811         * python/tests/test-server.py:
8812
8813         Add tests that check to make sure values of all types
8814         can be echoed from a service w/o mangling.
8815         
8816 2004-05-29  Seth Nickell  <seth@gnome.org>
8817
8818         * python/dbus.py:
8819
8820         Add ObjectTree class which allows implementation
8821         of trees of "virtual" objects. Basically the python
8822         wrapper for "register_fallback".
8823         
8824         * python/examples/Makefile.am
8825         * python/examples/gconf-proxy-client.py:
8826         * python/examples/gconf-proxy-service.py:
8827
8828         Implement a simple GConf proxy service that supports
8829         get/set on string and int GConf keys using the ObjectTree.
8830         
8831 2004-05-29  Seth Nickell  <seth@gnome.org>
8832
8833         * python/dbus.py:
8834         * python/examples/example-client.py:
8835         * python/examples/example-service.py:
8836         * python/examples/list-system-services.py:
8837
8838         Add SessionBus, SystemBus and ActivationBus classes
8839         so you don't need to know the special little BUS_TYPE
8840         flag.
8841         
8842 2004-05-29  Havoc Pennington  <hp@redhat.com>
8843
8844         * bus/config-parser.c (process_test_valid_subdir): temporarily
8845         stop testing config parser OOM handling, since expat has issues
8846         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8847
8848         * bus/dbus-daemon-1.1.in: change requested_reply to
8849         send_requested_reply/receive_requested_reply so we can send the
8850         replies, not just receive them.
8851
8852         * bus/config-parser.c: parse the new
8853         send_requested_reply/receive_requested_reply
8854
8855         * bus/policy.c (bus_client_policy_check_can_send): add
8856         requested_reply argument and use it
8857
8858         * bus/bus.c (bus_context_check_security_policy): pass through
8859         requested_reply status to message send check
8860
8861         * bus/system.conf.in: adapt to requested_reply change
8862         
8863 2004-05-28  Havoc Pennington  <hp@redhat.com>
8864
8865         * test/glib/test-service-glib.c (main): remove unused variable
8866
8867         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8868
8869         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8870         from the enum, no longer in use.
8871
8872         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8873         works right.
8874
8875         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8876         whether error_name passed in is a valid error name.
8877
8878 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8879
8880         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8881         OBJECT_PATH and OBJECT_PATH_ARRAY
8882
8883 2004-05-28  Seth Nickell  <seth@gnome.org>
8884
8885         * python/examples/Makefile.am:
8886
8887         Forget to add Makefile.am. Do not pass go.
8888
8889 2004-05-28  Michael Meeks  <michael@ximian.com>
8890
8891         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8892         fix no int64 case.
8893
8894         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8895
8896         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8897         (_dbus_message_iter_get_basic_type_array): impl.
8898         drastically simplify ~all relevant _get methods to use these.
8899         (_dbus_message_iter_append_basic_array),
8900         (dbus_message_iter_append_basic): impl
8901         drastically simplify ~all relevant _append methods to use these.
8902
8903         * dbus/dbus-message-builder.c (parse_basic_type) 
8904         (parse_basic_array, lookup_basic_type): impl.
8905         (_dbus_message_data_load): prune scads of duplicate /
8906         cut & paste coding.
8907
8908         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8909         (_dbus_demarshal_basic_type): implement,
8910         (demarshal_and_validate_len/arg): beef up debug.
8911         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8912
8913 2004-05-27  Seth Nickell  <seth@gnome.org>
8914
8915         * configure.in:
8916         * python/Makefile.am:
8917
8918         Include the example python apps in the tarball.
8919         
8920         * python/examples/list-system-services.py
8921
8922         Add a python new example that fetches the list of services
8923         from the system bus.
8924         
8925 2004-05-27  Seth Nickell  <seth@gnome.org>
8926
8927         * python/dbus.py:
8928         * python/dbus_bindings.pyx.in:
8929
8930         Fix failure to notify that a signal was not handled,
8931         resulted in hung functions.
8932         
8933 2004-05-25  Colin Walters  <walters@redhat.com>
8934
8935         * tools/dbus-monitor.c (main): Monitor all types of messages.
8936
8937 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8938
8939         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8940         which unregisters the object path and disposes the handler.
8941
8942 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8943  
8944         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8945          
8946         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8947         operands to && so we call dbus_message_iter_next () for the last
8948         argument also.
8949
8950 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8951
8952         * dbus/dbus-object-tree.c
8953         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8954         children even if the requested path isn't registered.
8955         (object_tree_test_iteration): test object_tree_list_registered.
8956
8957         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8958         it to 0.
8959         
8960 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8961
8962         * doc/TODO: Remove resolved items.
8963
8964         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8965         field.
8966         
8967         * bus/connection.c (bus_connections_expect_reply): Enforce the
8968         per-connection limit on pending replies.
8969         
8970         Patch from Jon Trowbridge <trow@ximian.com>:
8971  
8972         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8973         up a watch that triggers a config reload when one end of the pipe
8974         becomes readable.
8975         (signal_handler): Instead of doing the config reload in our SIGHUP
8976         handler, just write to the reload pipe and let the associated
8977         watch handle the reload when control returns to the main loop.
8978  
8979         * bus/driver.c (bus_driver_handle_reload_config): Added.
8980         Implements a ReloadConfig method for requesting a configuration
8981         file reload via the bus driver.
8982  
8983 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8984
8985         * HACKING: Updated release instructions concerning the wiki page.
8986
8987 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8988
8989         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8990         filter against auth->allowed_mechs; we only add allowed mechs in
8991         record_mechanisms().
8992  
8993         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8994         ALLOWED_MECHS to auth-script format so we can set the list of
8995         allowed mechanisms.
8996  
8997         * data/auth/client-out-of-mechanisms.auth-script: New test to
8998         check client disconnects when it is out of mechanisms to try.
8999  
9000         * dbus/dbus-auth.c (process_command): Remove check for lines
9001         longer that 1 MB; we only buffer up maximum 16 kB.
9002  
9003         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
9004         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
9005         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
9006         assume there might be unused bytes.
9007  
9008         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
9009         client-out-of-mechs, it is handled in process_reject(). Move check
9010         for max failures to send_rejected(), as it's a server-only thing.
9011
9012         * dbus/dbus-auth.c: Factor out protocol reply code into functions
9013         send_auth(), send_data(), send_rejected(), send_error(),
9014         send_ok(), send_begin() and send_cancel().
9015
9016 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
9017
9018         Remove base64 encoding, replace with hex encoding. Original patch
9019         from trow@ximian.com, added error handling.
9020
9021         * dbus/dbus-string.c (_dbus_string_base64_encode)
9022         (_dbus_string_base64_decode): Remove.
9023         (_dbus_string_hex_decode): Add end_return argument so we can
9024         distinguish between OOM and invalid hex encoding.
9025         (_dbus_string_test): Remove base64 tests and add test case for
9026         invalid hex.
9027
9028         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
9029         Replace base64 with hex.
9030
9031         * test/data/auth/invalid-hex-encoding.auth-script: New test case
9032         for invalid hex encoded data in auth protocol.
9033
9034 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9035
9036         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
9037         leak.
9038
9039 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
9040
9041         * mono/dbus-sharp.dll.config.in: Added for GAC
9042         * mono/dbus-sharp.snk: Added for GAC
9043         * mono/Assembly.cs.in: Added for GAC
9044         * mono/Makefile.am: Changes for GAC installation        
9045         * configure.in: Added refs for dbus-sharp.dll.config.in and
9046         Assembly.cs.in. More fixes for mono testing
9047         * mono/example/Makefile.am: Changed var to CSC
9048         * Makefile.am: Changed flag name to DBUS_USE_CSC
9049
9050 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
9051
9052         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
9053         * mono/doc/*: Added documentation framework
9054         * configure.in: Added monodoc check
9055         * README: Added description of mono configure flags
9056
9057 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
9058
9059         * doc/dbus-specification.xml: Added a "Required" column to the 
9060         header fields table and changed the "zero or more" verbage in
9061         the above paragraph to read "The header must contain the required 
9062         named header fields and zero or more of the optional named header 
9063         fields".
9064         * test/data/invalid-messages/*.message: Added the required PATH 
9065         named header field to the tests so that they don't fail on 
9066         'Missing path field'
9067
9068 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
9069
9070         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
9071         the stack by implicitly defining variable and parameter types and
9072         removing the hack of defining C pointers as python objects and later
9073         casting them.
9074
9075 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
9076
9077         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
9078
9079 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
9080
9081         * mono/DBusType/Dict.cs: Handle empty dicts
9082         * mono/DBusType/Array.cs: Handle empty arrays
9083         * mono/Arguments.cs: Handle empty arguments
9084
9085 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
9086
9087         * dbus-sharp.pc.in: Modified to include include Libs and Requires
9088         field
9089
9090 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
9091
9092         * test/data/valid-messages/standard-*.message: Update message
9093         test scripts to new header field names.
9094
9095 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
9096
9097         * test/break-loader.c (randomly_do_n_things): tracked down buffer
9098         overflow to times_we_did_each_thing array which would chop off the
9099         first character of the failure_dir string. Increased the size of
9100         the array to 7 to reflect the number of random mutation functions
9101         we have.
9102
9103 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
9104
9105         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
9106         unix_server->watch here, it is unreffed in disconnect.
9107         (_dbus_server_new_for_tcp_socket): convert NULL host to
9108         "localhost" here so we don't append NULL to address.
9109         
9110         * dbus/dbus-server.c (_dbus_server_test): Add test case for
9111         various addresses, including tcp with no explicit host.
9112
9113 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9114
9115         * dbus/dbus-message.c (decode_header_data, decode_string_field):
9116         fix incorrect setting of .name_offset in the HeaderField (it was
9117         off by two bytes, positioned right after the name and typecode)
9118
9119         * bus/bus.c (bus_context_new, bus_context_unref): test before
9120         calling dbus_server_free_data_slot and _dbus_user_database_unref
9121         in case of an error.
9122
9123         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
9124         by libdbus-gtool.
9125
9126 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
9127
9128         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
9129         _dbus_poll() instead of select().
9130
9131 2004-04-15  Jon Trowbridge  <trow@ximian.com>
9132
9133         * bus/main.c (signal_handler): Reload the configuration files
9134         on SIGHUP.
9135         (main): Set up our SIGHUP handler.
9136
9137         * bus/bus.c (struct BusContext): Store the config file, user and
9138         fork flag in the BusContext.
9139         (process_config_first_time_only): Added.  Contains the code
9140         (previously in bus_context_new) for setting up the BusContext from
9141         the BusConfigParser that should only be run the first time the
9142         config files are read.
9143         (process_config_every_time): Added.  Contains the code (previously
9144         in bus_context_new) for setting up the BusContext from the
9145         BusConfigParser that should be run every time the config files are
9146         read.
9147         (load_config): Added.  Builds a BusConfigParser from the config
9148         files and passes the resulting structure off to
9149         process_config_first_time_only (assuming this is the first time)
9150         and process_config_every_time.
9151         (bus_context_new): All of the config-related code has been moved
9152         to process_config_first_time_only and process_config_every_time.
9153         Now this function just does the non-config-related initializations
9154         and calls load_config.
9155         (bus_context_reload_config): Added.
9156
9157 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9158
9159         * bus/driver.c (bus_driver_handle_get_service_owner):
9160         implement a GetServiceOwner method.
9161         * doc/dbus-specification.xml: document it.
9162         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
9163         
9164         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
9165         implement, using the bus GetServiceOwner method.
9166
9167         * test/glib/test-dbus-glib.c:
9168         use dbus_gproxy_new_for_service_owner so that we can receive the
9169         signal. 
9170
9171 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
9172
9173         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9174         dbus/dbus-message.c, dbus/dbus-protocol.h
9175         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
9176
9177         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9178         dbus/dbus-message.c, dbus/dbus-protocol.h
9179         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
9180
9181         * dbus/dbus-internals.c (_dbus_header_field_to_string):
9182         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
9183         DBUS_HEADER_FIELD_SENDER resolves to "sender"
9184
9185         * doc/dbus-specification.xml (Header Fields Table):
9186         s/SERVICE/DESTINATION
9187         s/SENDER_SERVICE/SENDER
9188
9189
9190 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9191
9192         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
9193         a few seconds.
9194
9195 2004-04-13  Michael Meeks  <michael@ximian.com>
9196
9197         * glib/dbus-gobject.c (handle_introspect): split out
9198         (introspect_properties): this.
9199         (handle_introspect): implement this.
9200
9201         * test/glib/Makefile.am: use the absolute path so the bus
9202         daemon's chdir ("/") doesn't kill us dead.
9203
9204         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
9205
9206 2004-04-12  Jon Trowbridge  <trow@ximian.com>
9207
9208         * bus/config-parser.c (struct BusConfigParser): Added
9209         included_files field.
9210         (seen_include): Added.  Checks whether or not a file has already
9211         been included by any parent BusConfigParser.
9212         (bus_config_parser_new): Copy the parent's included_files.
9213         (include_file): Track which files have been included, and fail on
9214         circular inclusions.
9215         (process_test_valid_subdir): Changed printf to report if we are
9216         testing valid or invalid conf files.
9217         (all_are_equiv): Changed printf to be a bit clearer about
9218         what we are actually doing.
9219         (bus_config_parser_test): Test invalid configuration files.
9220
9221 2004-04-09  Jon Trowbridge  <trow@ximian.com>
9222
9223         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
9224         argument.  If non-null, the newly-constructed BusConfigParser will
9225         be initialized with the parent's BusLimits instead of the default
9226         values.
9227         (include_file): When including a config file, pass in
9228         the current parser as the parent and then copy the BusLimits
9229         from the included BusConfigParser pack to the current parser.
9230         (process_test_valid_subdir): Renamed from process_test_subdir.
9231         (process_test_equiv_subdir): Added.  Walks through a directory,
9232         descending into each subdirectory and loading the config files
9233         it finds there.  If any subdirectory contains two config files
9234         that don't produce identical BusConfigParser structs, fail.
9235         For now, the BusConfigParser's BusPolicies are not compared.
9236         (bus_config_parser_test): Call both process_test_valid_subdir and
9237         process_test_equiv_subdir.
9238
9239         * bus/config-loader-libxml.c (bus_config_load): Take a parent
9240         argument and pass it along to the call to bus_config_parser_new.
9241         Also made a few small changes to allow this code to compile.
9242
9243         * bus/config-loader-expat.c (bus_config_load): Take a parent
9244         argument and pass it along to the call to bus_config_parser_new.
9245
9246         * bus/bus.c (bus_context_new): Load the config file
9247         with a NULL parent argument.
9248
9249 2004-03-29  Michael Meeks  <michael@ximian.com>
9250
9251         * glib/dbus-gobject.c (introspect_properties): split
9252         out, fix mangled 'while' flow control.
9253         (introspect_signals): implement.
9254         (handle_introspect): update.
9255
9256 2004-03-29  Michael Meeks  <michael@ximian.com>
9257
9258         * glib/dbus-gobject.c (set_object_property): split out / 
9259         re-work, use the property type, and not the message type(!)
9260         (get_object_property): ditto.
9261
9262         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
9263         (dbus_gvalue_marshal): make this code re-usable, needed
9264         for signals too, also on both proxy and server side.
9265         Re-write for more efficiency / readability.
9266
9267 2004-03-29  Michael Meeks  <michael@ximian.com>
9268
9269         * dbus/dbus-message.c
9270         (dbus_message_new_error_printf): impl.
9271
9272         * dbus/dbus-connection.c
9273         (dbus_connection_unregister_object_path): fix warning.
9274
9275         * configure.in: fix no-mono-installed situation.
9276
9277 2004-03-27  Havoc Pennington  <hp@redhat.com>
9278
9279         Patch from Timo Teräs:
9280         
9281         * tools/dbus-send.c (main): if --print-reply, assume type is
9282         method call; support boolean type args
9283         
9284         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
9285         bunch of memleak and logic bugs
9286         
9287 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9288
9289         * mono/Arguments.cs:
9290         * mono/Introspector.cs:
9291         * mono/Handler.cs:
9292         * mono/InterfaceProxy.cs:
9293         * mono/Message.cs
9294         * mono/ProxyBuilder.cs:
9295         * mono/Service.cs:
9296         Added InterfaceProxy class to avoid building proxies for every
9297         object.
9298
9299         * dbus-message.h:
9300         * dbus-message.c (dbus_message_append_args_valist)
9301         (dbus_message_iter_get_object_path)
9302         (dbus_message_iter_get_object_path_array)
9303         (dbus_message_iter_append_object_path)
9304         (dbus_message_iter_append_object_path_array):
9305         Added object_path iter functions to handle OBJECT_PATH arguments
9306         
9307 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9308
9309         First checkin of mono bindings.
9310         * configure.in:
9311         * Makefile.am:
9312         Build stuff for the bindings
9313         * dbus-sharp.pc.in: Added for pkgconfig
9314         
9315 2004-03-21  Havoc Pennington  <hp@redhat.com>
9316
9317         * test/test-service.c (main): remove debug spew
9318
9319 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9320
9321         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
9322         arrays
9323
9324         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
9325         (dbus_message_iter_init_array_iterator)
9326         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
9327         indicate whether the iterator is empty
9328
9329         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
9330         warnings
9331
9332 2004-03-19  Havoc Pennington  <hp@redhat.com>
9333
9334         * NEWS: 0.21 updates
9335
9336         * configure.in: 0.21
9337
9338         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
9339         
9340         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
9341         you don't need pyrex to make dist
9342
9343         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
9344         sources; run moc
9345         
9346 2004-03-18  Richard Hult  <richard@imendio.com>
9347
9348         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9349         (dbus_message_set_auto_activation): Add doxygen docs.
9350
9351 2004-03-16  Richard Hult  <richard@imendio.com>
9352
9353         * bus/activation.c: (bus_activation_service_created),
9354         (bus_activation_send_pending_auto_activation_messages),
9355         (bus_activation_activate_service):
9356         * bus/activation.h:
9357         * bus/dispatch.c: (bus_dispatch),
9358         (check_nonexistent_service_auto_activation),
9359         (check_service_auto_activated),
9360         (check_segfault_service_auto_activation),
9361         (check_existent_service_auto_activation), (bus_dispatch_test):
9362         * bus/driver.c: (bus_driver_handle_activate_service):
9363         * bus/services.c: (bus_registry_acquire_service):
9364         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9365         (dbus_message_get_auto_activation):
9366         * dbus/dbus-message.h:
9367         * dbus/dbus-protocol.h: Implement auto-activation.
9368         
9369         * doc/dbus-specification.xml: Add auto-activation to the spec.
9370
9371 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9372
9373         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9374         fix a bug with CUSTOM types.
9375
9376         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9377         a unit test for this bug (used to fail).
9378
9379 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9380
9381         * bus/activation.c:
9382         (babysitter_watch_callback): notify all pending activations waiting for
9383           the same exec that the activation failed.
9384         (bus_activation_activate_service): shortcut the activation if we 
9385           already waiting for the same executable to start up.
9386
9387 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9388
9389         * bus/activation.c: 
9390         - Added service file reloading. 
9391           Each service files directory is kept in an hash table in 
9392           BusActivation and each BusActivationEntry knows what .service-file it
9393           was read from. So when you try to activate a service the bus will 
9394           check if it's been updated, removed or if new .service-files has 
9395           been installed.
9396         - Test code at the bottom for the service file reloading.
9397         * bus/test-main.c: (main):
9398         * bus/test.h:
9399         - added service reloading test.
9400         * dbus/dbus-sysdeps.c: 
9401         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9402
9403 2004-03-08  Michael Meeks  <michael@ximian.com>
9404
9405         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9406         bail immediately if disconnected, to avoid busy loop.
9407
9408         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9409         cleanup cut/paste/inefficiency.
9410
9411 2004-03-01  David Zeuthen  <david@fubar.dk>
9412
9413         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9414         bug where args were used twice. This bug resulted in a segfault
9415         on a Debian/PPC system when starting the messagebus daemon. Include
9416         dbus-sysdeps.h for DBUS_VA_COPY
9417
9418         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9419
9420         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9421         appropriate va_copy implementation. From GLib
9422         
9423 2004-02-24  Joe Shaw  <joe@ximian.com>
9424
9425         * bus/services.c (bus_registry_acquire_service): We need to pass
9426         in the service name to dbus_set_error() to prevent a crash.
9427
9428 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9429
9430         * AUTHORS: Reveal my True identity.
9431
9432 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9433
9434         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9435         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9436
9437 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9438
9439         * doc/TODO: Added not about better error check of configuration files.
9440
9441 2003-12-02  Richard Hult  <richard@imendio.com>
9442
9443         * Update AFL version to 2.0 throughout the source files to reflect
9444         the update that was done a while ago.
9445
9446 2003-12-02  Richard Hult  <richard@imendio.com>
9447
9448         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9449         wrote_dict_key to FALSE on the iter that the dict is appended to,
9450         just like when appending other types. Fixes a bug where a dict
9451         couldn't be put inside a dict.
9452         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9453         (message_iter_test, _dbus_message_test): Add test case for dict
9454         inside dict.
9455
9456 2003-12-01  David Zeuthen  <david@fubar.dk>
9457
9458         * python/dbus.py: Add the actual message when calling the reciever
9459         of a signal such that parameters can be inspected. Add the method
9460         remove_signal_receiver
9461         
9462 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9463
9464         * bus/*.[ch]:
9465         * dbus/*.[ch]:
9466         * glib/*.[ch]: Made ref functions return the pointer
9467
9468 2003-11-25  Zack Rusin  <zack@kde.org>
9469
9470         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9471
9472         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9473         wrappers,
9474
9475         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9476         the Integrator and to better fit with the server,
9477
9478 2003-11-24  Zack Rusin  <zack@kde.org>
9479
9480         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9481         the integrator handles it now
9482
9483         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9484         since QTimer wasn't really meant to be used the way DBusTimeout is
9485
9486 2003-11-24  Zack Rusin  <zack@kde.org>
9487
9488         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9489         Integrator class which integrates D-BUS with the Qt event loop,
9490
9491         * qt/connection.h, qt/connection.cpp: Move all the code which
9492         was dealing with D-BUS integration to the Integrator class,
9493         and start using Integrator,
9494
9495 2003-11-23  Zack Rusin  <zack@kde.org>
9496
9497         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9498         wrapper
9499
9500         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9501         switching namespaces to DBusQt, reworking the class,
9502
9503         * Makefile.cvs: switching dependencies so that it matches KDE 
9504         schematics,
9505         
9506         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9507         the library
9508
9509 2003-11-19  Havoc Pennington  <hp@redhat.com>
9510
9511         * NEWS: update
9512
9513         * configure.in: bump version to 0.20
9514
9515         * configure.in (have_qt): add yet another place to look for qt
9516         (someone hand trolltech a .pc file...)
9517
9518 2003-11-01  Havoc Pennington  <hp@redhat.com>
9519
9520         * doc/dbus-specification.xml: add state machine docs on the auth
9521         protocol; just a first draft, I'm sure it's wrong.      
9522
9523 2003-10-28  David Zeuthen  <david@fubar.dk>
9524
9525         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9526         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9527         
9528 2003-10-28  Havoc Pennington  <hp@redhat.com>
9529
9530         * dbus/dbus-message.c (get_next_field): delete unused function
9531
9532 2003-10-28  Havoc Pennington  <hp@redhat.com>
9533
9534         * bus/expirelist.c (do_expiration_with_current_time): detect
9535         failure of the expire_func due to OOM
9536
9537         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9538
9539         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9540         NoReply error that's now created by the bus when the service exits
9541
9542 2003-10-28  Havoc Pennington  <hp@redhat.com>
9543
9544         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9545         tests for set_path, set_interface, set_member, etc.
9546
9547         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9548
9549         * dbus/dbus-message.c (set_string_field): always just delete and
9550         re-append the field; accept NULL for deletion
9551         (re_align_fields_recurse): reimplement
9552         
9553 2003-10-26  Havoc Pennington  <hp@redhat.com>
9554
9555         * dbus/dbus-connection.c: fix docs to properly describe the
9556         disconnected message
9557         (_dbus_connection_notify_disconnected): remove this function; 
9558         we can't synchronously add the disconnected message, we have to 
9559         do it after we've queued any remaining real messages
9560         (_dbus_connection_get_dispatch_status_unlocked): queue the
9561         disconnect message only if the transport has finished queueing all
9562         its real messages and is disconnected.
9563         (dbus_connection_disconnect): update the dispatch status here
9564
9565 2003-10-22  Havoc Pennington  <hp@redhat.com>
9566
9567         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9568
9569         * bus/connection.c (bus_transaction_send_from_driver): set the
9570         destination to the connection's base service
9571
9572 2003-10-20  Havoc Pennington  <hp@redhat.com>
9573
9574         hmm, make check is currently not passing.
9575         
9576         * doc/dbus-specification.xml: add requirement that custom type
9577         names follow the same rules as interface names.
9578
9579         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9580         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9581         'map'
9582
9583         * doc/dbus-specification.xml: update type codes to match
9584         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9585         CUSTOM. Add type OBJECT_PATH to the spec.
9586
9587 2003-10-17  Havoc Pennington  <hp@redhat.com>
9588
9589         * bus/driver.c (create_unique_client_name): use "." as separator
9590         in base service names instead of '-'
9591
9592         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9593         byte at the end of the string
9594
9595         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9596         optimization macros since string validation seems to be a slow
9597         point.
9598         
9599         * doc/dbus-specification.xml: restrict valid
9600         service/interface/member/error names. Add test suite code for the
9601         name validation.
9602
9603         * dbus/dbus-string.c: limit service/interface/member/error names 
9604         to [0-9][A-Z][a-z]_
9605
9606         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9607         format arg to verbose spew
9608
9609         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9610         memory, return instead of g_error
9611
9612         * test/test-service.c (path_message_func): support emitting a
9613         signal on request
9614
9615         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9616         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9617         assuming the activation bus was the session bus so that services
9618         started manually will still register.
9619         (init_connections_unlocked): fix so that in OOM situation we get
9620         the same semantics when retrying the function
9621         
9622         * test/test-service.c (main): change to use path registration, to
9623         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9624         than DBUS_BUS_SESSION
9625
9626 2003-10-16  Havoc Pennington  <hp@redhat.com>
9627
9628         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9629
9630         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9631         coverage of the tests
9632         (coverage-report.txt): don't move the .da and .bbg files around
9633
9634 2003-10-16  Havoc Pennington  <hp@redhat.com>
9635
9636         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9637         to put there
9638
9639 2003-10-16  Havoc Pennington  <hp@redhat.com>
9640
9641         * bus/connection.c (bus_pending_reply_expired): either cancel or
9642         execute, not both
9643         (bus_connections_check_reply): use unlink, not remove_link, as we
9644         don't want to free the link; fixes double free mess
9645
9646         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9647         where no reply was received
9648
9649         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9650         fix a refcount leak
9651
9652         * bus/signals.c (match_rule_matches): add special cases for the
9653         bus driver, so you can match on sender/destination for it.
9654
9655         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9656         DBUS_PRINT_BACKTRACE is set
9657
9658         * dbus/dbus-internals.c: add pid to assertion failure messages
9659
9660         * dbus/dbus-connection.c: add message type code to the debug spew
9661
9662         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9663         sender=foo not service=foo
9664
9665         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9666         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9667         DBUS_ACTIVATION_ADDRESS instead
9668
9669         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9670         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9671
9672         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9673         context struct
9674
9675         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9676         (dbus_message_iter_get_object_path_array): new function (half
9677         finished, disabled for the moment)
9678         
9679         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9680         DBUS_MESSAGE_TYPE_ERROR
9681
9682         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9683         avoid redirecting stderr to /dev/null
9684         (babysit): close stdin if not doing the "exit_with_session" thing
9685
9686         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9687         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9688         stdout/stdin, so things don't get confused
9689         
9690         * bus/system.conf.in: fix to allow replies, I modified .conf
9691         instead of .conf.in again.
9692
9693 2003-10-14  David Zeuthen  <david@fubar.dk>
9694
9695         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9696         argtype to arg_type when raising unknown arg type exception.
9697         Changed type list to reflect the changes in dbus-protocol.h so 
9698         the bindings actually work.
9699
9700 2003-10-14  Havoc Pennington  <hp@redhat.com>
9701
9702         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9703         to have a bug keeping it from outputting the .da files sometimes
9704         (string_get_string): don't append garbage nul bytes to the string.
9705
9706 2003-10-15  Seth Nickell  <seth@gnome.org>
9707
9708         * python/Makefile.am:
9709
9710         Include dbus_h_wrapper.h in the dist tarball.
9711
9712 2003-10-14  Havoc Pennington  <hp@redhat.com>
9713
9714         * bus/bus.c (bus_context_check_security_policy): revamp this to
9715         work more sanely with new policy-based requested reply setup
9716
9717         * bus/connection.c (bus_transaction_send_from_driver): set bus
9718         driver messages as no reply
9719
9720         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9721         requested_reply attribute on allow/deny rules
9722
9723         * bus/system.conf: add <allow requested_reply="true"/>
9724
9725         * bus/driver.c (bus_driver_handle_message): fix check for replies
9726         sent to the bus driver, which was backward. How did this ever work
9727         at all though? I think I'm missing something.
9728
9729         * dbus/dbus-message.c (decode_header_data): require error and
9730         method return messages to have a reply serial field to be valid
9731         (_dbus_message_loader_queue_messages): break up this function;
9732         validate that reply serial and plain serial are nonzero; 
9733         clean up the OOM/error handling.
9734         (get_uint_field): don't return -1 from this
9735         (dbus_message_create_header): fix signed/unsigned bug
9736
9737         * bus/connection.c (bus_connections_expect_reply): save serial of
9738         the incoming message, not reply serial
9739
9740 2003-10-14  Havoc Pennington  <hp@redhat.com>
9741
9742         * bus/connection.c: implement pending reply tracking using
9743         BusExpireList
9744
9745         * bus/bus.c (bus_context_check_security_policy): verify that a
9746         reply is pending in order to allow a reply to be sent. Deny 
9747         messages of unknown type.
9748
9749         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9750
9751         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9752         (bus_context_get_reply_timeout): new
9753
9754 2003-10-13  Seth Nickell  <seth@gnome.org>
9755
9756         * python/Makefile.am:
9757
9758         Pass "make distcheck": remove a couple files from DIST_FILES
9759         that weren't included in the final version.
9760
9761 2003-10-12  Havoc Pennington  <hp@pobox.com>
9762
9763         Added test code that 1) starts an actual bus daemon and 2) uses
9764         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9765         more testing possible, but this is the basic framework.
9766         
9767         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9768         empty proxy lists from the proxy list hash
9769
9770         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9771         couple of return_if_fail checks
9772
9773         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9774         to allocate, so everything is cleared to NULL as it should be.
9775
9776         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9777         source as data to dbus_connection_set_timeout_functions() as the 
9778         timeout functions expected
9779
9780         * test/glib/run-test.sh: add a little script to start up a message
9781         bus and run tests using it
9782
9783         * tools/dbus-launch.1: updates
9784
9785         * tools/dbus-launch.c (main): add --config-file option
9786
9787         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9788         that could never be reached.
9789
9790         * dbus/dbus-message.c (dbus_message_new_method_return) 
9791         (dbus_message_new_error, dbus_message_new_signal): set the
9792         no-reply-expected flag on all these. Redundant, but may
9793         as well be consistent.
9794
9795 2003-10-11  Havoc Pennington  <hp@pobox.com>
9796
9797         * test/decode-gcov.c (function_solve_graph): make broken block
9798         graph a nonfatal error since it seems to be broken. Need to debug
9799         this.
9800
9801         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9802         can't just check type > INVALID < LAST anymore
9803
9804         * dbus/dbus-message.c (dbus_message_get_signature): new function
9805         (dbus_message_has_signature): new function
9806         (struct DBusMessage): add signature field (right now it isn't sent
9807         over the wire, just generated on the fly)
9808         (dbus_message_copy): copy the signature, and init strings to
9809         proper length to avoid some reallocs
9810         (dbus_message_iter_init_array_iterator): return void, since it
9811         can't fail
9812         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9813         (_dbus_message_loader_queue_messages): add silly temporary hack to
9814         fill in message->signature on load
9815
9816         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9817         characters, so they are relatively human-readable.
9818
9819 2003-10-11  Havoc Pennington  <hp@pobox.com>
9820
9821         * dbus/dbus-message.c (_dbus_message_test): add more test
9822         coverage, but #if 0 for now since they uncover a bug 
9823         not fixed yet; I think in re_align_field_recurse()
9824         (re_align_field_recurse): add FIXME about broken assertion
9825
9826         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9827
9828         * bus/connection.c: share a couple code bits with expirelist.c
9829
9830         * bus/expirelist.h, bus/expirelist.c: implement a generic
9831         expire-items-after-N-seconds facility, was going to share between
9832         expiring connections and replies, decided not to use for expiring
9833         connections for now.
9834
9835         * COPYING: include AFL 2.0 (still need to change all the file headers)
9836
9837 2003-10-09  Havoc Pennington  <hp@redhat.com>
9838
9839         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9840         gcc 3.3. Not that we do anything about it yet.
9841
9842         * bus/signals.c (bus_match_rule_parse): impose max length on the
9843         match rule text
9844
9845         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9846
9847 2003-10-09  Havoc Pennington  <hp@redhat.com>
9848
9849         Make matching rules theoretically work (add parser).
9850         
9851         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9852         the case where destination is explicitly specified as bus driver
9853         and someone else is eavesdropping.
9854         
9855         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9856         definition of eavesdropping and assertion
9857
9858         * tools/dbus-send.c (main): use dbus_message_type_from_string
9859
9860         * bus/signals.c (bus_match_rule_parse): implement
9861
9862         * dbus/dbus-message.c (dbus_message_type_from_string): new
9863
9864         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9865
9866 2003-10-02  Havoc Pennington  <hp@pobox.com>
9867
9868         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9869         dbus_gproxy_oneway_call
9870
9871         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9872         (dbus_server_setup_with_g_main): fix to allow calling them more
9873         than once on the same args
9874         (dbus_bus_get_with_g_main): new function
9875
9876 2003-10-02  Havoc Pennington  <hp@redhat.com>
9877
9878         * doc/dbus-tutorial.xml: write some stuff
9879
9880 2003-09-29  Havoc Pennington  <hp@pobox.com>
9881
9882         * configure.in: split checks for Doxygen from XML docs, check for
9883         xmlto
9884
9885         * doc/Makefile.am: XML-ify all the docs, and add a blank
9886         dbus-tutorial.xml
9887
9888 2003-09-29  Havoc Pennington  <hp@pobox.com>
9889
9890         * Merge dbus-object-names branch. To see the entire patch 
9891         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9892         it's huuuuge though.
9893         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9894         
9895 2003-09-28  Havoc Pennington  <hp@pobox.com>
9896
9897         * HACKING: update to reflect new server
9898
9899 2003-09-26  Seth Nickell  <seth@gnome.org>
9900
9901         * python/dbus.py:
9902         * python/examples/example-signals.py:
9903
9904         Start implementing some notions of signals. The API
9905         is really terrible, but they sort of work (with the
9906         exception of being able to filter by service, and to
9907         transmit signals *as* a particular service). Need to
9908         figure out how to make messages come from the service
9909         we registered :-(
9910         
9911         * python/dbus_bindings.pyx.in:
9912
9913         Removed duplicate message_handler callbacks.
9914         
9915 2003-09-25  Havoc Pennington  <hp@redhat.com>
9916
9917         * bus/session.conf.in: fix my mess
9918
9919 2003-09-25  Havoc Pennington  <hp@pobox.com>
9920
9921         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9922
9923 2003-09-25  Seth Nickell  <seth@gnome.org>
9924
9925         * python/examples/example-service.py:
9926
9927         Johan notices complete wrong code in example-service, but
9928         completely wrong in a way that works exactly the same (!).
9929         Johan is confused, how could this possibly work? Example
9930         code fails to serve purpose of making things clear.
9931         Seth fixes.
9932
9933 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9934
9935         * doc/dbus-specification.sgml: don't require header fields
9936         to be 4-byte aligned and specify that fields should be
9937         distinguished from padding by the fact that zero is not
9938         a valid field name.
9939         
9940         * doc/TODO: remove re-alignment item and add item to doc
9941         the OBJECT_PATH type.
9942         
9943         * dbus/dbus-message.c:
9944         (HeaderField): rename the original member to value_offset
9945         and introduce a name_offset member to keep track of where
9946         the field actually begins.
9947         (adjust_field_offsets): remove.
9948         (append_int_field), (append_uint_field),
9949         (append_string_field): don't align the start of the header
9950         field to a 4-byte boundary.
9951         (get_next_field): impl finding the next marhsalled field
9952         after a given field.
9953         (re_align_field_recurse): impl re-aligning a number of
9954         already marshalled fields.
9955         (delete_field): impl deleting a field of any type and
9956         re-aligning any following fields.
9957         (delete_int_or_uint_field), (delete_string_field): remove.
9958         (set_int_field), (set_uint_field): no need to re-check
9959         that we have the correct type for the field.
9960         (set_string_field): ditto and impl re-aligning any
9961         following fields.
9962         (decode_header_data): update to take into account that
9963         the fields aren't 4-byte aligned any more and the new
9964         way to distinguish padding from header fields. Also,
9965         don't exit when there is too much header padding.
9966         (process_test_subdir): print the directory.
9967         (_dbus_message_test): add test to make sure a following
9968         field is re-aligned correctly after field deletion.
9969         
9970         * dbus/dbus-string.[ch]:
9971         (_dbus_string_insert_bytes): rename from insert_byte and
9972         allow the insert of multiple bytes.
9973         (_dbus_string_test): test inserting multiple bytes.
9974
9975         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9976         warning note to docs about having to re-align any
9977         marshalled values following the string.
9978         
9979         * dbus/dbus-message-builder.c:
9980         (append_string_field), (_dbus_message_data_load):
9981         don't align the header field.
9982         
9983         * dbus/dbus-auth.c: (process_test_subdir): print the
9984         directory.
9985         
9986         * test/break-loader.c: (randomly_add_one_byte): upd. for
9987         insert_byte change.
9988         
9989         * test/data/invalid-messages/bad-header-field-alignment.message:
9990         new test case.
9991         
9992         * test/data/valid-messages/unknown-header-field.message: shove
9993         a dict in the unknown field.
9994
9995 2003-09-25  Seth Nickell  <seth@gnome.org>
9996
9997         * python/dbus.py:
9998         * python/dbus_bindings.pyx.in:
9999
10000         Handle return values.
10001         
10002         * python/examples/example-client.py:
10003         * python/examples/example-service.py:
10004
10005         Pass back return values from the service to the client.
10006         
10007 2003-09-24  Seth Nickell  <seth@gnome.org>
10008
10009         * python/dbus.py:
10010
10011         Connect Object methods (when you are sharing an object) up... pass
10012         in a list of methods to be shared. Sharing all the methods just
10013         worked out too weird. You can now create nice Services over the
10014         DBus in Python. :-)
10015         
10016         * python/dbus_bindings.pyx.in:
10017
10018         Keep references to user_data tuples passed into C functions so 
10019         Python doesn't garbage collect on us.
10020
10021         Implement MethodReturn and Error subclasses of Message for creating
10022         DBusMessage's of those types.
10023         
10024         * python/examples/example-client.py:
10025         * python/examples/example-service.py:
10026
10027         Simple example code showing both how create DBus services and objects,
10028         and how to use them.
10029
10030 2003-09-23  Havoc Pennington  <hp@pobox.com>
10031
10032         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
10033
10034 2003-09-23  Havoc Pennington  <hp@redhat.com>
10035
10036         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
10037         (dbus_gproxy_disconnect_signal): implement
10038         (dbus_gproxy_manager_remove_signal_match): implement
10039         (dbus_gproxy_manager_add_signal_match): implement
10040         (dbus_gproxy_oneway_call): implement
10041
10042 2003-09-23  Havoc Pennington  <hp@pobox.com>
10043
10044         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
10045         subclass. This means dropping the transparent thread safety of the
10046         proxy; you now need a separate proxy per-thread, or your own
10047         locking on the proxy. Probably right anyway.
10048         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
10049
10050 2003-09-22  Havoc Pennington  <hp@redhat.com>
10051
10052         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
10053
10054 2003-09-21  Seth Nickell  <seth@gnome.org>
10055
10056         First checkin of the Python bindings.
10057         
10058         * python/.cvsignore:
10059         * python/Makefile.am:
10060         * python/dbus_bindings.pyx.in:
10061         * python/dbus_h_wrapper.h:
10062
10063         Pieces for Pyrex to operate on, building a dbus_bindings.so
10064         python module for low-level access to the DBus APIs.
10065         
10066         * python/dbus.py:
10067
10068         High-level Python module for accessing DBus objects.
10069
10070         * configure.in:
10071         * Makefile.am:
10072
10073         Build stuff for the python bindings.
10074
10075         * acinclude.m4:
10076
10077         Extra macro needed for finding the Python C header files.
10078
10079 2003-09-21  Havoc Pennington  <hp@pobox.com>
10080
10081         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
10082         implementing the proxy manager, didn't get very far.
10083
10084         * dbus/dbus-bus.c (dbus_bus_add_match): new
10085         (dbus_bus_remove_match): new
10086
10087         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
10088         path_name argument; adjust the other not-yet-implemented 
10089         gproxy constructors to be what I think they should be.
10090
10091 2003-09-21  Havoc Pennington  <hp@pobox.com>
10092
10093         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
10094         by default for message bus connections.
10095
10096         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
10097         exit_on_disconnect flag is set and we process the disconnected
10098         signal.
10099         (dbus_connection_set_exit_on_disconnect): new function
10100
10101 2003-09-21  Havoc Pennington  <hp@pobox.com>
10102
10103         Get matching rules mostly working in the bus; only actually
10104         parsing the rule text remains. However, the client side of
10105         "signal connections" hasn't been started, this patch is only the
10106         bus side.
10107         
10108         * dbus/dispatch.c: fix for the matching rules changes
10109         
10110         * bus/driver.c (bus_driver_handle_remove_match)
10111         (bus_driver_handle_add_match): send an ack reply from these
10112         method calls
10113
10114         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
10115         arguments, reported by Seth Nickell
10116
10117         * bus/config-parser.c (append_rule_from_element): support
10118         eavesdrop=true|false attribute on policies so match rules 
10119         can be prevented from snooping on the system bus.
10120
10121         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
10122         and "destination" in attribute names; fix some docs bugs; 
10123         add eavesdrop=true|false attribute
10124
10125         * bus/driver.c (bus_driver_handle_add_match)
10126         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
10127         messages
10128
10129         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
10130         rid of broadcast service concept, signals are just always broadcast
10131
10132         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
10133         mostly implement matching rules stuff (currently only exposed as signal
10134         connections)
10135
10136 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
10137
10138         * doc/dbus-specification.sgml: Change the header field name
10139         to be an enum and update the rest of the spec to reference
10140         the fields using the conventinal name.
10141
10142         * dbus/dbus-protocol.h: update to reflect the spec.
10143
10144         * doc/TODO: add item to remove the 4 byte alignment requirement.
10145         
10146         * dbus/dbus-message.c: Remove the code to generalise the
10147         header/body length and serial number header fields as named
10148         header fields so we can reference field names using the 
10149         protocol values.
10150         (append_int_field), (append_uint_field), (append_string_field):
10151         Append the field name as a byte rather than four chars.
10152         (delete_int_or_uint_field), (delete_string_field): reflect the
10153         fact that the field name and typecode now occupy 4 bytes instead
10154         of 8.
10155         (decode_string_field), (decode_header_data): update to reflect
10156         protocol changes and move the field specific encoding from
10157         decode_string_field() back into decode_header_data().
10158         
10159         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
10160         Add utility to aid debugging.
10161         
10162         * dbus/dbus-message-builder.c:
10163         (append_string_field), (_dbus_message_data_load): Update to
10164         reflect protocol changes; Change the FIELD_NAME directive
10165         to HEADER_FIELD and allow it to take the field's conventional
10166         name rather than the actual value.
10167         
10168         * test/data/*/*.message: Update to use HEADER_FIELD instead
10169         of FIELD_NAME; Always align the header on an 8 byte boundary
10170         *before* updating the header length.
10171
10172 2003-09-15  Havoc Pennington  <hp@pobox.com>
10173
10174         * dbus/dbus-pending-call.c: add the get/set object data
10175         boilerplate as for DBusConnection, etc. Use generic object data
10176         for the notify callback.
10177
10178         * glib/dbus-gparser.c (parse_node): parse child nodes
10179
10180         * tools/dbus-viewer.c: more hacking on the dbus-viewer
10181         
10182         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
10183         contain functions shared between the convenience lib and the
10184         installed lib
10185
10186         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
10187         -export-symbols-regex to the GLib library
10188
10189         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
10190         fix the locking in here, and add a default handler for
10191         Introspect() that just returns sub-nodes.
10192
10193 2003-09-14  Havoc Pennington  <hp@pobox.com>
10194
10195         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
10196         rather than gfoo consistent
10197
10198         * glib/dbus-gproxy.h: delete for now, move contents to
10199         dbus-glib.h, because the include files don't work right since we
10200         aren't in the dbus/ subdir.
10201         
10202         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
10203         (dbus_gproxy_end_call): finish
10204         (dbus_gproxy_begin_call): finish
10205
10206         * glib/dbus-gmain.c (dbus_set_g_error): new
10207
10208         * glib/dbus-gobject.c (handle_introspect): include information
10209         about child nodes in the introspection
10210
10211         * dbus/dbus-connection.c (dbus_connection_list_registered): new
10212         function to help in implementation of introspection
10213
10214         * dbus/dbus-object-tree.c
10215         (_dbus_object_tree_list_registered_and_unlock): new function
10216
10217 2003-09-12  Havoc Pennington  <hp@pobox.com>
10218
10219         * glib/dbus-gidl.h: add common base class for all the foo_info
10220         types
10221
10222         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
10223         similar to kdcop
10224
10225         * test/Makefile.am: try test srcdir -ef . in addition to test
10226         srcdir = ., one of them should work (yeah lame)
10227         
10228         * glib/Makefile.am: build the "idl" parser stuff as a convenience
10229         library
10230         
10231         * glib/dbus-gparser.h: make description_load routines return
10232         NodeInfo* not Parser*
10233
10234         * Makefile.am (SUBDIRS): build test dir after all library dirs
10235
10236         * configure.in: add GTK+ detection
10237
10238 2003-09-07  Havoc Pennington  <hp@pobox.com>
10239
10240         * Make Doxygen contented.
10241
10242 2003-09-07  Havoc Pennington  <hp@pobox.com>
10243
10244         * doc/dbus-specification.sgml: more updates
10245
10246 2003-09-06  Havoc Pennington  <hp@pobox.com>
10247
10248         * doc/dbus-specification.sgml: partial updates
10249
10250         * bus/dbus-daemon-1.1.in: fix the config file docs for the
10251         zillionth time; hopefully I edited the right file this time.
10252
10253         * bus/config-parser.c (append_rule_from_element): support
10254         send_type, send_path, receive_type, receive_path
10255
10256         * bus/policy.c: add message type and path to the list of things
10257         that can be "firewalled"
10258
10259 2003-09-06  Havoc Pennington  <hp@pobox.com>
10260
10261         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
10262         (dbus_connection_register_object_path): make this not handle
10263         messages to paths below the given path
10264
10265 2003-09-03  Havoc Pennington  <hp@pobox.com>
10266
10267         * test/glib/Makefile.am: add this with random glib-linked test
10268         programs
10269
10270         * glib/Makefile.am: remove the random test programs from here,
10271         leave only the unit tests
10272
10273         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
10274         uscore/javacaps conversion, and fix     
10275         (get_object_property, set_object_property): change to .NET
10276         convention for mapping props to methods, set_FooBar/get_FooBar, 
10277         since one language has such a convention we may as well copy it. 
10278         Plus real methods in either getFooBar or get_foo_bar style won't 
10279         collide with this convention.
10280
10281 2003-09-01  Havoc Pennington  <hp@pobox.com>
10282
10283         * glib/dbus-gparser.c: implement
10284
10285         * glib/dbus-gobject.c: start implementing skeletons support
10286
10287         * configure.in: when disabling checks/assert, also define
10288         G_DISABLE_ASSERT and G_DISABLE_CHECKS
10289
10290 2003-09-01  Havoc Pennington  <hp@pobox.com>
10291
10292         * glib/Makefile.am: rearrange a bunch of files and get "make
10293         check" framework set up
10294
10295 2003-08-31  Havoc Pennington  <hp@pobox.com>
10296
10297         * fix build with --disable-tests
10298
10299 2003-08-30  Havoc Pennington  <hp@pobox.com>
10300
10301         * dbus/dbus-connection.c: purge DBusMessageHandler
10302
10303         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
10304         use callbacks everywhere
10305
10306 2003-08-30  Havoc Pennington  <hp@pobox.com>
10307
10308         * test/data/valid-config-files/system.d/test.conf: change to 
10309         root for the user so warnings don't get printed
10310
10311         * dbus/dbus-message.c: add dbus_message_get_path,
10312         dbus_message_set_path
10313         
10314         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
10315         dispatching to a path
10316
10317         * dbus/dbus-string.c (_dbus_string_validate_path): add
10318
10319         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
10320         (_dbus_marshal_object_path): implement
10321
10322         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
10323         to contain the path to the target object
10324         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
10325         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
10326
10327 2003-08-30  Havoc Pennington  <hp@pobox.com>
10328
10329         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
10330
10331 2003-08-29  Havoc Pennington  <hp@pobox.com>
10332
10333         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
10334         registered
10335         (struct DBusObjectSubtree): shrink this
10336         a lot, since we may have a lot of them
10337         (_dbus_object_tree_free_all_unlocked): implement
10338         (_dbus_object_tree_dispatch_and_unlock): implement
10339
10340 2003-08-29  Havoc Pennington  <hp@pobox.com>
10341
10342         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
10343
10344 2003-08-28  Havoc Pennington  <hp@pobox.com>
10345
10346         purge DBusObjectID
10347         
10348         * dbus/dbus-connection.c: port to no ObjectID, create a
10349         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10350
10351         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10352         everything except UnregisterFunction and MessageFunction
10353         
10354         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10355         add DBUS_TYPE_OBJECT_PATH
10356         
10357         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10358         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10359         path-based object IDs
10360
10361 2003-08-25  Havoc Pennington  <hp@pobox.com>
10362
10363         Just noticed that dbus_message_test is hosed, I wonder when I
10364         broke that. I thought make check was passing earlier...
10365         
10366         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10367         container tree, will replace most of dbus-object-registry
10368
10369         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10370         screwup
10371
10372 2003-08-19  Havoc Pennington  <hp@pobox.com>
10373
10374         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10375         (dbus_message_is_error): fix this function
10376
10377         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10378         match
10379
10380         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10381         reflect clarified man page
10382         (bus_client_policy_check_can_send): ditto
10383         
10384         * bus/session.conf.in: fixup
10385
10386         * bus/system.conf.in: fixup
10387
10388 2003-08-18  Havoc Pennington  <hp@redhat.com>
10389
10390         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10391
10392         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10393         dumb bug created earlier (wrong order of args to
10394         decode_header_data())
10395         
10396         * tools/dbus-send.c: port
10397
10398         * tools/dbus-print-message.c (print_message): port
10399
10400         * test/data/*messages: port all messages over
10401         
10402         * dbus/dbus-message-builder.c: support including 
10403         message type
10404         
10405         * bus/driver.c: port over
10406         
10407         * bus/dispatch.c: port over to new stuff
10408
10409         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10410         rename disconnect signal to "Disconnected"
10411
10412 2003-08-17  Havoc Pennington  <hp@pobox.com>
10413
10414         This doesn't compile yet, but syncing up so I can hack on it from
10415         work. What are branches for if not broken code? ;-)
10416         
10417         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10418         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10419         DBUS_HEADER_FIELD_ERROR_NAME
10420         
10421         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10422         for the interface+member pairs
10423         (string_hash): change to use g_str_hash algorithm
10424         (find_direct_function, find_string_function): refactor these to
10425         share most code.
10426         
10427         * dbus/dbus-message.c: port all of this over to support 
10428         interface/member fields instead of name field
10429
10430         * dbus/dbus-object-registry.c: port over
10431         
10432         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10433         from _dbus_string_validate_name
10434
10435         * bus/dbus-daemon-1.1: change file format for the 
10436         <deny>/<allow> stuff to match new message naming scheme
10437
10438         * bus/policy.c: port over
10439
10440         * bus/config-parser.c: parse new format
10441         
10442 2003-08-16  Havoc Pennington  <hp@pobox.com>
10443
10444         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10445         broken assertion
10446
10447         * glib/dbus-gproxy.c: some hacking
10448
10449 2003-08-15  Havoc Pennington  <hp@redhat.com>
10450
10451         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10452
10453         * dbus/dbus-connection.c
10454         (dbus_connection_send_with_reply_and_block): factor out internals;
10455         change to convert any error replies to DBusError instead of 
10456         returning them as a message
10457
10458 2003-08-15  Havoc Pennington  <hp@pobox.com>
10459
10460         * dbus/dbus-connection.c, 
10461         dbus/dbus-pending-call.c: Finish the pending call stuff
10462
10463 2003-08-14  Havoc Pennington  <hp@redhat.com>
10464
10465         * dbus/dbus-pending-call.c: start on new object that will replace
10466         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10467         replies
10468
10469         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10470         with remote interfaces
10471
10472         * dbus/dbus-gidl.c: do the boring boilerplate in here
10473         
10474 2003-08-12  Havoc Pennington  <hp@pobox.com>
10475
10476         * bus/dispatch.c (bus_dispatch): make this return proper 
10477         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10478
10479         * dbus/dbus-errors.c (dbus_set_error): use
10480         _dbus_string_append_printf_valist
10481
10482         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10483         (_dbus_string_append_printf): new
10484
10485         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10486         UNKNOWN_METHOD
10487
10488         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10489         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10490         message is unhandled.
10491
10492 2003-08-11  Havoc Pennington  <hp@pobox.com>
10493
10494         * bus/test.c (client_disconnect_handler): change to return
10495         HANDLED (would have been REMOVE_MESSAGE)
10496
10497         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10498         HANDLED/NOT_YET_HANDLED instead of
10499         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10500         should be used.
10501
10502 2003-08-10  Havoc Pennington  <hp@pobox.com>
10503
10504         * tools/dbus-send.c (main): add --type argument, for now
10505         supporting only method_call and signal types.
10506
10507         * tools/dbus-print-message.c: print message type
10508
10509         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10510         init connection->objects
10511
10512         * doc/dbus-specification.sgml: fix sgml
10513
10514         * bus/*.c: port over to object-instance API changes
10515
10516         * test/test-service.c: ditto
10517         
10518         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10519         name, we will have to fix up the rest of the code to also handle
10520         this
10521         (dbus_message_new): generic message-creation call
10522         (set_string_field): allow appending name field
10523
10524 2003-08-06  Havoc Pennington  <hp@pobox.com>
10525
10526         * dbus/dbus-object-registry.c: implement signal connection 
10527         and dispatch
10528
10529         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10530
10531         * dbus/dbus-internals.c (_dbus_memdup): new function
10532
10533 2003-08-02  Havoc Pennington  <hp@pobox.com>
10534
10535         * dbus/dbus-message.c (dbus_message_get_no_reply)
10536         (dbus_message_set_no_reply): add these and remove
10537         set_is_error/get_is_error
10538
10539         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10540         remove the ERROR flag, since there's now an ERROR type
10541
10542 2003-08-01  Havoc Pennington  <hp@pobox.com>
10543
10544         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10545         implement
10546
10547         * dbus/dbus-message.c (dbus_message_get_type): new function
10548
10549         * doc/dbus-specification.sgml: add "type" byte to messages
10550
10551 2003-08-01  Havoc Pennington  <hp@pobox.com>
10552
10553         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10554         a message type enum to distinguish kinds of message
10555         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10556         that need not be replied to
10557
10558 2003-08-01  Havoc Pennington  <hp@pobox.com>
10559
10560         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10561         (unpack_8_octets): fix no-64-bit-int bug
10562
10563         * dbus/dbus-object-registry.c (validate_id): validate the 
10564         connection ID bits, not just the instance ID.
10565
10566         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10567         the connection-global 33 bits of the object ID
10568
10569         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10570         object ID in the new way
10571
10572         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10573         define server/client/instance bits.
10574
10575 2003-07-30  Havoc Pennington  <hp@pobox.com>
10576
10577         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10578         build
10579
10580 2003-07-13  Havoc Pennington  <hp@pobox.com>
10581
10582         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10583         fields to DBusObjectVTable and DBusObjectInfo
10584
10585 2003-07-12  Havoc Pennington  <hp@pobox.com>
10586
10587         * dbus/dbus-object-registry.c: implement unit test,
10588         fix bugs discovered in process
10589
10590         * dbus/dbus-connection.c: remove handler_table and
10591         register_handler(), add DBusObjectRegistry usage
10592
10593         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10594         (dbus_object_id_set_null): new functions
10595
10596 2003-07-08  Havoc Pennington  <hp@pobox.com>
10597
10598         * dbus/dbus-object.c: implement some of this
10599
10600         * dbus/dbus-object-registry.c
10601         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10602         param
10603         (_dbus_object_registry_new): handle OOM
10604
10605 2003-07-08  Havoc Pennington  <hp@pobox.com>
10606
10607         * dbus/dbus-object.h: sketch out an API for registering objects
10608         with a connection, that allows us to use as little as 24 bytes
10609         per object and lets application code represent an object in 
10610         any conceivable way.
10611
10612         * dbus/dbus-object-registry.c: implement the hard bits of the
10613         DBusConnection aspect of object API. Not yet wired up.
10614         
10615 2003-07-06  Havoc Pennington  <hp@pobox.com>
10616
10617         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10618         (_dbus_marshal_object_id): new
10619         (_dbus_demarshal_object_id): new
10620         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10621         consolidate identical switch cases. Don't conditionalize handling
10622         of DBUS_TYPE_UINT64, need to handle the type always.
10623         (_dbus_marshal_validate_arg): consolidate identical cases, and
10624         handle DBUS_TYPE_OBJECT_ID
10625
10626         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10627
10628         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10629
10630 2003-09-28  Havoc Pennington  <hp@pobox.com>
10631
10632         * real 0.13 release
10633
10634 2003-09-28  Havoc Pennington  <hp@pobox.com>
10635
10636         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10637         to work with Debian db2html
10638
10639 2003-09-28  Havoc Pennington  <hp@pobox.com>
10640
10641         * configure.in: 0.13
10642
10643         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10644         stylesheet-images for benefit of Debian
10645         
10646         Change back to using filesystem-linked sockets for the system
10647         bus, so only root can create the default system bus address.
10648         
10649         * bus/system.conf.in: change to use
10650         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10651
10652         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10653         from here.
10654
10655         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10656         here, and AC_DEFINE DBUS_SYSTEM_PATH
10657
10658 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10659
10660         * doc/TODO:
10661         * doc/busconfig.dtd:
10662         Add busconfig DTD.
10663         
10664 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10665
10666         * doc/dbus-specification.sgml:
10667         Add activation reply values.
10668         
10669 2003-08-05  Havoc Pennington  <hp@redhat.com>
10670
10671         * configure.in: 0.12
10672
10673 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10674
10675         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10676         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10677         (add_watch), (remove_watch), (create_source):
10678         Refcount fds, fixes some reentrancy issues.
10679         
10680 2003-07-30  Havoc Pennington  <hp@redhat.com>
10681
10682         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10683         bus address to be abstract if we have abstract sockets
10684
10685         * NEWS: update
10686
10687 2003-07-28  Havoc Pennington  <hp@redhat.com>
10688
10689         * bus/messagebus.in: fix to avoid processname/servicename 
10690         confusion, from Michael Kearey
10691         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10692         
10693 2003-07-23  Havoc Pennington  <hp@pobox.com>
10694
10695         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10696         fix from Andy Hanton to remove broken "+1"
10697
10698 2003-07-16  Havoc Pennington  <hp@pobox.com>
10699
10700         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10701         babysitter process, as suggested by Thomas Leonard, so 
10702         an "eval `dbus-launch --exit-with-session`" will actually 
10703         return
10704
10705 2003-07-16  Havoc Pennington  <hp@pobox.com>
10706
10707         * configure.in: print out EXPANDED_* variables in the summary at
10708         the end; clean up the code that computes EXPANDED_ variables and
10709         get the ones using exec_prefix right. Should make things work
10710         when you build without --prefix
10711
10712 2003-06-29  Havoc Pennington  <hp@pobox.com>
10713
10714         * mono/Test.cs (class Test): fire up a main loop and run it
10715
10716         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10717         done once, the app has to do it
10718
10719 2003-06-26  Havoc Pennington  <hp@pobox.com>
10720
10721         * mono/Connection.cs: set up connection with the glib main loop
10722
10723 2003-07-01  Havoc Pennington  <hp@redhat.com>
10724
10725         * doc/dbus-specification.sgml: clarify the format of a type code,
10726         change suggested by Jim Blandy
10727
10728 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10729
10730         * doc/Makefile.am:
10731         * tools/Makefile.am: Don't assume srcdir == builddir.
10732
10733         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10734         the allocated block.
10735         (_dbus_memory_test): New function.
10736         * dbus/dbus-test.h: Add _dbus_memory_test ().
10737         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10738
10739         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10740         of %c%c%c%c.
10741         (dbus_message_new): Remove obsolete @todo.
10742
10743         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10744         (_dbus_marshal_set_uint64): Fix comment.
10745
10746         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10747         hardcode FIELD_REPLY_SERIAL.
10748
10749         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10750         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10751
10752         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10753         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10754
10755 2003-06-24  Havoc Pennington  <hp@pobox.com>
10756
10757         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10758
10759 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10760
10761         * configure.in:
10762         * gcj/.cvsignore:
10763         * gcj/Hello.java:
10764         * gcj/Makefile.am:
10765         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10766         * gcj/org/.cvsignore:
10767         * gcj/org/Makefile.am:
10768         * gcj/org/freedesktop/.cvsignore:
10769         * gcj/org/freedesktop/Makefile.am:
10770         * gcj/org/freedesktop/dbus/.cvsignore:
10771         * gcj/org/freedesktop/dbus/Makefile.am:
10772         * gcj/org/freedesktop/dbus/Message.java: (Message),
10773         (Message.Message):
10774         * gcj/org/freedesktop/dbus/natMessage.cc:
10775         Fix the build system.
10776
10777 2003-06-22  Havoc Pennington  <hp@pobox.com>
10778
10779         * mono/Connection.cs: add more bindings
10780
10781         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10782         more than once.
10783
10784 2003-06-22  Havoc Pennington  <hp@pobox.com>
10785
10786         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10787         Start wrapping more stuff.
10788
10789 2003-06-22  Havoc Pennington  <hp@pobox.com>
10790
10791         * mono/Message.cs: implement Message.Wrap() that ensures we only
10792         have a single C# wrapper per DBusMessage, assuming it works which
10793         it probably doesn't.
10794
10795         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10796         (dbus_message_free_data_slot): new
10797         (dbus_message_set_data): new
10798         (dbus_message_get_data): new
10799
10800 2003-06-22  Havoc Pennington  <hp@pobox.com>
10801
10802         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10803         (_dbus_data_slot_allocator_alloc): rework these to keep a
10804         reference count on each slot and automatically manage a global
10805         slot ID variable passed in by address
10806
10807         * bus/bus.c: convert to new dataslot API
10808
10809         * dbus/dbus-bus.c: convert to new dataslot API
10810
10811         * dbus/dbus-connection.c: convert to new dataslot API
10812
10813         * dbus/dbus-server.c: convert to new dataslot API
10814
10815         * glib/dbus-gmain.c: ditto
10816
10817         * bus/test.c: ditto
10818
10819         * bus/connection.c: ditto
10820
10821 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10822
10823         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10824         after the gcj checks so that the correct configuration tags
10825         will be added to libtool.
10826
10827         * dbus-glib-1.pc.in: No need to specify any includes since
10828         dbus-1.pc.in has those.
10829
10830 2003-06-22  Havoc Pennington  <hp@pobox.com>
10831
10832         * mono/*, gcj/*, configure.in, Makefile.am:
10833         Check in makefiles and subdirs for mono and gcj bindings.
10834         Neither binding actually exists, just trying to get through
10835         all the build and other boring bits.
10836
10837 2003-06-21  Philip Blundell  <philb@gnu.org>
10838
10839         * tools/dbus-monitor.1: Updated.
10840
10841         * tools/dbus-send.1: Likewise.
10842
10843 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10844
10845         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10846         for hangup and error after checking read so we won't discard
10847         pending data if both hangup and read are set.
10848
10849 2003-06-19  Philip Blundell  <philb@gnu.org>
10850
10851         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10852
10853         * tools/dbus-send.c: Accept both --system and --session.
10854
10855         * tools/dbus-monitor.c: Same here.
10856
10857 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10858
10859         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10860         from C++ (Patch by Miloslav Trmac).
10861
10862 2003-06-15  Joe Shaw  <joe@assbarn.com>
10863
10864         * configure.in: Check for socklen_t.
10865
10866         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10867
10868         * test/test-segfault.c: Add #include <sys/time.h>
10869
10870         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10871         dbus-launch needs it.
10872
10873 2003-06-09  Havoc Pennington  <hp@redhat.com>
10874
10875         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10876         SUN_LEN, it breaks abstract socket usage
10877
10878         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10879         starts of lines.
10880
10881 2003-06-04  Havoc Pennington  <hp@pobox.com>
10882
10883         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10884         using unix:abstract=/foo, and when listening in a tmpdir
10885         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10886
10887         * dbus/dbus-transport.c (_dbus_transport_open): support
10888         unix:abstract=/foo
10889
10890         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10891         support abstract sockets
10892
10893         * dbus/dbus-transport-unix.c
10894         (_dbus_transport_new_for_domain_socket): support abstract sockets
10895
10896         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10897         toggle as an argument, implement abstract namespace support
10898         (_dbus_listen_unix_socket): ditto
10899
10900         * configure.in: add --enable-abstract-sockets and implement
10901         a configure check for autodetection of the right value.
10902
10903 2003-06-01  Havoc Pennington  <hp@pobox.com>
10904
10905         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10906         in /tmp (though on Linux this will end up being useless,
10907         when we add abstract namespace support)
10908
10909         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10910         subst'ing it
10911
10912 2003-05-28  Colin Walters  <walters@verbum.org>
10913
10914         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10915
10916 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10917
10918         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10919
10920 2003-05-17  Colin Walters  <walters@gnu.org>
10921
10922         * tools/dbus-send.c: Don't exit with an error code if --help was
10923         passed.  Default to using the session bus instead of the system
10924         one.
10925
10926         * tools/dbus-launch.c: Ditto.
10927
10928         * tools/dbus-monitor.c: Ditto.
10929
10930         * tools/dbus-send.1: Update with new arguments.
10931
10932         * tools/dbus-launch.c: Emit code to export variables.  New
10933         arguments -s and -c to specify shell syntax, and a bit of code to
10934         autodetect syntax.  Also, allow specifying a program to run.
10935
10936         * tools/dbus-launch.1: Update with new arguments.
10937
10938         * tools/dbus-send.1: Ditto.
10939
10940         * tools/dbus-monitor.1: Ditto.
10941
10942 2003-05-17  Havoc Pennington  <hp@pobox.com>
10943
10944         * bus/config-parser.c (merge_included): merge in policies from
10945         child configuration file.
10946
10947         * bus/policy.c (bus_policy_merge): function to merge two policies
10948         together
10949
10950 2003-05-16  Havoc Pennington  <hp@redhat.com>
10951
10952         * dbus/dbus-connection.c: disable verbose lock spew
10953
10954         * tools/dbus-send.c: add --print-reply command line option
10955
10956         * tools/dbus-print-message.h (print_message): new util function
10957         shared by dbus-send and dbus-monitor
10958
10959         * tools/dbus-monitor.c (handler_func): exit on disconnect
10960
10961         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10962         disconnected, don't try to use the read_watch
10963
10964         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10965         so we can find this bug more easily
10966
10967 2003-05-16  Havoc Pennington  <hp@redhat.com>
10968
10969         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10970         NULL as DBusHashTable is annoyingly likely to do.
10971
10972 2003-05-16  Colin Walters  <walters@verbum.org>
10973
10974         * tools/dbus-monitor.c: Add --session argument and usage()
10975         function.
10976
10977         * tools/dbus-monitor.1: Update with new --session arg.
10978
10979         * bus/Makefile.am (install-data-hook): Create
10980         $(libdir)/dbus-1.0/services so that the session bus is happy.
10981
10982 2003-05-15  Havoc Pennington  <hp@redhat.com>
10983
10984         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10985         on non-x86. ifdef's are evil.
10986
10987 2003-05-15  Havoc Pennington  <hp@redhat.com>
10988
10989         * configure.in: 0.11
10990
10991         * NEWS: update
10992
10993         * bus/Makefile.am (initddir): apparently we are supposed to put
10994         init scripts in /etc/rc.d/init.d not /etc/init.d
10995
10996         * bus/Makefile.am: remove the "you must --enable-tests to make
10997         check" as it broke distcheck
10998
10999         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
11000
11001 2003-05-13  James Willcox  <jwillcox@gnome.org>
11002
11003         * configure.in:
11004         * bus/activation.c: (bus_activation_service_created),
11005         (bus_activation_activate_service):
11006         * bus/driver.c: (bus_driver_send_service_deleted),
11007         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11008         (bus_driver_send_service_acquired),
11009         (bus_driver_send_welcome_message),
11010         (bus_driver_handle_list_services):
11011         * bus/session.conf.in:
11012         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
11013         (dbus_bus_service_exists), (dbus_bus_activate_service):
11014         * dbus/dbus-bus.h:
11015
11016         Add some convenience API which lets you activate a service, and did a
11017         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
11018         and dbus_message_get_args()
11019
11020 2003-05-11  Havoc Pennington  <hp@pobox.com>
11021
11022         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
11023         calling _dbus_marshal_validate_arg() for every byte in a byte
11024         array, etc.
11025
11026         * dbus/dbus-message-handler.c: use atomic reference counting to
11027         reduce number of locks slightly; the global lock in here sucks
11028
11029         * dbus/dbus-connection.c
11030         (_dbus_connection_update_dispatch_status_and_unlock): variant of
11031         update_dispatch_status that can be called with lock held; then use
11032         in a couple places to reduce locking/unlocking
11033         (dbus_connection_send): hold the lock over the whole function
11034         instead of acquiring it twice.
11035
11036         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
11037
11038         * bus/connection.c (bus_connections_setup_connection): fix access
11039         to already-freed memory.
11040
11041         * dbus/dbus-connection.c: keep a little cache of linked list
11042         nodes, to avoid using the global linked list alloc lock in the
11043         normal send-message case. Instead we just use the connection lock
11044         that we already have to take.
11045
11046         * dbus/dbus-list.c (_dbus_list_find_last): new function
11047
11048         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
11049         change to use a struct for the atomic type; fix docs,
11050         they return value before increment, not after increment.
11051
11052         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
11053         (_dbus_string_append_8_aligned): new functions to try to
11054         microoptimize this operation.
11055         (reallocate_for_length): break this out of set_length(), to
11056         improve profile info, and also so we can consider inlining the
11057         set_length() part.
11058
11059         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
11060         strings with some preallocation, cuts down on our calls to realloc
11061         a fair bit. Though if we can get the "move entire string to empty
11062         string" optimization below to kick in here, it would be better.
11063
11064         * dbus/dbus-string.c (_dbus_string_move): just call
11065         _dbus_string_move_len
11066         (_dbus_string_move_len): add a special case for moving
11067         an entire string into an empty string; we can just
11068         swap the string data instead of doing any reallocs.
11069         (_dbus_string_init_preallocated): new function
11070
11071 2003-05-11  Havoc Pennington  <hp@pobox.com>
11072
11073         Write a "test-profile" that does echo client-server with threads;
11074         profile reveals lock contention, memcpy/realloc of buffers, and
11075         UTF-8 validation as hot spots. 20% of lock contention eliminated
11076         with dbus_atomic_inc/dec implementation on x86.  Much remaining
11077         contention is global mempool locks for GList and DBusList.
11078
11079         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
11080         x86 implementation
11081
11082         * dbus/dbus-connection.c (struct DBusConnection): use
11083         dbus_atomic_t for the reference count
11084
11085         * dbus/dbus-message.c (struct DBusMessage): declare
11086         dbus_atomic_t values as volatile
11087
11088         * configure.in: code to detect ability to use atomic integer
11089         operations in assembly, from GLib patch
11090
11091         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
11092         time, tired of it being wrong in threads and forked processes
11093
11094         * glib/test-profile.c: a little program to bounce messages back
11095         and forth between threads and eat CPU
11096
11097         * dbus/dbus-connection.c: add debug spew macros for debugging
11098         thread locks; include config.h at top; fix deadlock in
11099         dbus_connection_flush()
11100
11101 2003-05-08  Havoc Pennington  <hp@pobox.com>
11102
11103         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
11104         data from getting written, and there wasn't a good reason to
11105         use _exit really.
11106
11107         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
11108         dbus_verbose lines in test coverage
11109         (main): add list of functions sorted by # of untested blocks
11110         to the coverage report
11111
11112         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
11113
11114         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
11115
11116         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
11117         extend test coverage
11118
11119         * test/data/auth/cancel.auth-script: test canceling an
11120         authentication
11121
11122         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
11123         aren't used. in CVS history if we end up needing them.
11124
11125 2003-05-04  Havoc Pennington  <hp@pobox.com>
11126
11127         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
11128         unit test
11129
11130         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
11131         function, which assumed length was in # of strings, not bytes
11132
11133         * dbus/dbus-message.c (_dbus_message_test): add tests for some
11134         missing coverage
11135
11136         * dbus/dbus-connection.c
11137         (_dbus_connection_queue_received_message): disable function for
11138         now, we are only using it in test mode
11139
11140         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11141         remove a mistaken FIXME
11142
11143 2003-05-04  Havoc Pennington  <hp@pobox.com>
11144
11145         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
11146         unlock mutex on successful return, patch from Anders Gustafsson
11147
11148 2003-05-04  Havoc Pennington  <hp@pobox.com>
11149
11150         * dbus-glib-1.pc.in (Requires): fix dependencies, from
11151         Anders Gustafsson
11152
11153 2003-05-04  Havoc Pennington  <hp@pobox.com>
11154
11155         * tools/dbus-launch.c: implement
11156
11157         * bus/main.c (main), bus/bus.c (bus_context_new):
11158         implement --print-pid and --fork
11159
11160 2003-05-03  Havoc Pennington  <hp@redhat.com>
11161
11162         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
11163         the address had no value, and add to test suite. Fix and
11164         regression test from Miloslav Trmac
11165
11166 2003-05-03  Havoc Pennington  <hp@pobox.com>
11167
11168         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
11169         watch is invalid when handled
11170
11171         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
11172         dbus-launch utility to launch the bus from a shell script.  Didn't
11173         actually implement dbus-launch yet, it's just a placeholder still.
11174
11175 2003-05-03  Havoc Pennington  <hp@pobox.com>
11176
11177         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
11178         daemon; also documents daemon config file, so replaces
11179         doc/config-file.txt. Corrected some stuff from config-file.txt in
11180         the process of moving it.
11181
11182 2003-05-03  Havoc Pennington  <hp@pobox.com>
11183
11184         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
11185         add some man pages
11186
11187 2003-05-03  Colin Walters  <walters@verbum.org>
11188
11189         * dbus/dbus-sysdeps.c (fill_user_info): Test against
11190         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
11191
11192         * Makefile.am: Update to use new .pc versioning scheme.
11193
11194 2003-05-02  Havoc Pennington  <hp@redhat.com>
11195
11196         * bus/system.conf.in: allow send/receive to/from message bus
11197         service
11198
11199 2003-04-30  Havoc Pennington  <hp@redhat.com>
11200
11201         * configure.in: print a note when building with unit tests and
11202         without assertions
11203
11204 2003-04-30  Havoc Pennington  <hp@redhat.com>
11205
11206         * Makefile.am: add a check-local that complains if you didn't
11207         configure with --enable-tests
11208
11209 2003-04-29  Havoc Pennington  <hp@redhat.com>
11210
11211         * glib/dbus-gmain.c: docs cleanups
11212
11213         * dbus/dbus-types.h: add docs on int64 types
11214
11215         * dbus/dbus-memory.c: fix docs to avoid putting private API in
11216         public API docs section
11217
11218 2003-04-29  Havoc Pennington  <hp@redhat.com>
11219
11220         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
11221         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
11222         parallel install API version, not with the D-BUS package version.
11223
11224         * HACKING: move some of README over here
11225
11226         * README: updates, and document API/ABI policy
11227
11228         * configure.in: reindentation
11229
11230 2003-04-29  Havoc Pennington  <hp@redhat.com>
11231
11232         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
11233         to use this library" to be sure people have the right
11234         expectations.
11235
11236 2003-04-28  Havoc Pennington  <hp@redhat.com>
11237
11238         * configure.in: add --enable-docs which by default is auto yes if
11239         doxygen and db2html found, no otherwise; but can be forced on/off
11240
11241         * doc/Makefile.am: conditionalize whether to build docs on
11242         --enable-docs
11243
11244 2003-04-28  Havoc Pennington  <hp@redhat.com>
11245
11246         * configure.in: 0.10
11247
11248         * NEWS: update
11249
11250         * bus/system.conf.in: add <includedir>system.d</includedir>
11251
11252         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
11253         username was provided but not uid
11254
11255         * bus/config-parser.c (struct BusConfigParser): keep track of
11256         whether the parser is toplevel or was included; change some
11257         of the error handling if it's included.
11258
11259 2003-04-27  Havoc Pennington  <hp@pobox.com>
11260
11261         Unbreak my code...
11262
11263         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11264         report correct status if we finish processing authentication
11265         inside this function.
11266
11267         * bus/activation.c (try_send_activation_failure): use
11268         bus_transaction_send_error_reply
11269
11270         * bus/connection.c (bus_connection_get_groups): return an error
11271         explaining the problem
11272
11273         * bus/bus.c (bus_context_check_security_policy): implement
11274         restriction here that inactive connections can only send the
11275         hello message. Also, allow bus driver to send anything to
11276         any recipient.
11277
11278         * bus/connection.c (bus_connection_complete): create the
11279         BusClientPolicy here instead of on-demand.
11280         (bus_connection_get_policy): don't return an error
11281
11282         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
11283         sender field in message being replied to
11284
11285         * bus/bus.c (bus_context_check_security_policy): fix silly typo
11286         causing it to return FALSE always
11287
11288         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
11289         we checked sender rather than destination
11290
11291 2003-04-25  Havoc Pennington  <hp@redhat.com>
11292
11293         test suite is slightly hosed at the moment, will fix soon
11294
11295         * bus/connection.c (bus_connections_expire_incomplete): fix to
11296         properly disable the timeout when required
11297         (bus_connection_set_name): check whether we can remove incomplete
11298         connections timeout after we complete each connection.
11299
11300         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
11301         probably still broken.
11302
11303         * bus/services.c (bus_registry_acquire_service): implement max
11304         number of services owned, and honor allow/deny rules on which
11305         services a connection can own.
11306
11307         * bus/connection.c (bus_connection_get_policy): report errors here
11308
11309         * bus/activation.c: implement limit on number of pending
11310         activations
11311
11312 2003-04-25  Havoc Pennington  <hp@redhat.com>
11313
11314         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
11315         where we used >= 0 instead of != DBUS_UID_UNSET.
11316
11317 2003-04-25  Havoc Pennington  <hp@redhat.com>
11318
11319         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
11320         were toggled without add/remove, fix from Anders Gustafsson
11321
11322 2003-04-24  Havoc Pennington  <hp@redhat.com>
11323
11324         * test/data/valid-config-files/basic.conf: add <limit> tags to
11325         this test
11326
11327         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
11328         <limit> tag in configuration file.
11329
11330 2003-04-24  Havoc Pennington  <hp@redhat.com>
11331
11332         * bus/dispatch.c: somehow missed some name_is
11333
11334         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
11335         (_dbus_timeout_set_interval): new
11336
11337         * bus/connection.c (bus_connections_setup_connection): record time
11338         when each connection is first set up, and expire them after the
11339         auth timeout passes.
11340
11341 2003-04-24  Havoc Pennington  <hp@redhat.com>
11342
11343         * dbus/dbus-message.c (dbus_message_name_is): rename
11344         (dbus_message_service_is): rename
11345         (dbus_message_sender_is): rename
11346         (dbus_message_get_service): rename
11347
11348 2003-04-24  Havoc Pennington  <hp@redhat.com>
11349
11350         * configure.in: add --enable-checks
11351
11352         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11353
11354         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11355         to use thread locks.
11356         (_dbus_connection_handler_destroyed_locked): move some private
11357         functions into proper docs group
11358
11359         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11360         _dbus_return_val_if_fail
11361
11362         Throughout: use dbus_return_if_fail
11363
11364 2003-04-23  James Willcox  <jwillcox@gnome.org>
11365
11366         * glib/dbus-glib.h:
11367         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11368         (dbus_connection_setup_with_g_main),
11369         (dbus_server_setup_with_g_main):
11370         * glib/test-dbus-glib.c: (main):
11371         * glib/test-thread-client.c: (main):
11372         * glib/test-thread-server.c: (new_connection_callback), (main):
11373         * tools/dbus-monitor.c: (main):
11374
11375         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11376         and dbus_server_setup_with_g_main().
11377
11378 2003-04-20  Havoc Pennington  <hp@pobox.com>
11379
11380         * doc/dbus-specification.sgml: document the restrictions on
11381         message and service names
11382
11383 2003-04-22  Havoc Pennington  <hp@redhat.com>
11384
11385         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11386         support, and do some code cleanups to share more code and
11387         speed up array marshal/demarshal.
11388
11389         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11390
11391         * configure.in: generate dbus-arch-deps.h
11392
11393         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11394         64-bit typecodes
11395
11396 2003-04-22  Havoc Pennington  <hp@redhat.com>
11397
11398         * test/data/valid-messages/opposite-endian.message: fix test
11399         to use proper type for rply field
11400
11401         * test/data/invalid-messages: add tests for below validation
11402
11403         * dbus/dbus-message.c (decode_header_data): validate field types,
11404         and validate that named fields are valid names
11405         (decode_name_field): consider messages in the
11406         org.freedesktop.Local. namespace to be invalid.
11407
11408         * dbus/dbus-string.c (_dbus_string_validate_name): new
11409
11410 2003-04-19  Havoc Pennington  <hp@pobox.com>
11411
11412         * bus/driver.c (bus_driver_handle_hello): check limits and
11413         return an error if they are exceeded.
11414
11415         * bus/connection.c: maintain separate lists of active and inactive
11416         connections, and a count of each. Maintain count of completed
11417         connections per user. Implement code to check connection limits.
11418
11419         * dbus/dbus-list.c (_dbus_list_unlink): export
11420
11421         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11422         number of bytes in the message queue for a connection
11423
11424 2003-04-18  Havoc Pennington  <hp@pobox.com>
11425
11426         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11427
11428         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11429         memleaks
11430
11431         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11432         on realloc be sure to update the pointer in the keyring
11433
11434         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11435         offset to avoid writing to unallocated memory
11436
11437         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11438         try the next mechanism, so we properly handle OOM
11439
11440         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11441         on OOM.
11442         (_dbus_keyring_new): fix OOM bug
11443         (_dbus_keyring_new_homedir): always set error; impose a maximum
11444         number of keys we'll load from the file, mostly to speed up the
11445         test suite and make its OOM checks more useful, but also for
11446         general sanity.
11447
11448         * dbus/dbus-auth.c (process_error_server): reject authentication
11449         if we get an error from the client
11450         (process_cancel): on cancel, send REJECTED, per the spec
11451         (process_error_client): send CANCEL if we get an error from the
11452         server.
11453
11454 2003-04-18  Havoc Pennington  <hp@pobox.com>
11455
11456         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11457         debug spew
11458
11459         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11460         handling problem
11461
11462         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11463         about DBUS_TEST_HOMEDIR once
11464
11465         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11466         the environment
11467
11468         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11469         config file so we test the right thing
11470
11471         Throughout: assorted docs improvements
11472
11473 2003-04-18  Havoc Pennington  <hp@pobox.com>
11474
11475         * glib/dbus-gmain.c: adapt to watch changes
11476
11477         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11478
11479         * dbus/dbus-server.h: remove dbus_server_handle_watch
11480
11481         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11482
11483         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11484         like DBusTimeout, so we don't need dbus_connection_handle_watch
11485         etc.
11486
11487 2003-04-17  Havoc Pennington  <hp@redhat.com>
11488
11489         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11490         database usage so it all goes via the DBusUserDatabase cache.
11491
11492 2003-04-17  Havoc Pennington  <hp@redhat.com>
11493
11494         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11495         there was an OOM watch we skipped, we always return TRUE so we
11496         iterate again to have a look at it again. Fixes test suite hang.
11497         Code rearrangement also lets us lose some memset and only iterate
11498         over callbacks once.
11499
11500         * bus/driver.c (bus_driver_handle_message): sense of test for
11501         reply was backward
11502
11503 2003-04-16  Havoc Pennington  <hp@pobox.com>
11504
11505         * doc/dbus-specification.sgml: make spec say serials are unsigned
11506
11507         * dbus/dbus-message.h: change message serials to unsigned
11508
11509         * dbus/dbus-connection.c: adapt to message serials being unsigned
11510
11511 2003-04-15  Havoc Pennington  <hp@pobox.com>
11512
11513         * bus/bus.c: create and keep around a shared DBusUserDatabase
11514         object.
11515
11516         * bus/connection.c (bus_connection_get_groups): don't cache
11517         groups for user in the connection object, since user database
11518         object now does that.
11519
11520 2003-04-16  Havoc Pennington  <hp@redhat.com>
11521
11522         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11523         list of size counters
11524         (_dbus_message_loader_putback_message_link): put back a popped link
11525
11526         * dbus/dbus-connection.c
11527         (dbus_connection_set_max_live_messages_size): rename
11528         max_received_size
11529         (dbus_connection_get_outgoing_size): get size of outgoing
11530         queue
11531         (_dbus_connection_set_connection_counter): remove this cruft
11532
11533 2003-04-14  Havoc Pennington  <hp@redhat.com>
11534
11535         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11536         caching, but at some point we might want to be able to use a
11537         different database.
11538
11539         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11540         SHA1 conf file to test the sha1 auth mechanism, since the regular
11541         test always uses EXTERNAL when available.
11542
11543         * configure.in,
11544         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11545         add conf file that requires use of sha1 auth
11546
11547 2003-04-13  Havoc Pennington  <hp@pobox.com>
11548
11549         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11550         from Philip Blundell to send messages and monitor them.
11551
11552 2003-04-13  Havoc Pennington  <hp@pobox.com>
11553
11554         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11555         callbacks
11556
11557         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11558         users
11559
11560         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11561         fix to only recover unused bytes if we're already authenticated
11562         (_dbus_transport_get_is_authenticated): fix to still mark us
11563         authenticated if there are unused bytes.
11564
11565         * bus/dispatch.c: implement security policy checking
11566
11567         * bus/connection.c (bus_transaction_send_from_driver): new
11568
11569         * bus/bus.c (bus_context_check_security_policy): new
11570
11571         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11572         now we just set the DBusError and it gets converted to an error
11573         reply.
11574
11575         * bus/connection.c (allow_user_function): enable code using actual
11576         data from the config file
11577
11578         * bus/policy.c (list_allows_user): handle wildcard rules for
11579         user/group connection perms
11580
11581 2003-04-13  Havoc Pennington  <hp@pobox.com>
11582
11583         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11584
11585         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11586
11587         * bus/policy.c (bus_policy_append_mandatory_rule)
11588         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11589         (bus_policy_append_group_rule): new functions
11590
11591 2003-04-12  Havoc Pennington  <hp@pobox.com>
11592
11593         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11594
11595         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11596         the pid/gid/uid, just for paranoia.
11597
11598         * test/break-loader.c (randomly_do_n_things): find a byte
11599         containing a type code, and randomly change it to a different
11600         type code.
11601
11602 2003-04-12  Havoc Pennington  <hp@pobox.com>
11603
11604         * bus/policy.h: change BusPolicy to be the thing from the config
11605         file, and rename old BusPolicy to BusClientPolicy
11606
11607         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11608         match change in how policy works
11609
11610         * dbus/dbus-internals.h: mark assert_not_reached as
11611         __attribute((noreturn))__
11612
11613 2003-04-11  Havoc Pennington  <hp@redhat.com>
11614
11615         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11616         the broadcast service. Use boolean return for ServiceExists.
11617
11618 2003-04-11  Havoc Pennington  <hp@redhat.com>
11619
11620         * configure.in: add another directory to look for qt in.
11621
11622 2003-04-11  Havoc Pennington  <hp@redhat.com>
11623
11624         * AUTHORS: add Colin Walters
11625
11626 2003-04-11  Havoc Pennington  <hp@redhat.com>
11627
11628         * NEWS: update
11629
11630         * configure.in: 0.9
11631
11632 2003-04-11  Havoc Pennington  <hp@redhat.com>
11633
11634         * bus/messagebus.in: remove pid file when stopping the
11635         message bus, since the bus won't have privileges to remove it
11636         itself.
11637
11638 2003-04-11  Havoc Pennington  <hp@redhat.com>
11639
11640         * bus/bus.c (bus_context_new): move credentials change after
11641         creating pidfile
11642
11643 2003-04-11  Havoc Pennington  <hp@pobox.com>
11644
11645         * test/decode-gcov.c: add "below average functions" to the
11646         coverage report, and change how some of the code works.
11647
11648         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11649         not in the coverage stats.
11650
11651         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11652         couple places so running the test suite doesn't result in megaspam.
11653
11654 2003-04-11  Havoc Pennington  <hp@pobox.com>
11655
11656         * bus/dispatch.c (check_existent_service_activation): accept a no
11657         memory error in a place we didn't before
11658
11659         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11660         in case the first one failed," since the test suite is less
11661         broken now.
11662
11663 2003-04-10  Havoc Pennington  <hp@pobox.com>
11664
11665         * bus/dispatch.c (check_segfault_service_activation): add test
11666         for launching an executable that just crashes.
11667
11668         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11669         don't leave a million cores. We'll see how portable this is.
11670
11671 2003-04-10  Havoc Pennington  <hp@pobox.com>
11672
11673         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11674         the possible parent failures before we fork, so that we don't
11675         fail to create a babysitter after creating the child.
11676
11677         * bus/activation.c (bus_activation_activate_service): kill child
11678         if we don't successfully complete the activation.
11679
11680 2003-04-10  Havoc Pennington  <hp@redhat.com>
11681
11682         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11683         the connection if it's disconnected
11684
11685         * bus/activation.c (bus_activation_service_created): use new
11686         transaction features to roll back removal of pending activation if
11687         we don't successfully create the service after all. Don't remove
11688         pending activation if the function fails.
11689
11690         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11691         (_dbus_list_insert_after_link): new code to facilitate
11692         services.c fixes
11693
11694         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11695         new functionality, so we can preallocate the ability to insert
11696         into a hash table.
11697
11698         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11699         allowing us to put custom hooks in a transaction to be used for
11700         cancelling said transaction
11701
11702         * doc/dbus-specification.sgml: add some discussion of secondary
11703         service owners, and disallow zero-length service names
11704
11705         * bus/services.c (bus_registry_acquire_service): new function,
11706         splits out part of bus_driver_handle_acquire_service() and fixes
11707         a bug where we didn't remove the service doing the acquiring
11708         from the secondary queue if we failed to remove the current owner
11709         from the front of the queue.
11710
11711 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11712
11713         * doc/dbus-specification.sgml:
11714         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11715
11716 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11717
11718         * bus/.cvsignore:
11719         * glib/.cvsignore:
11720         * test/.cvsignore:
11721         Added files to cvsignore
11722
11723         * dbus/dbus-message.h:
11724         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11725         Make get_named() take two out argument and return a boolean.
11726         (dbus_message_iter_get_args_valist):
11727         Update usage of get_named().
11728         (dbus_message_iter_append_byte):
11729         Fix typo
11730         (dbus_message_iter_append_named)
11731         Fix typo
11732         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11733         More tests.
11734
11735 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11736
11737         * dbus/dbus-marshal.[ch]:
11738         Add array_type_pos argument to _dbus_marshal_validate_arg.
11739         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11740
11741         * dbus/dbus-message.[ch]:
11742         Multi-dimensional arrays have full type specification in the
11743         outermost array. Iter code re-arranged to handle this.
11744         Added some more iter tests.
11745
11746         * doc/dbus-specification.sgml:
11747         Add me to authors.
11748         Remove old FIXME.
11749         Update new array encoding description.
11750         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11751
11752         * test/data/invalid-messages/array-with-mixed-types.message:
11753         * test/data/valid-messages/array-of-array-of-uint32.message:
11754         Change to the new array format.
11755
11756         * test/data/invalid-messages/too-short-dict.message:
11757         Fix bug in test.
11758
11759         * test/data/valid-messages/recursive-types.message:
11760         Fix up and extend test.
11761
11762 2003-04-10  Havoc Pennington  <hp@pobox.com>
11763
11764         * bus/dispatch.c: lots of fixes
11765
11766         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11767         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11768         that was crack, broke the test service.
11769
11770         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11771         handling to avoid piling up errors if we get a failure on the
11772         first address.
11773
11774         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11775         pid in assertion failures.
11776
11777         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11778         to some fixed size of file descriptor array. Don't return TRUE
11779         anytime a timeout exists, that led to lots of busy loop silliness
11780         in the tests.
11781
11782 2003-04-09  Havoc Pennington  <hp@redhat.com>
11783
11784         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11785         I'd checked this in earlier but hadn't.
11786
11787 2003-04-09  Havoc Pennington  <hp@redhat.com>
11788
11789         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11790         the activation test (man this is getting old!)
11791
11792 2003-04-09  Havoc Pennington  <hp@redhat.com>
11793
11794         * test/test-utils.c: use dispatch status function to fix this up
11795
11796         * bus/connection.c (connection_watch_callback): don't dispatch
11797         from here
11798         (connection_timeout_callback): don't dispatch from here
11799         (bus_connections_setup_connection): set the dispatch status function
11800         (bus_connection_disconnected): unset it
11801
11802         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11803         used to add a connection to be dispatched
11804         (_dbus_loop_iterate): do the dispatching at the end of each
11805         iteration
11806
11807         * dbus/dbus-connection.c
11808         (dbus_connection_set_dispatch_status_function): new function
11809         allowing us to fix up main loop usage
11810         (_dbus_connection_last_unref): free all the various function
11811         user data
11812         (dbus_connection_dispatch): call the DispatchStatusFunction
11813         whenever this function returns
11814         (dbus_connection_handle_watch): call DispatchStatusFunction
11815         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11816         (reply_handler_timeout): call DispatchStatusFunction
11817         (dbus_connection_flush): call DispatchStatusFunction
11818
11819 2003-04-09  Havoc Pennington  <hp@redhat.com>
11820
11821         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11822         a memory leak
11823
11824         * bus/dispatch.c (check_service_activated): fix bug in test
11825
11826         * dbus/dbus-mainloop.c (check_timeout): fix this up
11827
11828         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11829         verbose output so we can sort out output from different processes,
11830         e.g. in the activation case.
11831
11832 2003-04-08  Colin Walters  <walters@gnu.org>
11833
11834         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11835         the pid file.
11836         (bus_context_new): Set it.
11837         (bus_context_unref): Use it to delete the pid file.
11838
11839 2003-04-08  Havoc Pennington  <hp@redhat.com>
11840
11841         * test/data/invalid-messages/array-with-mixed-types.message:
11842         regression test that fails for the moment
11843
11844         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11845         tests for convenience
11846
11847         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11848         array of nil, it broke things.
11849
11850         * test/data/invalid-messages/array-of-nil.message: regression test
11851
11852         * test/data/valid-messages/array-of-array-of-uint32.message:
11853         happened to write this so added it to suite
11854
11855 2003-04-08  Havoc Pennington  <hp@redhat.com>
11856
11857         * bus/driver.c (bus_driver_handle_acquire_service): init
11858         retval/reply before checking name
11859
11860         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11861         recursion depth argument
11862
11863         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11864         in the public struct for future extension
11865
11866         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11867         typo
11868
11869         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11870         message
11871
11872         * doc/dbus-specification.sgml: fix typo
11873
11874 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11875
11876         Implemented recursive types, named types and new-style iters
11877
11878         * bus/driver.c:
11879         * glib/test-thread-client.c: (thread_func):
11880         * glib/test-thread-server.c: (handle_test_message):
11881         * test/test-service.c: (handle_echo):
11882         Update to new api
11883
11884         * dbus/Makefile.am:
11885         * dbus/dbus-dict.c:
11886         * dbus/dbus-dict.h:
11887         * dbus/dbus.h
11888         Remove DBusDict
11889
11890         * dbus/dbus-internals.c: (_dbus_type_to_string):
11891         Update for new types.
11892
11893         * dbus/dbus-marshal.[ch]:
11894         Implement recursive types and the new marshalling format.
11895         Remove hardcoded dict marshalling.
11896         Marshal named types.
11897
11898         * dbus/dbus-message-builder.c:
11899         Add BYTE_ARRAY.
11900         Remove references to old types
11901
11902         * dbus/dbus-message.[ch]:
11903         New non-refcounted iter API that supports recursive iters.
11904         Use iters for appending, including support for recursive
11905         iters.
11906         Add byte and named type support.
11907         Update everything to new marshalling formats.
11908         Add tests for new API.
11909
11910         * dbus/dbus-protocol.h:
11911         Remove old array types.
11912         Add types: BYTE, ARRAY, DICT, NAMED
11913
11914         * dbus/dbus-string.c:
11915         * dbus/dbus-sysdeps.c:
11916         Make parse_double locale safe.
11917
11918         * dbus/dbus-test-main.c:
11919         Call setlocale.
11920
11921         * dbus/dbus-test.c:
11922         Kill dict test
11923
11924         * doc/dbus-specification.sgml:
11925         Update spec
11926
11927         * test/data/incomplete-messages/missing-body.message:
11928         * test/data/invalid-messages/bad-boolean.message:
11929         * test/data/invalid-messages/bad-boolean-array.message:
11930         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11931         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11932         * test/data/invalid-messages/too-short-dict.message:
11933         * test/data/valid-messages/dict-simple.message:
11934         * test/data/valid-messages/dict.message:
11935         * test/data/valid-messages/emptiness.message:
11936         * test/data/valid-messages/lots-of-arguments.message:
11937         * test/data/valid-messages/no-padding.message:
11938         * test/data/valid-messages/recursive-types.message:
11939         Add missing NAME fields
11940         Fix up dicts & arrays
11941
11942         * test/data/invalid-messages/dict-with-nil-value.message:
11943         Removed, this is not invalid anymore.
11944
11945         * test/data/valid-messages/recursive-types.message:
11946         Add new test for deeply recursive types.
11947
11948 2003-04-07  Havoc Pennington  <hp@pobox.com>
11949
11950         * bus/driver.c (bus_driver_handle_acquire_service): return an
11951         error if you try to acquire a service that starts with ':'
11952
11953 2003-04-07  Havoc Pennington  <hp@redhat.com>
11954
11955         * doc/dbus-specification.sgml: require that base service names
11956         start with ':' and that the base service is created/deleted
11957         as first and last things a connection does on the bus
11958
11959         * bus/dispatch.c (check_existent_service_activation): lots more
11960         work on the activation test; it doesn't fully pass yet...
11961
11962         * test/test-service.c (main): fix so we don't memleak the
11963         connection to the message bus
11964         (filter_func): accept a message asking us to exit
11965
11966 2003-04-06  Havoc Pennington  <hp@pobox.com>
11967
11968         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11969         from Colin Walters
11970
11971         * configure.in: fixes to Qt detection from Colin Walters
11972
11973         * doc/Makefile.am: Only remove generated docbook dirs if they
11974         exist, from Colin Walters
11975
11976         * dbus/dbus-bus.c: change how we set well-known connections to
11977         NULL, so that it works if a single connection is stored in
11978         two well-known array slots.
11979
11980         * test/Makefile.am: remove a lot of stuff that isn't immediately
11981         useful, it's in CVS history if we want it.
11982
11983         * test/test-service.c: use dbus-mainloop instead of that
11984         watch.[hc] crack
11985
11986 2003-04-06  Havoc Pennington  <hp@pobox.com>
11987
11988         * dbus/Makefile.am: split lists of sources into stuff that goes in
11989         the library, util functions that go in the lib and are also used
11990         elsewhere, and util functions that are used in tests/daemon but
11991         don't go in the lib.
11992
11993         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11994         here so it can be used in test binaries also
11995
11996 2003-04-06  Havoc Pennington  <hp@pobox.com>
11997
11998         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11999         here in the parent process, so we can return an error if it
12000         fails. Also, move some of the code into the child so the parent
12001         is less hosed if we fail midway through.
12002
12003         * bus/bus.c (bus_context_new): move pidfile detection further up
12004         in the function, before we start overwriting sockets and such.
12005
12006         * bus/messagebus.in: adjust this a bit, not sure if it will work.
12007
12008         * configure.in: add --with-system-pid-file and --with-system-socket
12009
12010 2003-04-06  Colin Walters  <walters@verbum.org>
12011
12012         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
12013
12014         * bus/system.conf.in: Declare a pidfile.
12015
12016         * bus/bus.c (bus_context_new): Test for an existing pid file, and
12017         create one (if appropriate).
12018
12019         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
12020         (struct BusConfigParser) [pidfile]: New.
12021         (element_type_to_name, merge_included, start_busconfig_child)
12022         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
12023         (bus_config_parser_unref): Free it.
12024         (bus_config_parser_get_pidfile): New function.
12025
12026         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
12027
12028         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
12029
12030         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
12031
12032         * dbus/dbus-sysdeps.h: Prototype it.
12033
12034 2003-04-06  Havoc Pennington  <hp@pobox.com>
12035
12036         * bus/bus.c (bus_context_new): print the address in here, rather
12037         than in main(), because we need to do it before forking the daemon
12038
12039         * bus/dispatch.c (send_service_nonexistent_error): set the sender
12040         on the service nonexistent error
12041
12042         * bus/driver.c (bus_driver_handle_acquire_service): set the
12043         sender on the AcquireService reply
12044
12045         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
12046         server also listen on a UNIX socket so services can connect to it.
12047
12048 2003-04-06  Havoc Pennington  <hp@pobox.com>
12049
12050         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
12051         so it detects deadlocks and also we actually init threads when
12052         debugging.
12053
12054 2003-04-06  Havoc Pennington  <hp@pobox.com>
12055
12056         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
12057         save the domain socket name, and unlink it when we disconnect the
12058         server. Means that at least when we exit normally, we won't leave
12059         a bunch of junk in /tmp
12060
12061         * dbus/dbus-transport-unix.c
12062         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
12063         memory management). (I was making a real change here but then
12064         didn't)
12065
12066 2003-04-06  Havoc Pennington  <hp@pobox.com>
12067
12068         * bus/bus.c (bus_context_new): fix wrong handling of
12069         server_data_slot_unref() in the error case.
12070
12071         * dbus/dbus-internals.h (_dbus_assert): change so it passes
12072         "(condition) != 0" to _dbus_real_assert so that
12073         "_dbus_assert (pointer)" doesn't cause a warning
12074
12075         * bus/main.c (main): accept --print-address option to print out
12076         the message bus address
12077
12078         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
12079
12080         * dbus/dbus-transport.c (_dbus_transport_open): special error for
12081         "tmpdir" option to unix: address on client side
12082
12083         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
12084         to unix: address
12085
12086         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
12087         we can use to create sockets in the test suite.
12088
12089         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
12090         cleanly. To be used for testing.
12091
12092         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
12093
12094         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
12095
12096         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12097         handle trying to call this when there's no servers active
12098
12099 2003-04-05  Havoc Pennington  <hp@pobox.com>
12100
12101         * NEWS: update
12102
12103         * configure.in: 0.8
12104
12105 2003-04-05  Havoc Pennington  <hp@pobox.com>
12106
12107         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
12108         crash on startup. Need to get "try starting the daemon"
12109         in the test suite I guess. ;-)
12110
12111         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
12112         tracked the number of open connections; it's better done in
12113         application-specific code as you want it to span all servers etc.
12114
12115 2003-04-05  Havoc Pennington  <hp@pobox.com>
12116
12117         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
12118         patch from Colin Walters
12119
12120 2003-04-05  Havoc Pennington  <hp@pobox.com>
12121
12122         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
12123         reality; in fact multiple mechanisms are allowed.
12124
12125         * dbus/dbus-internals.c (_dbus_real_assert)
12126         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
12127         _dbus_assert_not_reached() into functions, so that they don't show
12128         up in basic block counts for test coverage, and don't use up as
12129         much disk space. Does mean slower execution speed though, so
12130         assumes --disable-asserts is the normal production case.
12131
12132 2003-04-05  Havoc Pennington  <hp@pobox.com>
12133
12134         * test/Makefile.am (dist-hook): also dist *.in files
12135
12136         * NEWS: update
12137
12138         * configure.in: 0.7
12139
12140 2003-04-05  Havoc Pennington  <hp@pobox.com>
12141
12142         * dbus/dbus-string.c: docs warning
12143
12144         * dbus/dbus-spawn.c: missing docs
12145
12146         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
12147
12148 2003-04-05  Havoc Pennington  <hp@pobox.com>
12149
12150         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
12151         magic from GLib
12152
12153         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
12154         to -1 once we've reaped the babysitter
12155         (_dbus_babysitter_handle_watch): do as much work as we can, not
12156         just one go of it
12157
12158         * bus/activation.c: add code using DBusBabysitter so that we
12159         handle it when a service fails to start up properly.
12160         (bus_activation_service_created): don't remove the activation
12161         entries as we go, just let them get removed when we free the pending
12162         activation. Unref reply messages after sending them.
12163
12164 2003-04-05  Havoc Pennington  <hp@pobox.com>
12165
12166         * test/decode-gcov.c (main): print per-directory stats in the report
12167
12168         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
12169
12170 2003-04-05  Havoc Pennington  <hp@pobox.com>
12171
12172         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
12173
12174         * test/decode-gcov.c: hack up a little program to suck data
12175         out of gcov files. Yes this is sort of silly.
12176
12177         * configure.in: define something in config.h and do an
12178         AM_CONDITIONAL when gcov is enabled
12179
12180 2003-04-04  Havoc Pennington  <hp@redhat.com>
12181
12182         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
12183         return a "babysitter" object that is used to monitor the status of
12184         the spawned process and reap it when required.
12185
12186         * test/test-segfault.c, test/test-exit.c,
12187         test/test-sleep-forever.c: binaries that do various lame things,
12188         used in the test suite.
12189
12190         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
12191
12192 2003-04-03  Havoc Pennington  <hp@pobox.com>
12193
12194         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
12195         in preparation for modifying it, dbus-sysdeps is getting
12196         a bit unmanageable.
12197
12198 2003-04-03  Havoc Pennington  <hp@redhat.com>
12199
12200         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
12201         have multiple ones
12202
12203         * bus/*.[hc]: adapt to mainloop change
12204
12205 2003-04-03  Havoc Pennington  <hp@redhat.com>
12206
12207         * bus/activation.c (load_directory): fix up memleaks
12208         (bus_activation_entry_free): free the entry
12209
12210         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
12211         we get one from the message bus; fix memleaks.
12212
12213         * dbus/dbus-message.c (dbus_set_error_from_message): new function
12214
12215 2003-04-03  Havoc Pennington  <hp@pobox.com>
12216
12217         * bus/config-parser.c (bus_config_parser_unref): free
12218         list of mechanisms, bug discovered by test suite enhancements
12219         (putting system.conf and session.conf into suite)
12220
12221         * test/Makefile.am, test/test-service.c: add placeholder for a
12222         test service that we'll activate as part of test suite. Doesn't
12223         do anything yet.
12224
12225         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
12226         setting NULL value, and use system malloc not dbus_malloc()
12227         when we have unavoidable memleakage.
12228
12229         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
12230         didn't work, and support DBUS_BUS_ACTIVATION.
12231
12232         * bus/activation.c (child_setup): pass our well-known bus type to
12233         the child
12234
12235         * bus/config-parser.c: support <type> to specify well-known type
12236
12237         * doc/dbus-specification.sgml: document the env variables to
12238         locate well-known buses and find service activator
12239
12240 2003-04-02  Havoc Pennington  <hp@redhat.com>
12241
12242         * test/Makefile.am (all-local): add a rule to copy tests to
12243         builddir, so we can have generated tests. Use this to remove the
12244         silly hack for testing system.conf and session.conf. Will use this
12245         shortly to generate .service files pointing to test binaries.
12246
12247 2003-04-02  Havoc Pennington  <hp@redhat.com>
12248
12249         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
12250         current alloc and needed new length, not max of the doubled
12251         allocation and needed new length. Also, when building tests,
12252         don't do the double-allocation stuff, just realloc every time.
12253
12254 2003-04-02  Havoc Pennington  <hp@redhat.com>
12255
12256         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
12257         in error messages
12258         (_dbus_string_get_dirname): new
12259         (_dbus_sysdeps_test): new
12260         (_dbus_directory_open): include dirnames in error messages
12261
12262         * bus/config-parser.c: interpret <include> and <includedir> and
12263         <servicedir> relative to config file location if the given
12264         filename is not absolute.
12265
12266         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
12267
12268 2003-04-02  Havoc Pennington  <hp@redhat.com>
12269
12270         * bus/connection.c (bus_transaction_send_error_reply): set sender
12271         service for the error, and unref the reply on success
12272
12273         * bus/activation.c: convert to use BusTransaction so OOM can be
12274         handled correctly
12275         (bus_activation_service_created): set sender of the message
12276
12277 2003-04-01  Havoc Pennington  <hp@redhat.com>
12278
12279         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
12280         <includedir> (at least mostly)
12281
12282         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
12283         first, then the user ID
12284
12285 2003-04-01  Havoc Pennington  <hp@pobox.com>
12286
12287         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
12288         function
12289
12290         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
12291
12292         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
12293
12294         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
12295         socket 0777, and unlink any existing socket.
12296
12297         * bus/bus.c (bus_context_new): change our UID/GID and fork if
12298         the configuration file so specifies; set up auth mechanism
12299         restrictions
12300
12301         * bus/config-parser.c (bus_config_parser_content): add support
12302         for <fork> option and fill in code for <auth>
12303
12304         * bus/system.conf.in: add <fork/> to default configuration,
12305         and limit auth mechanisms to EXTERNAL
12306
12307         * doc/config-file.txt (Elements): add <fork>
12308
12309         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
12310         (_dbus_change_identity): new function
12311
12312 2003-03-31  Havoc Pennington  <hp@redhat.com>
12313
12314         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
12315         (_dbus_listen_unix_socket): fix off-by-one error in null
12316         termination spotted by Nalin
12317
12318 2003-03-31  Havoc Pennington  <hp@redhat.com>
12319
12320         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
12321         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
12322         having a real home directory available.
12323
12324 2003-03-31  Havoc Pennington  <hp@redhat.com>
12325
12326         * bus/Makefile.am (install-data-hook): create /var/run/dbus
12327
12328         * bus/messagebus.in: add init script for Red Hat /etc/init.d
12329
12330         * configure.in: add support for specifying a style of init script
12331         to install
12332
12333 2003-03-31  Havoc Pennington  <hp@redhat.com>
12334
12335         Fix some annoying DBusString API and fix all affected code.
12336
12337         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
12338         max_length argument
12339         (_dbus_string_get_data): change to return string instead of using
12340         an out param
12341         (_dbus_string_get_const_data): ditto
12342         (_dbus_string_get_data_len): ditto
12343         (_dbus_string_get_const_data_len): ditto
12344
12345 2003-03-31  Havoc Pennington  <hp@redhat.com>
12346
12347         * bus/main.c (main): fix up the command line arguments to be nicer
12348
12349 2003-03-31  Havoc Pennington  <hp@redhat.com>
12350
12351         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12352         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12353         final location that lands in the config file
12354
12355         * bus/config-loader-expat.c (bus_config_load): fix type of
12356         XML_Parser variable
12357
12358         * doc/TODO: remove TODO item for dbus_bus_get()
12359
12360         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12361
12362 2003-03-31  Havoc Pennington  <hp@pobox.com>
12363
12364         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12365         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12366         argument since they are always client side
12367
12368         * dbus/dbus-server.c (dbus_server_get_address): new function
12369
12370         * bus/main.c (main): take the configuration file as an argument.
12371
12372         * test/data/valid-config-files/debug-allow-all.conf: new file to
12373         use with dispatch.c tests for example
12374
12375         * bus/test-main.c (main): require test data dir
12376
12377         * bus/bus.c (bus_context_new): change this to take a
12378         configuration file name as argument
12379
12380         * doc/config-file.txt (Elements): add <servicedir>
12381
12382         * bus/system.conf, bus/session.conf: new files
12383
12384         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12385         well-known socket if none set
12386
12387         * configure.in: create system.conf and session.conf
12388
12389 2003-03-30  Havoc Pennington  <hp@pobox.com>
12390
12391         * bus/config-parser.c: hacking
12392
12393         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12394         to shut down, since it could cause weirdness with the DBusList
12395         lock
12396
12397         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12398         link-oriented stack routines
12399         (alloc_link): free the mempool if the first alloc from it fails
12400
12401         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12402
12403         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12404         from GLib
12405         (_dbus_string_skip_white): new
12406
12407         * doc/config-file.txt (Elements): add <includedir>
12408
12409 2003-03-28  Havoc Pennington  <hp@pobox.com>
12410
12411         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12412         (_dbus_string_copy_data): new functions
12413
12414 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12415
12416         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12417         * dbus/dbus-bus.h:
12418         Add dbus_bus_get.
12419
12420         * dbus/dbus-memory.c:
12421         Fix a doc comment.
12422
12423 2003-03-28  Havoc Pennington  <hp@pobox.com>
12424
12425         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12426         I think it may have just been superstition. Not sure.
12427
12428         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12429         failures that were not being handled.
12430
12431         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12432
12433         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12434         row that will fail on out-of-memory.
12435
12436         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12437         function for testing out-of-memory handling.
12438
12439         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12440         allocation functions, they do map exactly to the expat ones.
12441
12442 2003-03-27  Havoc Pennington  <hp@redhat.com>
12443
12444         * bus/config-loader-libxml.c (bus_config_load): add another error
12445         check
12446
12447 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12448
12449         * doc/TODO:
12450         Add note about automatic service activation.
12451
12452         * doc/dbus-specification.sgml:
12453         Rename the specification and clarify a few things.
12454
12455 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12456
12457         * Doxyfile.in:
12458         * dbus/dbus-address.c:
12459         * dbus/dbus-dict.c:
12460         * dbus/dbus-marshal.c:
12461         * dbus/dbus-server-debug-pipe.c:
12462         * dbus/dbus-transport-unix.c:
12463         Fix documentation warnings.
12464
12465 2003-03-26  Havoc Pennington  <hp@pobox.com>
12466
12467         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12468         after every test so it's quick and easy to see which leaked, and
12469         so we test multiple dbus_shutdown() calls
12470
12471         * configure.in: change configure.in XML stuff to also support
12472         expat
12473
12474         * config-loader-libxml.c: some hacking
12475
12476         * config-loader-expat.c: some hacking
12477
12478         * config-parser.c: some hacking, plus tests
12479
12480 2003-03-25  Havoc Pennington  <hp@redhat.com>
12481
12482         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12483
12484         * configure.in: add --with-xml option to specify XML library,
12485         right now only libxml is supported.
12486
12487         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12488         nonworking code between home and work, still just stubs
12489
12490 2003-03-24  Havoc Pennington  <hp@redhat.com>
12491
12492         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12493         file
12494
12495         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12496         NULL argument for "message" if the error is a well-known one,
12497         fill in a generic message in this case.
12498
12499         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12500         favor of DBusError
12501
12502         * bus/test.c (bus_test_flush_bus): add
12503
12504         * bus/policy.c (bus_policy_test): test code stub
12505
12506 2003-03-24  Havoc Pennington  <hp@pobox.com>
12507
12508         * bus/connection.c (bus_connections_setup_connection): set up
12509         the "can this user connect" function, but it always returns
12510         TRUE until we have a config file parser so we can have a config
12511         file that allows connections.
12512
12513 2003-03-23  Havoc Pennington  <hp@pobox.com>
12514
12515         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12516         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12517         the mutex, so we can check for proper memory management
12518         and OOM handling.
12519
12520         * dbus/dbus-dataslot.c: remove the mutex from
12521         DBusDataSlotAllocator and lock it manually when using it,
12522         to simplify fitting it into the global slots framework.
12523
12524         * dbus/dbus-threads.c (init_static_locks): rework how we're
12525         handling global locks so they are easily shut down.
12526
12527         * bus/policy.c (bus_policy_append_rule): fix
12528
12529         * bus/test-main.c (main): check for memleaks
12530
12531         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12532         test suite check for memleaks
12533
12534         * dbus/dbus-memory.c: add support in test mode for tracking
12535         number of outstanding blocks
12536
12537 2003-03-23  Havoc Pennington  <hp@pobox.com>
12538
12539         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12540         policies code
12541
12542         * dbus/dbus-hash.h: add ULONG hash keys
12543
12544         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12545         (_dbus_get_group_id): new function
12546
12547 2003-03-20  Havoc Pennington  <hp@redhat.com>
12548
12549         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12550         new function
12551         (dbus_connection_get_unix_user): new function
12552
12553 2003-03-20  Havoc Pennington  <hp@pobox.com>
12554
12555         * bus/connection.c (bus_connection_send_oom_error): assert that
12556         message has a sender
12557         (connection_execute_transaction): ditto
12558         (bus_connection_preallocate_oom_error): fix to set the sender, and
12559         set recipient to the destination service, not the bus driver
12560
12561         * bus/policy.c: hacking
12562
12563         * dbus/dbus-message.c (dbus_message_service_is): new function
12564         (dbus_message_sender_is): new
12565
12566 2003-03-19  Havoc Pennington  <hp@redhat.com>
12567
12568         * bus/policy.c: start sketching code for policy restrictions on
12569         what connections can do.
12570
12571 2003-03-18  Havoc Pennington  <hp@redhat.com>
12572
12573         * doc/TODO: some notes on high-level todo items. Little nitpick
12574         stuff is all in @todo, so no need to add it here.
12575
12576         * doc/config-file.txt: some notes on how config file might look
12577
12578 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12579
12580         * configure.in: 0.6
12581
12582         * NEWS: Update.
12583
12584 2003-03-17  Havoc Pennington  <hp@redhat.com>
12585
12586         * dbus/dbus-internals.h: add gcc attributes so that
12587         our printf-style functions warn on bad arguments to
12588         format
12589
12590         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12591         format bug
12592
12593         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12594         printf format bug
12595
12596 2003-03-17  Havoc Pennington  <hp@redhat.com>
12597
12598         * bus/test-main.c (main): make it print something as it runs
12599         so make check doesn't look stuck
12600
12601         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12602         from CVS, now obsolete
12603
12604 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12605
12606         * bus/dispatch.c: (bus_dispatch):
12607         Refetch the service name since it may have been reallocated
12608         when dbus_message_set_sender was called.
12609
12610         * dbus/dbus-sysdeps.c: (_dbus_accept):
12611         Add address and address length variables and use them to stop
12612         valgrind from complaining.
12613
12614 2003-03-17  Havoc Pennington  <hp@pobox.com>
12615
12616         All tests pass, no memleaks, no valgrind complaints.
12617
12618         * bus/test.c: refcount handler_slot
12619
12620         * bus/connection.c (bus_connections_new): refcount
12621         connection_data_slot
12622
12623         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12624         bytes so that auth scripts pass.
12625
12626         * bus/dispatch.c: init message_handler_slot so it gets allocated
12627         properly
12628
12629         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12630
12631         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12632         dealloc server_pipe_hash when no longer used for benefit of
12633         leak checking
12634
12635         * dbus/dbus-auth.c (process_command): memleak fix
12636
12637         * bus/dispatch.c (check_hello_message): memleak fix
12638
12639 2003-03-16  Havoc Pennington  <hp@pobox.com>
12640
12641         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12642
12643 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12644
12645         * bus/activation.c (bus_activation_activate_service): Append
12646         the pending activation entry to the list of pending activations.
12647
12648 2003-03-16  Havoc Pennington  <hp@pobox.com>
12649
12650         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12651         connections
12652
12653         * dbus/dbus-address.c (create_entry): fix OOM handling when
12654         failing to alloc entry->method
12655
12656 2003-03-16  Havoc Pennington  <hp@pobox.com>
12657
12658         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12659         the watch
12660
12661         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12662         add some missing dbus_set_result
12663
12664         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12665         alloc the DBusMessageHandler
12666
12667         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12668         the transport here, since we call this from the finalizer; it
12669         resulted in a double-finalize.
12670
12671         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12672         where we tried to use transport->connection that was NULL,
12673         happened when transport was disconnected early on due to OOM
12674
12675         * bus/*.c: adapt to handle OOM for watches/timeouts
12676
12677         * dbus/dbus-transport-unix.c: port to handle OOM during
12678         watch handling
12679
12680         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12681         reference to unused bytes instead of a copy
12682
12683         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12684         out of memory
12685
12686         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12687         FALSE on OOM
12688
12689         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12690         of memory
12691
12692 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12693
12694         * doc/dbus-specification.sgml:
12695         Document reply message for ActivateService.
12696
12697 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12698
12699         * bus/activation.c: (bus_pending_activation_entry_free),
12700         (bus_pending_activation_free), (bus_activation_new),
12701         (bus_activation_unref), (bus_activation_service_created),
12702         (bus_activation_activate_service):
12703         * bus/activation.h:
12704         * bus/bus.c: (bus_context_new):
12705         * bus/desktop-file.c: (new_section):
12706         * bus/driver.c: (bus_driver_send_service_deleted),
12707         (bus_driver_handle_activate_service):
12708         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12709         * bus/services.h:
12710         * dbus/dbus-connection.c:
12711         (dbus_connection_send_with_reply_and_block):
12712         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12713         * dbus/dbus-protocol.h:
12714         Make activation work better. Now pending activations will be queued
12715         and the daemon won't try to activate services that are already registered.
12716
12717 2003-03-16  Havoc Pennington  <hp@pobox.com>
12718
12719         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12720         connection data
12721
12722         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12723         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12724
12725 2003-03-16  Havoc Pennington  <hp@pobox.com>
12726
12727         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12728         this. always run the test suite before commit...
12729
12730         * bus/*: adapt to DBusConnection API changes
12731
12732         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12733         requires renaming stuff to avoid dbus_connection_dispatch name
12734         conflict.
12735
12736         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12737         function
12738
12739         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12740         separate from _dbus_message_loader_return_buffer()
12741
12742         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12743         this, because it's now always broken to use; the number of
12744         messages in queue vs. the number still buffered by the message
12745         loader is undefined/meaningless. Should use
12746         dbus_connection_get_dispatch_state().
12747         (dbus_connection_dispatch): rename from
12748         dbus_connection_dispatch_message
12749
12750 2003-03-16  Havoc Pennington  <hp@pobox.com>
12751
12752         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12753         implementation
12754
12755 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12756
12757         * dbus/dbus-connection.c:
12758         (dbus_connection_send_with_reply_and_block):
12759         Decrease connection->n_incoming when removing an entry
12760         from the list.
12761         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12762         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12763         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12764         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12765         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12766         (dbus_dict_get_byte_array):
12767         Handle NULL arrays and strings. Also add support for byte arrays.
12768
12769         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12770         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12771         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12772         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12773         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12774         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12775         * dbus/dbus-marshal.h:
12776         Add support for marshalling and demarshalling empty arrays and strings.
12777
12778         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12779         (dbus_message_append_string_array),
12780         (dbus_message_iter_get_boolean),
12781         (dbus_message_iter_get_boolean_array),
12782         (dbus_message_iter_get_int32_array),
12783         (dbus_message_iter_get_uint32_array),
12784         (dbus_message_iter_get_double_array),
12785         (dbus_message_iter_get_byte_array),
12786         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12787         (check_message_handling):
12788         Add support for getting empty arrays and dicts.
12789
12790         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12791         Don't do any validation at all for now, that's better than just checking
12792         for ASCII.
12793
12794         * test/data/valid-messages/emptiness.message:
12795         New test message with lots of empty arrays.
12796
12797 2003-03-16  Havoc Pennington  <hp@pobox.com>
12798
12799         * dbus/dbus-connection.c
12800         (_dbus_connection_queue_received_message_link): new function that
12801         can't fail due to OOM
12802
12803         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12804         new function pops a message together with a list link
12805         containing it.
12806
12807         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12808         message queuing functions to avoid needing to alloc memory
12809
12810 2003-03-16  Havoc Pennington  <hp@pobox.com>
12811
12812         Oops - test code was only testing failure of around 30 of the
12813         mallocs in the test path, but it turns out there are 500+
12814         mallocs. I believe this was due to misguided linking setup such
12815         that there was one copy of dbus_malloc etc. in the daemon and one
12816         in the shared lib, and only daemon mallocs were tested. In any
12817         case, the test case now tests all 500+ mallocs, and doesn't pass
12818         yet, though there are lots of fixes in this patch.
12819
12820         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12821         this so that it doesn't need to allocate memory, since it
12822         has no way of indicating failure due to OOM (and would be
12823         annoying if it did).
12824
12825         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12826
12827         * bus/Makefile.am: rearrange to create two self-contained
12828         libraries, to avoid having libraries with overlapping symbols.
12829         that was resulting in weirdness, e.g. I'm pretty sure there
12830         were two copies of global static variables.
12831
12832         * dbus/dbus-internals.c: move the malloc debug stuff to
12833         dbus-memory.c
12834
12835         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12836         empty.
12837
12838         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12839
12840         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12841         on failure.
12842
12843         * bus/dispatch.c (bus_dispatch_add_connection): free
12844         message_handler_slot when no longer using it, so
12845         memory leak checkers are happy for the test suite.
12846
12847         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12848
12849         * bus/bus.c (new_connection_callback): disconnect in here if
12850         bus_connections_setup_connection fails.
12851
12852         * bus/connection.c (bus_connections_unref): fix to free the
12853         connections
12854         (bus_connections_setup_connection): if this fails, don't
12855         disconnect the connection, just be sure there are no side
12856         effects.
12857
12858         * dbus/dbus-string.c (undo_alignment): unbreak this
12859
12860         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12861         leaking
12862         (_dbus_auth_new): fix the order in which we free strings
12863         on OOM failure
12864
12865         * bus/connection.c (bus_connection_disconnected): fix to
12866         not send ServiceDeleted multiple times in case of memory
12867         allocation failure
12868
12869         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12870         get the base service name
12871         (dbus_bus_register_client): don't return base service name,
12872         instead store it on the DBusConnection and have an accessor
12873         function for it.
12874         (dbus_bus_register_client): rename dbus_bus_register()
12875
12876         * bus/dispatch.c (check_hello_message): verify that other
12877         connections on the bus also got the correct results, not
12878         just the one sending hello
12879
12880 2003-03-15  Havoc Pennington  <hp@pobox.com>
12881
12882         Make it pass the Hello handling test including all OOM codepaths.
12883         Now to do other messages...
12884
12885         * bus/services.c (bus_service_remove_owner): fix crash when
12886         removing owner from an empty list of owners
12887         (bus_registry_ensure): don't leave service in the list of
12888         a connection's owned services if we fail to put the service
12889         in the hash table.
12890
12891         * bus/connection.c (bus_connection_preallocate_oom_error): set
12892         error flag on the OOM error.
12893
12894         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12895         handle _dbus_transport_set_connection failure
12896
12897         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12898         to create watches up front and simply enable/disable them as
12899         needed.
12900         (unix_connection_set): this can now fail on OOM
12901
12902         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12903         of enabling/disabling a watch or timeout.
12904
12905         * bus/loop.c (bus_loop_iterate): don't touch disabled
12906         watches/timeouts
12907
12908         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12909
12910 2003-03-15  Havoc Pennington  <hp@pobox.com>
12911
12912         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12913         write useful test code, after all that futzing around ;-)
12914
12915         Test does not yet pass because we can't handle OOM in
12916         _dbus_transport_messages_pending (basically,
12917         dbus_connection_preallocate_send() does not prealloc the write
12918         watch). To fix this, I think we need to add new stuff to
12919         set_watch_functions, namely a SetEnabled function so we can alloc
12920         the watch earlier, then enable it later.
12921
12922         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12923         dbus-memory.c to the convenience lib
12924
12925         * bus/test.c: rename some static functions to keep them clearly
12926         distinct from stuff in connection.c. Handle client disconnection.
12927
12928 2003-03-14  Havoc Pennington  <hp@pobox.com>
12929
12930         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12931         transport, tests more of the real codepath. Set up clients
12932         with bus_setup_debug_client.
12933
12934         * bus/test.c (bus_setup_debug_client): function to set up debug
12935         "clients" on the main loop
12936
12937         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12938         support
12939
12940         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12941         server type
12942
12943         * dbus/dbus-server-debug.c: support a debug server based on pipes
12944
12945         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12946         (_dbus_close): new function
12947
12948         * configure.in: check for socketpair
12949
12950 2003-03-14  Havoc Pennington  <hp@redhat.com>
12951
12952         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12953         cheesy hack
12954
12955         * dbus/dbus-transport-debug.c: rework this a good bit to be
12956         less complicated. hopefully still works.
12957
12958         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12959         manually
12960
12961         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12962         after running it
12963
12964         * dbus/dbus-message.c (dbus_message_copy): rename from
12965         dbus_message_new_from_message, fix it up to copy
12966         all the message fields, add test case
12967
12968         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12969         not quite passing yet
12970
12971 2003-03-14  Havoc Pennington  <hp@pobox.com>
12972
12973         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12974         until no work remains" in test code. (the large diff here
12975         is just code movement, no actual changes)
12976
12977         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12978         1, no point waiting around for test code.
12979         (_dbus_server_debug_accept_transport): unref the timeout
12980         after adding it (right?)
12981
12982         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12983
12984 2003-03-13  Havoc Pennington  <hp@redhat.com>
12985
12986         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12987         out of memory
12988
12989         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12990         of memory
12991
12992         * dbus/dbus-connection.h: Make AddWatchFunction and
12993         AddTimeoutFunction return a bool so they can fail on out-of-memory
12994
12995         * bus/bus.c (bus_context_new): set up timeout handlers
12996
12997         * bus/connection.c (bus_connections_setup_connection): set up
12998         timeout handlers
12999
13000         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
13001         can fail
13002
13003         * bus/bus.c (bus_context_new): adapt to changes
13004
13005         * bus/connection.c: adapt to changes
13006
13007         * test/watch.c: adapt to DBusWatch changes
13008
13009         * bus/dispatch.c (bus_dispatch_test): started adding this but
13010         didn't finish
13011
13012 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
13013
13014         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
13015
13016 2003-03-13  Havoc Pennington  <hp@pobox.com>
13017
13018         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
13019         set up a test framework as for the library
13020
13021 2003-03-12  Havoc Pennington  <hp@pobox.com>
13022
13023         Throughout: purge global variables, introduce BusActivation,
13024         BusConnections, BusRegistry, etc. objects instead.
13025
13026         * bus/bus.h, bus/bus.c: introduce BusContext as a global
13027         message bus object
13028
13029         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
13030         going to redo this a bit differently I think
13031
13032 2003-03-12  Havoc Pennington  <hp@redhat.com>
13033
13034         Mega-patch that gets the message bus daemon initially handling
13035         out-of-memory. Work still needed. Also lots of random
13036         moving stuff to DBusError instead of ResultCode.
13037
13038         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
13039
13040         * dbus/dbus-connection.c
13041         (dbus_connection_send_with_reply_and_block): use DBusError
13042
13043         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
13044         DBusResultCode
13045
13046         * dbus/dbus-connection.c (dbus_connection_send): drop the result
13047         code here, as the only failure possible is OOM.
13048
13049         * bus/connection.c (bus_connection_disconnect):
13050         rename bus_connection_disconnected as it's a notification only
13051
13052         * bus/driver.c (bus_driver_handle_acquire_service): don't free
13053         "name" on get_args failure, should be done by get_args;
13054         don't disconnect client for bad args, just return an error.
13055         (bus_driver_handle_service_exists): ditto
13056
13057         * bus/services.c (bus_services_list): NULL-terminate returned array
13058
13059         * bus/driver.c (bus_driver_send_service_lost)
13060         (bus_driver_send_service_acquired): send messages from driver to a
13061         specific client to the client's unique name, not to the broadcast
13062         service.
13063
13064         * dbus/dbus-message.c (decode_header_data): reject messages that
13065         contain no name field
13066         (_dbus_message_get_client_serial): rename to
13067         dbus_message_get_serial and make public
13068         (_dbus_message_set_serial): rename from set_client_serial
13069         (_dbus_message_set_reply_serial): make public
13070         (_dbus_message_get_reply_serial): make public
13071
13072         * bus/connection.c (bus_connection_foreach): allow stopping
13073         iteration by returning FALSE from foreach function.
13074
13075         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
13076         (dbus_connection_free_preallocated_send)
13077         (dbus_connection_preallocate_send): new API for sending a message
13078         without possibility of malloc failure.
13079         (dbus_connection_send_message): rename to just
13080         dbus_connection_send (and same for whole function family)
13081
13082         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
13083
13084         * dbus/dbus-sysdeps.c (_dbus_exit): new function
13085
13086         * bus/activation.c: handle/return errors
13087
13088         * dbus/dbus-errors.h: add more DBUS_ERROR #define
13089
13090         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
13091         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
13092         (_dbus_result_from_errno): move to this file
13093
13094 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
13095
13096         * dbus/dbus-marshal.c:
13097         (_dbus_marshal_set_string):
13098         Take a length argument so we can marshal the correct string
13099         length.
13100
13101         (_dbus_marshal_dict), (_dbus_demarshal_dict),
13102         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
13103         (_dbus_marshal_test):
13104         * dbus/dbus-marshal.h:
13105         Add support for marshalling and demarshalling dicts.
13106
13107         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13108         Add support for TYPE DICT.
13109
13110         * dbus/dbus-message.c: (set_string_field):
13111         Adjust header padding.
13112
13113         (dbus_message_append_args_valist), (dbus_message_append_dict),
13114         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
13115         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
13116         (check_message_handling), (check_have_valid_message):
13117         * dbus/dbus-message.h:
13118         Add functions for setting and getting dicts.
13119
13120         * dbus/dbus-protocol.h:
13121         Add DBUS_TYPE_DICT.
13122
13123         * dbus/dbus.h:
13124         Add dbus-dict.h
13125
13126         * doc/dbus-specification.sgml:
13127         Add information about how dicts are marshalled.
13128
13129         * test/data/invalid-messages/dict-with-nil-value.message:
13130         * test/data/invalid-messages/too-short-dict.message:
13131         * test/data/valid-messages/dict-simple.message:
13132         * test/data/valid-messages/dict.message:
13133         Add sample messages containing dicts.
13134
13135 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
13136
13137         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
13138
13139 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13140
13141         * dbus/Makefile.am:
13142         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13143         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
13144         (dbus_dict_set_int32), (dbus_dict_set_uint32),
13145         (dbus_dict_set_double), (dbus_dict_set_string),
13146         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
13147         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
13148         (dbus_dict_set_string_array), (_dbus_dict_test):
13149         * dbus/dbus-dict.h:
13150         Fix according to comments from Havoc.
13151
13152 2003-03-06  Michael Meeks  <michael@server.home>
13153
13154         * configure.in: if we don't have kde-config, disable have_qt.
13155
13156 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13157
13158         * dbus/Makefile.am:
13159         Add dbus-dict.[ch]
13160
13161         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13162         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
13163         (dbus_dict_remove), (dbus_dict_get_value_type),
13164         (dbus_dict_get_keys), (dbus_dict_put_boolean),
13165         (dbus_dict_put_int32), (dbus_dict_put_uint32),
13166         (dbus_dict_put_double), (dbus_dict_put_string),
13167         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
13168         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
13169         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
13170         (dbus_dict_get_int32), (dbus_dict_get_uint32),
13171         (dbus_dict_get_double), (dbus_dict_get_string),
13172         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
13173         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
13174         (dbus_dict_get_string_array), (_dbus_dict_test):
13175         * dbus/dbus-dict.h:
13176         Add DBusDict implementation
13177
13178         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
13179         * dbus/dbus-test.h:
13180         Add _dbus_dict_test
13181
13182 2003-03-04  Havoc Pennington  <hp@pobox.com>
13183
13184         * test/data/auth/*: adapt to changes
13185
13186         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
13187         USERID_BASE64 and change USERNAME_BASE64 to put in username not
13188         userid
13189
13190         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
13191         more stuff from being in a context name, to make the protocol
13192         simpler to deal with
13193
13194         * dbus/dbus-errors.c (dbus_error_has_name): new function
13195         (dbus_error_is_set): new function
13196
13197         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
13198         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
13199
13200         * dbus/dbus-connection.c (dbus_connection_flush): also read
13201         messages during a flush operation
13202
13203         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
13204
13205 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13206
13207         * configure.in: Check for gethostbyname on Solaris.
13208
13209         * dbus/dbus-transport.c: (_dbus_transport_open):
13210         Remove duplicate "tcp" entry.
13211
13212         * doc/dbus-specification.sgml:
13213         Clarify some things.
13214
13215 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13216
13217         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
13218         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
13219         (_dbus_keyring_test):
13220         * dbus/dbus-md5.c: (_dbus_md5_compute):
13221         * dbus/dbus-sha.c: (_dbus_sha_compute):
13222         Plug memory leaks.
13223
13224 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13225
13226         * README: Add some things.
13227
13228 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
13229
13230         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
13231         after case DBUS_TYPE_BOOELAN.
13232
13233 2003-03-02  Havoc Pennington  <hp@pobox.com>
13234
13235         * test/break-loader.c (randomly_set_extreme_ints): add test that
13236         sets really huge and small integers
13237
13238         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
13239         that length of boolean array fits in the string, and that
13240         string has room for boolean value in single-bool case.
13241
13242         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
13243         optional value to "ALIGN" command which is what to fill the
13244         alignment with.
13245
13246         * test/data/valid-messages/no-padding.message: add regression
13247         test for the message padding problem
13248
13249 2003-03-02  Havoc Pennington  <hp@pobox.com>
13250
13251         * dbus/dbus-message.c (decode_header_data): fix to always init
13252         message_padding, from Benjamin Dauvergne
13253
13254 2003-03-02  Havoc Pennington  <hp@pobox.com>
13255
13256         * configure.in: 0.5
13257
13258         * NEWS: Update.
13259
13260 2003-03-01  Joe Shaw  <joe@assbarn.com>
13261
13262         * configure.in: Check for "struct cmsgcred" and try to access its
13263         members for BSD-like unices.
13264
13265         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
13266         _dbus_read_credentials_unix_socket().
13267         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
13268         read() for reading the credential byte off the unix socket.  Use
13269         struct cmsgcred on systems that support it.
13270
13271 2003-02-27  Alexander Larsson  <alexl@redhat.com>
13272
13273         * glib/Makefile.am:
13274         * configure.in:
13275         Make gthreads-2.0 dependency optional. Don't build thread test if
13276         its not found.
13277
13278 2003-02-27  Havoc Pennington  <hp@pobox.com>
13279
13280         * dbus/dbus-connection.c
13281         (dbus_connection_send_message_with_reply_and_block): fix doh!
13282         doh! doh! bug that resulted in never removing a reply from the
13283         queue, no wonder we called get_reply_serial so much ;-)
13284
13285         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
13286         and client serial instead of demarshaling them every time
13287
13288 2003-02-27  Havoc Pennington  <hp@pobox.com>
13289
13290         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
13291         more inlined, using dbus-string-private.h, speeds things up
13292         substantially
13293
13294         * dbus/dbus-string.c (_dbus_string_free): apply align offset
13295         when freeing the string
13296         (_dbus_string_steal_data): fix for align offset
13297         (undo_alignment): new function
13298
13299 2003-02-26  Havoc Pennington  <hp@redhat.com>
13300
13301         All kinds of audit fixes from Owen, plus initial attempt to
13302         handle unaligned memory returned from malloc.
13303
13304         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
13305         leave room for align_offset and nul byte
13306         (fixup_alignment): function to track an align_offset and
13307         ensure real->str is aligned
13308         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
13309         to allow a nul byte plus align offset
13310         (_dbus_string_lock): fix overflow issue
13311         (_dbus_string_init_const_len): add assertions on sanity of len,
13312         assign allocated to be ALLOCATION_PADDING larger than len
13313         (set_length): fixup the overflow handling
13314         (_dbus_string_get_data_len): fix overflow in assertion
13315         (open_gap): detect overflow in size of gap to be opened
13316         (_dbus_string_lengthen): add overflow check
13317         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
13318         (_dbus_string_append): add overflow check
13319         (_dbus_string_append_unichar): overflow
13320         (_dbus_string_delete): fix overflow in assertion
13321         (_dbus_string_copy_len): overflow in assertion
13322         (_dbus_string_replace_len): overflows in assertions
13323         (_dbus_string_find): change to implement in terms of
13324         _dbus_string_find_to
13325         (_dbus_string_find_to): assorted fixage
13326         (_dbus_string_equal_c_str): assert c_str != NULL,
13327         fix logic so the function works
13328         (_dbus_string_ends_with_c_str): fix overflow thingy
13329         (_dbus_string_base64_encode): overflow fix
13330         (_dbus_string_validate_ascii): overflow
13331         (_dbus_string_validate_nul): overflow
13332
13333 2003-02-26  Havoc Pennington  <hp@redhat.com>
13334
13335         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
13336
13337 2003-02-26  Alexander Larsson  <alexl@redhat.com>
13338
13339         * configure.in:
13340         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
13341
13342         * dbus/dbus-connection.c:
13343         * dbus/dbus-connection.h:
13344         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13345         Add dbus_connection_set_wakeup_main_function and use it when queueing
13346         incoming and outgoing messages.
13347
13348
13349         * dbus/dbus-dataslot.c:
13350         Threadsafe usage of DBusDataSlotAllocator
13351
13352         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13353         dbus_new can fail.
13354
13355         * dbus/dbus-server-unix.c:
13356         Add todo comment
13357
13358         * glib/dbus-gmain.c:
13359         Implement the new wakeup functions for glib.
13360
13361         * glib/Makefile.am:
13362         * glib/test-thread-client.c:
13363         * glib/test-thread-server.c:
13364         * glib/test-thread.h:
13365         Initial cut at some thread test code. Not really done yet.
13366
13367 2003-02-26  Havoc Pennington  <hp@pobox.com>
13368
13369         * dbus/dbus-connection.c
13370         (dbus_connection_send_message_with_reply_and_block): fix crash
13371         where we ref'd the outgoing message instead of the returned reply
13372
13373         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13374         at the end of this function, so if we didn't need to read for
13375         authentication, we reinstall it for receiving messages
13376
13377         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13378         a NULL sender for peer-to-peer case
13379
13380         * dbus/dbus-transport-unix.c (check_read_watch): handle
13381         !authenticated case correctly
13382
13383         * glib/dbus-gmain.c: add support for DBusServer
13384
13385         * dbus/dbus-server.c: add data slot support
13386
13387         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13388         return values and handle errors
13389
13390         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13391         DBusConnection
13392
13393         * Doxyfile.in (INPUT): add glib subdir
13394
13395         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13396         setup_with_g_main instead of hookup_with_g_main; write docs
13397
13398 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13399
13400         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13401         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13402         * dbus/dbus-message.c: (dbus_message_append_boolean),
13403         (dbus_message_append_boolean_array),
13404         (dbus_message_get_args_valist), (_dbus_message_test):
13405         * dbus/dbus-message.h:
13406         * doc/dbus-specification.sgml:
13407         Various fixes as pointed out by Havoc.
13408
13409         * test/data/invalid-messages/bad-boolean-array.message:
13410         * test/data/invalid-messages/bad-boolean.message:
13411         Add invalid boolean value test cases.
13412
13413 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13414
13415         * dbus/dbus-internals.c: (_dbus_type_to_string):
13416         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13417         (_dbus_marshal_validate_arg):
13418         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13419         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13420         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13421         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13422         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13423         (dbus_message_iter_get_double),
13424         (dbus_message_iter_get_boolean_array), (message_iter_test):
13425         * dbus/dbus-message.h:
13426         * dbus/dbus-protocol.h:
13427         * doc/dbus-specification.sgml:
13428         * test/data/valid-messages/lots-of-arguments.message:
13429         Add support for boolean and boolean array types.
13430
13431 2003-02-23  Havoc Pennington  <hp@pobox.com>
13432
13433         * dbus/dbus-keyring.c: finish most of this implementation and
13434         simple unit test
13435
13436         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13437         these barf if the error isn't cleared to NULL
13438
13439         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13440         (_dbus_create_directory): new function
13441
13442         * dbus/dbus-errors.c (dbus_set_error): fix warning
13443
13444         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13445         (_dbus_string_hex_decode): new function
13446         (test_hex_roundtrip): test code
13447
13448         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13449
13450         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13451
13452         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13453         the save-to-temp/rename trick to atomically write the new file
13454         (_dbus_string_parse_uint): new function
13455
13456 2003-02-22  Havoc Pennington  <hp@pobox.com>
13457
13458         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13459
13460 2003-02-22  Havoc Pennington  <hp@pobox.com>
13461
13462         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13463         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13464
13465         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13466
13467         * dbus/test/data/sha-1: add US government test suite for SHA-1
13468
13469 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13470
13471         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13472         Make string arrays NULL-terminated.
13473
13474         * dbus/dbus-memory.c: (dbus_free_string_array):
13475         * dbus/dbus-memory.h:
13476         New function for freeing NULL-terminated string arrays.
13477
13478         * dbus/dbus-message-builder.c: (append_quoted_string),
13479         (_dbus_message_data_load):
13480         Add support for array types.
13481
13482         * dbus/dbus-message.c: (check_message_handling):
13483         Add more types as test cases.
13484
13485         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13486         (_dbus_string_parse_double):
13487         Add the start offset to the end offset.
13488
13489         * test/data/valid-messages/lots-of-arguments.message:
13490         New test message with lots of arguments.
13491
13492 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13493
13494         * dbus/dbus-message.c: (dbus_message_append_nil),
13495         (dbus_message_append_int32), (dbus_message_append_uint32),
13496         (dbus_message_append_double), (dbus_message_append_string),
13497         (dbus_message_append_int32_array),
13498         (dbus_message_append_uint32_array),
13499         (dbus_message_append_double_array),
13500         (dbus_message_append_byte_array),
13501         (dbus_message_append_string_array):
13502         Fix all out-of-memory handling in these functions.
13503
13504 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13505
13506         * dbus/dbus-message.c: (dbus_message_append_nil):
13507         Fix a silly.
13508
13509 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13510
13511         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13512         (dbus_message_append_nil), (dbus_message_append_int32_array),
13513         (dbus_message_append_uint32_array),
13514         (dbus_message_append_double_array),
13515         (dbus_message_append_byte_array),
13516         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13517         (dbus_message_iter_get_int32_array),
13518         (dbus_message_iter_get_uint32_array),
13519         (dbus_message_iter_get_double_array),
13520         (dbus_message_iter_get_byte_array),
13521         (dbus_message_iter_get_string_array):
13522
13523         * dbus/dbus-message.h:
13524         Add functions for appending and getting arrays.
13525
13526 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13527
13528         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13529         element size at least 8 bytes, fixes mempool tests on
13530         64-bit machines.
13531
13532 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13533
13534         * dbus/dbus-transport-unix.c (unix_do_iteration):
13535         Unlock the connection mutex during a blocking select call.
13536         Add todo about how we need a way to wake up the select.
13537
13538         * dbus/dbus-connection-internal.h:
13539         * dbus/dbus-connection.c:
13540         Add _dbus_connection_lock and _dbus_connection_unlock.
13541
13542 2003-02-19  Havoc Pennington  <hp@pobox.com>
13543
13544         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13545         Doxyfile.in, not Doxyfile
13546
13547         * dbus/dbus-keyring.c: do some hacking on this
13548
13549         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13550
13551         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13552         dbus_error_init
13553         (dbus_set_error): remove dbus_error_init, check for message ==
13554         NULL *before* we sprintf into it, and add @todo about including
13555         system headers in this file
13556
13557         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13558
13559         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13560
13561         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13562         get various bits of user information based on either username
13563         or user ID
13564         (_dbus_homedir_from_username): new function
13565
13566 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13567
13568         * configure.in:
13569         Add check for nonposix getpwnam_r
13570
13571         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13572         Align the pool element size to a sizeof (void *) boundary.
13573
13574         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13575         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13576         General Solaris fixes.
13577
13578         * test/data/valid-messages/simplest-manual.message:
13579         Explicitly state that we want little-endian packing.
13580
13581 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13582
13583         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13584
13585         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13586         Added to create a transport connecting using a tcp/ip socket.
13587
13588         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13589         to a tcp socket at given host and port.
13590         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13591         hostname and port.
13592
13593         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13594
13595         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13596         Added to create a server listening on a TCP/IP socket.
13597
13598 2003-02-19  Havoc Pennington  <hp@pobox.com>
13599
13600         Throughout: mop up all the Doxygen warnings and undocumented
13601         stuff.
13602
13603         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13604         to search any paths.
13605
13606         * dbus/dbus-threads.c: move global mutex initializers to
13607         dbus-internals.h, multiple prototypes was confusing doxygen
13608         besides being kind of ugly
13609
13610         * Doxyfile (PREDEFINED): have Doxygen define
13611         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13612         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13613         (do not abuse the feature! it's for stuff like the autogenerated
13614         macros in dbus-md5.c, not just for things you don't feel like
13615         documenting...)
13616
13617 2003-02-18  Havoc Pennington  <hp@pobox.com>
13618
13619         * dbus/dbus-string.c (_dbus_string_zero): new function
13620
13621         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13622         wrap it in some dbus-friendly API
13623
13624         * dbus/dbus-types.h: add 16-bit types
13625
13626 2003-02-18  Joe Shaw  <joe@assbarn.com>
13627
13628         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13629         credentials from our currently running process.
13630         (get_word): Fix a buglet where we were copying the entire length
13631         instead of relative to our position.
13632
13633         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13634         keys on the stack... it's 640k of data.
13635
13636         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13637         read the credentials byte off the socket, even if we don't have
13638         SO_PEERCRED.
13639         (_dbus_poll): Implement poll() using select() for systems which
13640         don't have it.
13641
13642         * glib/test-dbus-glib.c (main): Print out an error if no
13643         parameters are given.
13644
13645         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13646         can fallback to a secondary auth mechanism if the first fails.
13647
13648 2003-02-18  Havoc Pennington  <hp@pobox.com>
13649
13650         * AUTHORS: add Alex
13651
13652 2003-02-17  Havoc Pennington  <hp@pobox.com>
13653
13654         * doc/dbus-specification.sgml: lots of cosmetic
13655         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13656         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13657         s/server/bus/ (except in authentication section). Add a section
13658         "Message Bus Message Routing"
13659
13660 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13661
13662         Release 0.4
13663
13664         * NEWS: Update
13665
13666 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13667
13668         * doc/dbus-specification.sgml:
13669         Specification updates.
13670
13671 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13672
13673         * bus/activation.c: (bus_activation_init), (child_setup),
13674         (bus_activation_activate_service):
13675         * bus/activation.h:
13676         * bus/main.c: (main):
13677         Set DBUS_ADDRESS environment variable.
13678
13679         * dbus/dbus-errors.c: (dbus_set_error):
13680         Don't use va_copy since that's a C99 feature.
13681
13682         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13683         (_dbus_spawn_async):
13684         * dbus/dbus-sysdeps.h:
13685         Add child_setup_func to _dbus_spawn_async.
13686
13687         * doc/dbus-specification.sgml:
13688         Update specification.
13689
13690         * test/spawn-test.c: (setup_func), (main):
13691         Fix test.
13692
13693 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13694
13695         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13696         Added todo.
13697
13698 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13699
13700         * doc/.cvsignore:
13701         * doc/Makefile.am:
13702         * doc/dbus-test-plan.sgml:
13703         Add test plan document.
13704
13705         * test/Makefile.am:
13706         Fix distcheck.
13707
13708 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13709
13710         * dbus/dbus-message.c: (decode_header_data),
13711         (_dbus_message_loader_return_buffer):
13712         Set the header padding amount when loading a message.
13713
13714 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13715
13716         * bus/dispatch.c: (send_one_message):
13717         Only send broadcast messages to registered connections.
13718
13719         * dbus/dbus-message.c: (dbus_message_name_is):
13720         * dbus/dbus-message.h:
13721         New convenience function.
13722
13723         * dbus/dbus-transport-debug.c: (do_reading):
13724         Only dispatch one message per run.
13725
13726         * test/Makefile.am:
13727         * test/bus-test.c: (new_connection_callback), (die),
13728         (test_hello_client1_handler), (test_hello_client2_handler),
13729         (test_hello_replies), (main):
13730
13731         * test/bus-test-loop.[ch]:
13732         Add these.
13733
13734 2003-02-16  Havoc Pennington  <hp@pobox.com>
13735
13736         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13737         backward conditional
13738
13739 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13740
13741         * dbus/dbus-connection.c:
13742         Implement sent_message_with_reply. (with_reply_and block is still
13743         busted).
13744         Made dispatch_message not lose message if OOM.
13745
13746         * dbus/dbus-errors.h:
13747         Add NoReply error (for reply timeouts).
13748
13749 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13750
13751         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13752         Actually free keys and values when destroying hashtable.
13753
13754 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13755
13756         * dbus/dbus-auth.c: (client_try_next_mechanism):
13757         Plug a leak.
13758
13759         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13760         Return TRUE if there's no thread implementation around.
13761
13762         * glib/dbus-gmain.c: (free_source),
13763         (dbus_connection_hookup_with_g_main):
13764         Make sure to remove the GSource when the connection is finalized.
13765
13766 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13767
13768         * bus/dispatch.c: (bus_dispatch_message_handler):
13769         * dbus/dbus-errors.h:
13770         Return an error if someone tries to send a message to a service
13771         that doesn't exist.
13772
13773 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13774
13775         * bus/activation.c: (load_directory), (bus_activation_init),
13776         (bus_activation_activate_service):
13777         * bus/activation.h:
13778         * bus/driver.c:
13779         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13780         More work on the activation handling.
13781
13782         * dbus/dbus-errors.h:
13783         Add some error messages
13784
13785         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13786         * dbus/dbus-message.h:
13787         New function that creates an error message.
13788
13789         * dbus/dbus-protocol.h:
13790         Add ACTIVATE_SERVER message.
13791
13792         * dbus/dbus-server-unix.c: (unix_handle_watch),
13793         (_dbus_server_new_for_domain_socket):
13794         Call _dbus_fd_set_close_on_exec.
13795
13796         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13797         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13798         (_dbus_fd_set_close_on_exec):
13799         * dbus/dbus-sysdeps.h:
13800         Add _dbus_fd_set_close_on exec function. Also add function that checks
13801         that all open fds are set to close-on-exec and warns otherwise.
13802
13803         * dbus/dbus-transport-unix.c:
13804         (_dbus_transport_new_for_domain_socket):
13805         Call _dbus_fd_set_close_on_exec.
13806
13807 2003-02-16  Havoc Pennington  <hp@pobox.com>
13808
13809         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13810         allow people to avoid setting SIGPIPE to SIG_IGN
13811         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13812         we've been asked not to
13813
13814 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13815
13816         * dbus/dbus-list.c: (_dbus_list_append_link),
13817         (_dbus_list_prepend_link):
13818         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13819         (dbus_realloc):
13820         Warning fixes.
13821
13822 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13823
13824         * bus/Makefile.am:
13825         * bus/activation.c: (bus_activation_entry_free),
13826         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13827         * bus/activation.h:
13828         * bus/main.c: (main):
13829         Add simple activation support, doesn't work yet though.
13830
13831 2003-02-15   Zack Rusin  <zack@kde.org>
13832
13833         * qt/dbus-qthread.cpp:  small casting fix
13834
13835 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13836
13837         * dbus/dbus-errors.c: (dbus_set_error):
13838         * dbus/dbus-errors.h:
13839         Add a few errors and make dbus_set_error void.
13840
13841         * dbus/dbus-sysdeps.c:
13842         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13843         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13844         * dbus/dbus-sysdeps.h:
13845         Add _dbus_spawn_async.
13846
13847         * test/spawn-test.c: (main):
13848         Test for _dbus_spawn_async.
13849
13850 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13851
13852         * dbus/dbus-internals.h:
13853         Fix build without tests.
13854
13855         * dbus/dbus-list.c: (alloc_link):
13856         Fix a segfault when a malloc fails.
13857
13858         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13859         (dbus_malloc0), (dbus_realloc):
13860         Add support for malloc debugging.
13861
13862 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13863
13864         * dbus/dbus-threads.c:
13865         * dbus/dbus-threads.h:
13866         Add condvars. Remove static mutext from API.
13867         Implement static mutexes by initializing them from threads_init.
13868
13869         * glib/dbus-gthread.c:
13870         * qt/dbus-qthread.cpp:
13871         Update with the thread api changes.
13872
13873
13874         * dbus/dbus-list.c:
13875         * dbus/dbus-list.h:
13876         Turn StaticMutex into normal mutex + init function.
13877         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13878         _dbus_list_append_link, _dbus_list_prepend_link
13879
13880
13881         * dbus/dbus-sysdeps.c:
13882         * dbus/dbus-sysdeps.h:
13883         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13884         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13885
13886         * dbus/dbus-protocol.h:
13887         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13888
13889         * dbus/dbus-message.c:
13890         Make ref/unref atomic.
13891         Fix some docs.
13892
13893         * dbus/dbus-connection-internal.h:
13894         * dbus/dbus-connection.c:
13895         * dbus/dbus-connection.h:
13896         Make threadsafe.
13897         Change _peek to _borrow,_return & _steal_borrowed.
13898         Change disconnect callback to event.
13899         Make dbus_connection_dispatch_messages reentrant.
13900
13901         * dbus/dbus-transport.c:
13902         Don't ref the connection on calls to the transport
13903         implementation.
13904
13905         * dbus/dbus-message-handler.c:
13906         Make threadsafe.
13907
13908         * glib/dbus-gmain.c:
13909         Don't use peek_message anymore
13910
13911         * test/Makefile.am:
13912         * test/debug-thread.c:
13913         * test/debug-thread.h:
13914         Simple thread implementation that asserts() on deadlocks in
13915         single-threaded code.
13916
13917         * test/bus-test.c:
13918         (main) Call debug_threads_init.
13919
13920         * test/watch.c:
13921         Use disconnect message instead of disconnect callback.
13922
13923         * bus/connection.c:
13924         * bus/connection.h:
13925         Don't call dbus_connection_set_disconnect_function. Instead export
13926         bus_connection_disconnect.
13927
13928         * bus/dispatch.c:
13929         Call bus_connection_disconnect when we get a disconnected message.
13930
13931 2003-02-15  Havoc Pennington  <hp@pobox.com>
13932
13933         * dbus/dbus-message.c (dbus_message_new): fool around with the
13934         docs
13935
13936 2003-02-14  Havoc Pennington  <hp@pobox.com>
13937
13938         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13939
13940         * dbus/dbus-memory.c: fail if the debug functions indicate we
13941         should
13942
13943         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13944         (_dbus_decrement_fail_alloc_counter): debug functions to
13945         simulate memory allocation failures
13946
13947 2003-02-14  Havoc Pennington  <hp@pobox.com>
13948
13949         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13950         to DBusError
13951
13952 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13953
13954         * bus/driver.c: (bus_driver_handle_hello):
13955         * bus/driver.h:
13956         * bus/services.c: (bus_service_lookup):
13957         Reorder message sending so we get a more sane order.
13958
13959         * test/bus-test.c: (message_handler):
13960         Fix tyop.
13961
13962 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13963
13964         * bus/driver.c: (bus_driver_send_service_deleted),
13965         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13966         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13967         (bus_driver_send_welcome_message),
13968         (bus_driver_handle_list_services),
13969         (bus_driver_handle_acquire_service),
13970         (bus_driver_handle_service_exists):
13971         * dbus/dbus-bus.c: (dbus_bus_register_client),
13972         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13973         * dbus/dbus-errors.c: (dbus_result_to_string):
13974         * dbus/dbus-errors.h:
13975         * dbus/dbus-message.c: (dbus_message_append_args),
13976         (dbus_message_append_args_valist), (dbus_message_get_args),
13977         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13978         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13979         (dbus_message_iter_get_byte_array),
13980         (dbus_message_iter_get_string_array), (message_iter_test),
13981         (check_message_handling), (_dbus_message_test):
13982         * dbus/dbus-message.h:
13983         * test/bus-test.c: (main):
13984         Change fields to arguments in messages, so that they won't be
13985         confused with header fields.
13986
13987         * glib/test-dbus-glib.c: (main):
13988         Remove append_fields from hello message.
13989
13990 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13991
13992         * dbus/dbus-errors.c:
13993         * dbus/dbus-message.c:
13994         * dbus/dbus-string.c:
13995         Documentation fixes.
13996
13997 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13998
13999         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
14000         (remove_timeout):
14001         Implement support for timeouts in dbus-glib.
14002
14003 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14004
14005         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
14006         * dbus/dbus-message.c: (process_test_subdir):
14007         * test/break-loader.c: (find_breaks_based_on):
14008         Plug some memory leaks.
14009
14010 2003-02-13  Richard Hult  <rhult@codefactory.se>
14011
14012         * bus/main.c: Fix build.
14013
14014         * dbus/dbus-errors.h:
14015         * dbus/dbus-errors.c: Fix copyright for Anders.
14016
14017 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14018
14019         * bus/Makefile.am:
14020         Add utils.[ch]
14021
14022         * bus/connection.c: (bus_connection_foreach):
14023         Fix a warning.
14024
14025         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
14026         (unescape_string), (new_section), (parse_section_start),
14027         (parse_key_value), (report_error), (bus_desktop_file_load),
14028         (bus_desktop_file_get_string):
14029         * bus/desktop-file.h:
14030         Use DBusError for error reporting.
14031
14032         * bus/dispatch.c: (send_one_message),
14033         (bus_dispatch_message_handler):
14034         * bus/driver.c: (bus_driver_send_service_deleted),
14035         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14036         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
14037         (bus_driver_send_welcome_message),
14038         (bus_driver_handle_list_services),
14039         (bus_driver_handle_acquire_service),
14040         (bus_driver_handle_service_exists):
14041         * bus/loop.c: (bus_loop_run):
14042         * bus/main.c:
14043         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
14044
14045         * bus/utils.c: (bus_wait_for_memory):
14046         * bus/utils.h:
14047         New files with general utility functions.
14048
14049         * dbus/dbus-internals.h:
14050         Remove _DBUS_HANDLE_OOM.
14051
14052 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14053
14054         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
14055         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
14056         * dbus/dbus-errors.h:
14057         Add DBusError structure.
14058
14059 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14060
14061         * test/data/valid-messages/standard-acquire-service.message:
14062         * test/data/valid-messages/standard-hello.message:
14063         * test/data/valid-messages/standard-list-services.message:
14064         * test/data/valid-messages/standard-service-exists.message:
14065         Add some standard messages.
14066
14067 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14068
14069         * bus/driver.c: (bus_driver_send_welcome_message),
14070         (bus_driver_handle_list_services),
14071         (bus_driver_handle_acquire_service),
14072         (bus_driver_handle_service_exists), (bus_driver_handle_message):
14073         Update for API changes in libdbus.
14074
14075         * dbus/dbus-message.c: (dbus_message_new_reply):
14076         * dbus/dbus-message.h:
14077         Remove the name argument. The spec states that replies shouldn't
14078         have a name.
14079
14080 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14081
14082         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
14083         (report_error), (bus_desktop_file_load), (lookup_section),
14084         (lookup_line), (bus_desktop_file_get_raw),
14085         (bus_desktop_file_get_string):
14086         * bus/desktop-file.h:
14087         Some fixes, and new functions for getting a key value from a section.
14088
14089 2003-02-13  Havoc Pennington  <hp@pobox.com>
14090
14091         * test/data/auth/fail-after-n-attempts.auth-script: new test
14092
14093         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
14094         reject the client.
14095
14096 2003-02-13  Havoc Pennington  <hp@pobox.com>
14097
14098         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
14099         dbus_credentials_match were backward
14100
14101         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
14102         NO_CREDENTIALS and ROOT_CREDENTIALS
14103
14104         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
14105         into here. Never process more commands after we've reached an
14106         end state; store further data as unused bytes.
14107
14108         * test/data/auth/*: add more auth tests
14109
14110         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
14111         command to match exact string and EXPECT_UNUSED to match unused
14112         bytes
14113
14114         * test/Makefile.am (dist-hook): fix to dist all the test stuff
14115
14116 2003-02-12  Havoc Pennington  <hp@pobox.com>
14117
14118         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
14119         \r off of popped lines
14120
14121         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
14122         scripts
14123
14124         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
14125         SEND, append \r\n
14126
14127 2003-02-12  Havoc Pennington  <hp@pobox.com>
14128
14129         * dbus/Makefile.am: remove break-loader from the build, since it
14130         moved.
14131
14132         * configure.in: add --enable-gcov to turn on coverage profiling
14133         flags and disable optimization
14134
14135 2003-02-10  Havoc Pennington  <hp@pobox.com>
14136
14137         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
14138         initial cut at test framework for DBusAuth from laptop.
14139         Doesn't quite work yet but it compiles and I need to get
14140         it off the 266mhz laptop. ;-)
14141
14142         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
14143         fix a memleak in error case
14144
14145 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
14146
14147         * bus/Makefile.am:
14148         * bus/desktop-file.c:
14149         * bus/desktop-file.h:
14150         Add a desktop file parser.
14151
14152 2003-02-11  Zack Rusin  <zack@kde.org>
14153
14154         * qt/message.[h|cpp]: sample implementation
14155         of the KDE wrapper for DBusMessage
14156
14157 2003-02-09  Zack Rusin  <zack@kde.org>
14158
14159         * test/bus-test.c: make_it_compile
14160         * doc/dbus-specification.sgml: minimal semantic fix
14161
14162 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14163
14164         Release 0.3
14165
14166         * NEWS: Update
14167
14168 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14169
14170         * dbus/Makefile.am:
14171         * dbus/dbus-break-loader.c:
14172         * test/Makefile.am:
14173         * test/break-loader.c:
14174         Move dbus-break-loader to test/ and rename it to break-loader.
14175
14176 2003-02-02  Havoc Pennington  <hp@pobox.com>
14177
14178         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
14179         for code to manage cookies in your home directory
14180
14181         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
14182
14183         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
14184         to authenticate, then disconnect the client.
14185
14186 2003-02-03  Alexander Larsson  <alexl@redhat.com>
14187
14188         * dbus/dbus-message.c (dbus_message_append_fields):
14189         Correct docs.
14190
14191 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14192
14193         * doc/dbus-specification.sgml:
14194         Update address format section.
14195
14196 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14197
14198         * test/Makefile.am:
14199         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
14200         (message_handler), (new_connection_callback), (loop_quit),
14201         (loop_run), (main):
14202         Add bus test.
14203
14204 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14205
14206         * bus/driver.c: (bus_driver_handle_service_exists):
14207         Simplify the code a bit.
14208
14209         * dbus/dbus-bus.c: (dbus_bus_service_exists):
14210         Fix a silly.
14211
14212 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14213
14214         * bus/Makefile.am:
14215         Add libdbus-daemon.la and link to it.
14216
14217 2003-02-01  James Willcox  <jwillcox@gnome.org>
14218
14219         * bus/driver.c: (bus_driver_handle_own_service):
14220         Actually include the service reply code in the message.
14221
14222 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14223
14224         * bus/driver.c: (bus_driver_handle_service_exists):
14225         Don't unref the incoming message.
14226
14227 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14228
14229         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
14230
14231 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14232
14233         * dbus/dbus-server.c: (dbus_server_listen):
14234         * dbus/dbus-transport.c: (_dbus_transport_open):
14235         ifdef out the calls to the debug transport and server.
14236
14237 2003-02-02  Alexander Larsson  <alexl@redhat.com>
14238
14239         * dbus/dbus-watch.c (dbus_watch_get_flags):
14240         Add note in the docs that ERROR or HANGUP won't be returned
14241         and are assumed always on.
14242
14243         * glib/dbus-gmain.c (add_watch):
14244         Always add IO_ERR | IO_HUP
14245
14246         * dbus/dbus-message.h:
14247         Add semicolon after dbus_message_iter_get_string_array().
14248         Makes qt code build again
14249
14250 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
14251
14252         * bus/driver.c: (create_unique_client_name),
14253         (bus_driver_handle_hello):
14254         Don't take a name, just use a numeric id to identify
14255         each client.
14256
14257         * dbus/Makefile.am:
14258         * dbus/dbus-bus.c: (dbus_bus_register_client),
14259         (dbus_bus_acquire_service), (dbus_bus_service_exists):
14260         * dbus/dbus-bus.h:
14261         Add new convenience functions for communicating with the bus.
14262
14263         * dbus/dbus-message.h:
14264
14265         * dbus/dbus-protocol.h:
14266         Fix a typo.
14267
14268 2003-02-01  Alexander Larsson  <alexl@redhat.com>
14269
14270         * dbus/dbus-message.c (dbus_message_append_fields):
14271         Add some more doc comments.
14272
14273 2003-02-01  Havoc Pennington  <hp@pobox.com>
14274
14275         * dbus/dbus-break-loader.c (randomly_modify_length): change
14276         a 4-byte value in the message as if it were a length
14277
14278         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
14279         execute bit on saved files
14280
14281 2003-02-01  Havoc Pennington  <hp@pobox.com>
14282
14283         * dbus/dbus-break-loader.c (main): new program to find messages
14284         that break the loader.
14285
14286         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
14287         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
14288
14289         * dbus/dbus-string.c (_dbus_string_set_byte): new
14290
14291 2003-01-31  Havoc Pennington  <hp@pobox.com>
14292
14293         * dbus/dbus-message.c: refactor the test code to be more general,
14294         in preparation for writing a "randomly permute test cases to
14295         try to break the loader" program.
14296
14297 2003-01-31  Havoc Pennington  <hp@pobox.com>
14298
14299         * doc/dbus-specification.sgml: work on the specification
14300
14301         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
14302         the protocol version of the message.
14303
14304         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
14305         no longer specifies that.
14306         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
14307         1/2/3/4)
14308
14309         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
14310         "break" for DBUS_TYPE_NIL, remove @todo
14311
14312 2003-01-31  Havoc Pennington  <hp@pobox.com>
14313
14314         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
14315         just set_is_error/get_is_error as this is a commonly-used
14316         function, and write docs.
14317
14318 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
14319
14320         * dbus/dbus-address.c: (dbus_address_entry_free):
14321         Free key and value lists.
14322
14323         * dbus/dbus-internals.c: (_dbus_type_to_string):
14324         Add the types we didn't have.
14325
14326         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
14327         (_dbus_marshal_validate_arg):
14328         Add NIL types.
14329
14330         * dbus/dbus-message.c: (dbus_message_set_sender):
14331         Remove todo about being able to set sender to NULL.
14332
14333         (dbus_message_set_is_error_reply),
14334         (dbus_message_get_is_error_reply):
14335         * dbus/dbus-message.h:
14336         New functions.
14337
14338         * dbus/dbus-protocol.h:
14339         Add error reply flag.
14340
14341         * test/data/valid-messages/opposite-endian.message:
14342         Add NIL type to test.
14343
14344 2003-01-31  Havoc Pennington  <hp@pobox.com>
14345
14346         * doc/dbus-specification.sgml: fully specify the header.  Add
14347         flags and major protocol version, and change header/body len to
14348         unsigned.
14349
14350         * dbus/dbus-message-builder.c (append_saved_length): append length
14351         as uint32
14352
14353         * dbus/dbus-message.c (dbus_message_create_header): change header
14354         length and body length to unsigned. Add the new fields from the
14355         spec
14356         (_dbus_message_loader_return_buffer): unsigned header/body len
14357
14358 2003-01-30  Havoc Pennington  <hp@pobox.com>
14359
14360         * dbus/dbus-auth.c: rework to use only REJECTED, no
14361         MECHANISMS
14362
14363         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14364         use REJECTED, suggested by Mark McLoughlin
14365
14366 2003-01-30  Havoc Pennington  <hp@pobox.com>
14367
14368         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14369         a better way to report errors here. e.g.  "unix address lacks
14370         path" or something. also "no such file" when the path doesn't
14371         exist, etc.
14372
14373         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14374         leaking list nodes
14375         (dbus_parse_address): add @todo about documenting address format,
14376         and allowing , and ; to be escaped
14377
14378 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14379
14380         * dbus/Makefile.am:
14381         Add dbus-address.[ch]
14382
14383         * dbus/dbus-address.c: (dbus_address_entry_free),
14384         (dbus_address_entries_free), (create_entry),
14385         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14386         (dbus_parse_address), (_dbus_address_test):
14387         * dbus/dbus-address.h:
14388         New files for dealing with address parsing.
14389
14390         * dbus/dbus-connection.c:
14391         Document timeout functions.
14392
14393         * dbus/dbus-message.c:
14394         Document dbus_message_new_from_message.
14395
14396         * dbus/dbus-server-debug.c:
14397         Document.
14398
14399         * dbus/dbus-server.c: (dbus_server_listen):
14400         Parse address and use correct server implementation.
14401
14402         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14403         * dbus/dbus-string.h:
14404         New function with test.
14405
14406         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14407         * dbus/dbus-test.h:
14408         Add address tests.
14409
14410         * dbus/dbus-transport-debug.c:
14411         Document.
14412
14413         * dbus/dbus-transport.c: (_dbus_transport_open):
14414         Parse address and use correct transport implementation.
14415
14416 2003-01-30  Havoc Pennington  <hp@pobox.com>
14417
14418         * dbus/dbus-message.c: use message->byte_order instead of
14419         DBUS_COMPILER_BYTE_ORDER throughout.
14420         (dbus_message_create_header): pad header to align the
14421         start of the body of the message to 8-byte boundary
14422
14423         * dbus/dbus-marshal.h: make all the demarshalers take const
14424         DBusString arguments.
14425
14426         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14427         validate message args here, so we don't have to do slow validation
14428         later, and so we catch bad messages as they are incoming. Also add
14429         better checks on header_len and body_len. Also fill in
14430         message->byte_order
14431
14432         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14433         implemented properly)
14434         (_dbus_string_validate_nul): new function to check all-nul
14435
14436         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14437         get_arg_end_pos and remove all validation
14438         (_dbus_marshal_validate_arg): actually do validation here.
14439
14440 2003-01-29  Havoc Pennington  <hp@pobox.com>
14441
14442         * dbus/dbus-message.c (check_message_handling): fix assertion
14443         failure on set_client_serial
14444
14445 2003-01-28  Havoc Pennington  <hp@pobox.com>
14446
14447         * dbus/dbus-server-debug.c: Add doc section comments
14448
14449         * dbus/dbus-transport-debug.c: add doc section comments
14450
14451 2003-01-28  Havoc Pennington  <hp@redhat.com>
14452
14453         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14454         the reverse order from how I had it
14455         (_dbus_string_base64_encode): reverse encoding order. I was
14456         basically byteswapping everything during encoding.
14457
14458 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14459
14460         * dbus/dbus-connection-internal.h:
14461         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14462         (_dbus_connection_remove_timeout):
14463         Add functions for adding and removing timeouts.
14464
14465         * dbus/dbus-message.c: (dbus_message_new_from_message):
14466         Add new function that takes a message and creates an exact
14467         copy of it, but with the refcount set to 1.
14468         (check_message_handling):
14469         Fix build error.
14470
14471         * dbus/dbus-server-protected.h:
14472         * dbus/dbus-server.c: (_dbus_server_init_base),
14473         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14474         (dbus_server_set_timeout_functions):
14475         (_dbus_server_remove_timeout):
14476         New functions so that a server can add and remove timeouts.
14477
14478         (dbus_server_listen):
14479         Add commented out call to dbus_server_debug_new.
14480
14481         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14482         Actually set the handler, doh.
14483
14484         * dbus/dbus-transport.c: (_dbus_transport_open):
14485         Add commented out call to dbus_transport_debug_client_new.
14486
14487         * dbus/Makefile.am:
14488         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14489
14490 2003-01-28  Havoc Pennington  <hp@pobox.com>
14491
14492         * dbus/dbus-message.c (check_message_handling): function to check
14493         on the loaded message, iterates over it etc.
14494
14495 2003-01-28  Havoc Pennington  <hp@pobox.com>
14496
14497         * test/Makefile.am (dist-hook): fix make distdir
14498
14499         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14500
14501 2003-01-27  Havoc Pennington  <hp@pobox.com>
14502
14503         * dbus/dbus-mempool.c (time_for_size): replace printf with
14504         _dbus_verbose
14505
14506         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14507         empty lines; fix the SAVE_LENGTH stuff to be
14508         START_LENGTH/END_LENGTH so it actually works; couple other
14509         bugfixes
14510
14511         * test/Makefile.am (dist-hook): add dist-hook for .message files
14512
14513         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14514         can be constant or locked.
14515         (_dbus_string_free): allow freeing a const string as
14516         documented/intended
14517
14518         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14519
14520         * dbus/dbus-test-main.c (main): take an argument which is the
14521         directory containing test data
14522
14523         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14524         argument to this and load all the messages in test/data/
14525         checking that they can be loaded or not loaded as appropriate.
14526
14527 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14528
14529         * bus/dispatch.c: (bus_dispatch_message_handler):
14530         Dispatch messages sent to services.
14531
14532         * bus/driver.c: (bus_driver_send_service_deleted),
14533         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14534         (bus_driver_send_service_acquired):
14535         Add helper functions for sending service related messages.
14536
14537         (bus_driver_send_welcome_message):
14538         Send HELLO_REPLY instead of WELCOME.
14539
14540         (bus_driver_handle_list_services):
14541         Send LIST_SERVICES_REPLY instead of SERVICES.
14542
14543         (bus_driver_handle_own_service),
14544         (bus_driver_handle_service_exists):
14545         New message handlers.
14546
14547         (bus_driver_handle_message):
14548         Invoke new message handlers.
14549
14550         (bus_driver_remove_connection):
14551         Don't remove any services here since that's done automatically
14552         by bus_service_remove_owner now.
14553
14554         * bus/driver.h:
14555         New function signatures.
14556
14557         * bus/services.c: (bus_service_add_owner):
14558         Send ServiceAcquired message if we're the only primary owner.
14559
14560         (bus_service_remove_owner):
14561         Send ServiceAcquired/ServiceLost messages.
14562
14563         (bus_service_set_prohibit_replacement),
14564         (bus_service_get_prohibit_replacement):
14565         Functions for setting prohibit replacement.
14566
14567         (bus_service_has_owner):
14568         New function that checks if a connection is in the owner queue of
14569         a certain service.
14570
14571         * bus/services.h:
14572         Add new function signatures.
14573
14574         * dbus/dbus-list.c: (_dbus_list_test):
14575         Add tests for _dbus_list_remove_last and traversing the list backwards.
14576
14577         * dbus/dbus-list.h:
14578         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14579         go any further, so return NULL then.
14580
14581         * dbus/dbus-protocol.h:
14582         Add new messages, service flags and service replies.
14583
14584 2003-01-26  Havoc Pennington  <hp@pobox.com>
14585
14586         * dbus/dbus-message-builder.c: implement, completely untested.
14587
14588         * test/data/*: add data to be used in testing.
14589         ".message" files are our simple loadable text format.
14590         ".message-raw" will be binary dumps of messages.
14591
14592         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14593
14594 2003-01-26  Havoc Pennington  <hp@pobox.com>
14595
14596         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14597
14598         * dbus/dbus-errors.c (dbus_result_to_string): add
14599         file errors
14600
14601         * dbus/dbus-message-builder.c: new file, will contain code to load
14602         up messages from files. Not implemented yet.
14603
14604 2003-01-26  Havoc Pennington  <hp@pobox.com>
14605
14606         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14607         the sender by setting to NULL
14608
14609 2003-01-26  Havoc Pennington  <hp@pobox.com>
14610
14611         The unit tests pass, but otherwise untested.  If it breaks, the
14612         tests should have been better. ;-)
14613
14614         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14615         the connection.
14616
14617         * dbus/dbus-message.c: redo everything so we maintain
14618         message->header as the only copy of the various fields.
14619         This avoids the possibility of out-of-memory in some cases,
14620         for example dbus_message_lock() can't run out of memory anymore,
14621         and avoids extra copying. Figured I may as well go ahead and do
14622         this since it was busted for dbus_message_lock to not return
14623         failure on OOM, and dbus_message_write_header was totally
14624         unchecked for OOM. Also fixed some random other bugs.
14625
14626         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14627         that strings are nul-terminated. Also, end_pos can be equal
14628         to string length just not greater than, I think.
14629         (_dbus_marshal_set_int32): new function
14630         (_dbus_marshal_set_uint32): new function
14631         (_dbus_marshal_set_string): new function
14632
14633         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14634         a warning, init timeout_list to NULL
14635         (dbus_connection_send_message): don't use uninitialized variable
14636         "serial"
14637
14638         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14639
14640 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14641
14642         * bus/driver.c: (bus_driver_handle_hello),
14643         (bus_driver_send_welcome_message):
14644         Plug leaks
14645
14646 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14647
14648         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14649         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14650         (dbus_connection_unref):
14651         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14652         * dbus/dbus-message.c: (dbus_message_unref),
14653         Plug memory leaks.
14654
14655         (dbus_message_get_fields):
14656         Remove debugging printout.
14657
14658         (_dbus_message_loader_return_buffer):
14659         Don't store the header string.
14660
14661         (_dbus_message_test):
14662         Plug leaks.
14663
14664 2003-01-26  Richard Hult  <rhult@codefactory.se>
14665
14666         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14667         the file descriptor list, since it can change under us.
14668
14669 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14670
14671         * glib/dbus-gmain.c: (dbus_connection_prepare),
14672         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14673         (remove_watch), (dbus_connection_hookup_with_g_main):
14674         Rewrite the glib handling to use its own GSource instead of a
14675         GIOChannel so we can catch messages put in the queue while waiting
14676         for a reply.
14677
14678 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14679
14680         * bus/Makefile.am:
14681         * bus/connection.c: (connection_disconnect_handler),
14682         (connection_watch_callback), (bus_connection_setup):
14683         * bus/dispatch.c: (send_one_message),
14684         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14685         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14686         * bus/dispatch.h:
14687         * bus/driver.c: (bus_driver_send_service_deleted),
14688         (bus_driver_send_service_created), (bus_driver_handle_hello),
14689         (bus_driver_send_welcome_message),
14690         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14691         (bus_driver_handle_message):
14692         * bus/driver.h:
14693         Refactor code, put the message dispatching in its own file. Use
14694         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14695         is disconnected.
14696
14697 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14698
14699         * dbus/dbus-internals.h:
14700         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14701
14702         * dbus/dbus-message.c: (dbus_message_get_sender):
14703         * dbus/dbus-message.h:
14704         Implement dbus_message_get_sender.
14705
14706         * dbus/dbus-protocol.h:
14707         Add message and service defines.
14708
14709 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14710
14711         * dbus/dbus-connection.c: (dbus_connection_send_message):
14712         * dbus/dbus-message-internal.h:
14713         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14714         (dbus_message_write_header):
14715         Remove _dbus_messag_unlock and don't set the client serial on a
14716         message if one already exists.
14717
14718 2003-01-24  Havoc Pennington  <hp@pobox.com>
14719
14720         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14721         list_pool
14722
14723         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14724         on OOM
14725
14726 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14727
14728         * dbus/dbus-list.c: (alloc_link), (free_link):
14729         Use a memory pool for the links.
14730
14731 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14732
14733         * bus/connection.c: (bus_connection_foreach):
14734         * bus/connection.h:
14735         Add new bus_connection_foreach function.
14736
14737         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14738         Add function that broadcasts a message to all clients.
14739
14740         (bus_driver_send_service_created), (bus_driver_handle_hello),
14741         (bus_driver_send_welcome_message),
14742         (bus_driver_handle_list_services), (bus_driver_message_handler):
14743         Implement functions that take care of listing services, and notifying
14744         clients when new services are created.
14745
14746         * bus/services.c: (bus_services_list):
14747         * bus/services.h:
14748         Add new function that returns an array of strings with the currently
14749         registered services.
14750
14751         * glib/dbus-glib.h:
14752         * glib/dbus-gmain.c:
14753         Update copyright year.
14754
14755 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14756
14757         * dbus/dbus-connection.c: (dbus_connection_send_message):
14758         Unlock the message in case it was sent earlier.
14759
14760         (dbus_connection_send_message_with_reply_and_block):
14761         Remove the reply message from the list.
14762
14763         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14764         Set array_len and new_pos correctly.
14765
14766         (_dbus_marshal_test):
14767         Remove debug output.
14768
14769         * dbus/dbus-message-internal.h:
14770         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14771         New function that returns the reply serial.
14772
14773         (_dbus_message_unlock):
14774         New function that unlocks a message and resets its header.
14775
14776         (dbus_message_append_string_array),
14777         (dbus_message_get_fields_valist),
14778         (dbus_message_iter_get_field_type),
14779         (dbus_message_iter_get_string_array),
14780         (dbus_message_get_fields),
14781         (dbus_message_append_fields_valist):
14782         Handle string arrays.
14783
14784         (dbus_message_set_sender):
14785         Make this function public since the bus daemon needs it.
14786
14787         (decode_header_data):
14788         Set the reply serial to -1 initially.
14789
14790         * dbus/dbus-message.h:
14791         Add dbus_message_set_sender.
14792
14793 2003-01-24  Havoc Pennington  <hp@pobox.com>
14794
14795         * doc/dbus-specification.sgml: add some stuff
14796
14797 2003-01-22  Havoc Pennington  <hp@pobox.com>
14798
14799         * doc/dbus-specification.sgml: Start to document the protocol.
14800
14801 2003-01-22  Havoc Pennington  <hp@pobox.com>
14802
14803         * dbus/dbus-connection.c
14804         (dbus_connection_send_message_with_reply_and_block): add some @todo
14805
14806         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14807
14808 2003-01-21  Havoc Pennington  <hp@pobox.com>
14809
14810         (patch untested because can't compile)
14811
14812         * bus/driver.c (create_unique_client_name): make this function
14813         never recycle client names. Also, caller should initialize
14814         the DBusString.
14815
14816         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14817
14818 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14819
14820         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14821         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14822         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14823         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14824         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14825         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14826         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14827         * dbus/dbus-marshal.h:
14828         * dbus/dbus-protocol.h:
14829         Add support for marshalling and demarshalling integer, double
14830         and string arrays.
14831
14832 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14833
14834         * bus/Makefile.am:
14835         Add driver.[ch]
14836
14837         * bus/connection.c: (connection_disconnect_handler):
14838         Remove the connection from the bus driver's list.
14839
14840         (connection_watch_callback): Dispatch messages.
14841
14842         (free_connection_data): Free connection name.
14843
14844         (bus_connection_setup): Add connection to the bus driver's list.
14845         (bus_connection_remove_owned_service):
14846         (bus_connection_set_name), (bus_connection_get_name):
14847         Add functions for setting and getting the connection's name.
14848
14849         * bus/connection.h:
14850         Add function headers.
14851
14852         * bus/driver.c: (create_unique_client_name),
14853         (bus_driver_handle_hello_message),
14854         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14855         (bus_driver_add_connection), (bus_driver_remove_connection):
14856         * bus/driver.h:
14857         * bus/main.c:
14858         * bus/services.c: (bus_service_free):
14859         * bus/services.h:
14860         New file that handles communication and registreation with the bus
14861         itself.
14862
14863 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14864
14865         * dbus/dbus-connection.c: (dbus_connection_send_message):
14866         Add a new client_serial parameter.
14867
14868         (dbus_connection_send_message_with_reply):
14869         Remove a @todo since we've implemented the blocking function.
14870
14871         (dbus_connection_send_message_with_reply_and_block):
14872         New function that sends a message and waits for a reply and
14873         then returns the reply.
14874
14875         * dbus/dbus-connection.h:
14876         Add new functions.
14877
14878         * dbus/dbus-errors.c: (dbus_result_to_string):
14879         * dbus/dbus-errors.h:
14880         Add new DBUS_RESULT.
14881
14882         * dbus/dbus-message-internal.h:
14883         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14884         (_dbus_message_set_sender), (dbus_message_write_header),
14885         (dbus_message_new_reply), (decode_header_data),
14886         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14887         * dbus/dbus-message.h:
14888         Add new functions that set the reply serial and sender.
14889         Also marshal and demarshal them correctly and add test.
14890
14891         * dbus/dbus-protocol.h:
14892         Add new DBUS_MESSAGE_TYPE_SENDER.
14893
14894         * glib/dbus-glib.h:
14895         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14896         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14897         (dbus_connection_hookup_with_g_main):
14898         * glib/test-dbus-glib.c: (main):
14899         Rewrite to use GIOChannel and remove the GSource crack.
14900
14901         * test/echo-client.c: (main):
14902         * test/watch.c: (check_messages):
14903         Update for changed APIs
14904
14905 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14906
14907         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14908
14909         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14910         Create a DBusTimeoutList.
14911         (dbus_connection_set_timeout_functions): Add new function to
14912         set timeout callbacks
14913
14914         * dbus/dbus-connection.h: Add public DBusTimeout API.
14915
14916         * dbus/dbus-message.c: (dbus_message_get_service):
14917         * dbus/dbus-message.h:  New function.
14918
14919         * dbus/dbus-server.c: Fix small doc typo.
14920
14921         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14922
14923 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14924
14925         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14926         of the string, just as long as specified.
14927
14928 2003-01-19  Havoc Pennington  <hp@pobox.com>
14929
14930         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14931         new function
14932
14933         * dbus/dbus-server.c (dbus_server_set_max_connections)
14934         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14935         keep track of current number of connections, and add API for
14936         setting a max (but haven't implemented enforcing the max yet)
14937
14938 2003-01-18  Havoc Pennington  <hp@pobox.com>
14939
14940         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14941         reading/writing if read_watch != NULL or write_watch != NULL.
14942
14943         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14944         the message loader code to actually load message->header and
14945         message->body into the newly-created message.
14946
14947         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14948         in OOM case
14949
14950         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14951         (dbus_connection_get_max_message_size)
14952         (dbus_connection_set_max_live_messages_size)
14953         (dbus_connection_get_max_live_messages_size): implement some
14954         resource limitation functions
14955
14956         * dbus/dbus-resources.c: new file implementing some of the
14957         resource limits stuff
14958
14959         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14960         missing docs, add @todo to handle OOM etc.
14961
14962         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14963         docs
14964
14965 2003-01-18  Havoc Pennington  <hp@pobox.com>
14966
14967         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14968         connection if it hasn't been already.
14969
14970         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14971         replace with DisconnectFunction.
14972
14973 2003-01-18  Havoc Pennington  <hp@pobox.com>
14974
14975         Building --disable-verbose-mode --disable-asserts --disable-tests
14976         cuts the library from 112K to 45K or so
14977
14978         * configure.in: check for varargs macro support,
14979         add --enable-verbose-mode, --enable-asserts.
14980
14981         * dbus/dbus-internals.h (_dbus_assert): support
14982         DBUS_DISABLE_ASSERT
14983         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14984
14985 2003-01-18  Havoc Pennington  <hp@pobox.com>
14986
14987         * dbus/dbus-test.c: include config.h so that tests actually run
14988
14989         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14990         so the failure mode when that assumption fails will be plenty
14991         obvious.
14992
14993 2003-01-18  Havoc Pennington  <hp@pobox.com>
14994
14995         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14996
14997         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14998         the distribution
14999
15000         * test/Makefile.am: don't use special variable "TESTS" for echo-*
15001         since we don't want to use those in make check
15002
15003 2003-01-15  Havoc Pennington  <hp@redhat.com>
15004
15005         Release 0.2
15006
15007         * NEWS: update
15008
15009 2003-01-15  Havoc Pennington  <hp@redhat.com>
15010
15011         * test/Makefile.am: fix so that test source code ends up in the
15012         distribution on make distcheck
15013
15014 2003-01-15  Havoc Pennington  <hp@redhat.com>
15015
15016         Release 0.1.
15017
15018         * NEWS: update
15019
15020 2003-01-15  Havoc Pennington  <hp@redhat.com>
15021
15022         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
15023         fix build when --disable-tests
15024
15025         * Makefile.am (EXTRA_DIST): put HACKING in here
15026
15027         * HACKING: document procedure for making a tarball release.
15028
15029 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
15030
15031         * bus/connection.c: (connection_error_handler),
15032         (bus_connection_setup):
15033         * bus/main.c: (main):
15034         Make sure that the DBusConnectionData struct is NULLed
15035         out to prevent a segfault.
15036
15037         * dbus/dbus-errors.c: (dbus_result_to_string):
15038         * dbus/dbus-errors.h:
15039         * dbus/dbus-message.c: (dbus_message_get_fields),
15040         (dbus_message_get_fields_valist), (_dbus_message_test):
15041         * dbus/dbus-message.h:
15042         Make dbus_message_get_fields return a result code so we can
15043         track invalid fields as well as oom.
15044
15045 2003-01-11  Havoc Pennington  <hp@pobox.com>
15046
15047         * configure.in: change --enable-test/--enable-ansi action-if-given
15048         to enable_foo=$enableval instead of enable_foo=yes
15049
15050 2003-01-08  Havoc Pennington  <hp@pobox.com>
15051
15052         * dbus/dbus-string.c (_dbus_string_align_length): new function
15053
15054         * dbus/dbus-test-main.c: move main() for test app here
15055         * dbus/dbus-test.c
15056         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
15057         symbol to run tests, because dbus-test isn't in the main
15058         library
15059
15060         Code review nitpicks.
15061
15062         * dbus/dbus-message.c (dbus_message_write_header): add newlines
15063         for people with narrow emacs ;-). Assert client_serial was filled
15064         in. Assert message->name != NULL.
15065         (dbus_message_append_fields): have "first_field_type" arg separate
15066         from va list, needed for C++ binding that also uses varargs IIRC
15067         and helps with type safety
15068         (dbus_message_new): add @todo about using DBusString to store
15069         service/name internally
15070         (dbus_message_new): don't leak ->service and ->name on OOM later
15071         in the function
15072         (dbus_message_unref): free the service name
15073         (dbus_message_get_fields): same change to varargs
15074         i.e. first_field_type
15075         (_dbus_message_loader_return_buffer): assert that the message data
15076         is aligned (if not it's a bug in our code). Put in verbose griping
15077         about why we set corrupted = TRUE.
15078         (decode_header_data): add FIXME that char* is evil.  Was going to
15079         add FIXME about evil locale-specific string.h strncmp, but just
15080         switched to wacky string-as-uint32 optimization. Move check for
15081         "no room for field name" above get_const_data_len() to avoid
15082         assertion failure in get_const_data_len if we have trailing 2
15083         bytes or the like. Check for service and name fields being
15084         provided twice. Don't leak service/name on error. Require field
15085         names to be aligned to 4 bytes.
15086
15087         * dbus/dbus-marshal.c: move byte swap stuff to header
15088         (_dbus_pack_int32): uscore-prefix
15089         (_dbus_unpack_int32): uscore-prefix
15090         (_dbus_unpack_uint32): export
15091         (_dbus_demarshal_string): add @todo complaining about use of
15092         memcpy()
15093         (_dbus_marshal_get_field_end_pos): add @todo about bad error
15094         handling allowing corrupt data to go unchecked
15095
15096 2003-01-08  Havoc Pennington  <hp@redhat.com>
15097
15098         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
15099         to the select() as needed for authentication. (should be using
15100         _dbus_poll() not select, but for another day)
15101
15102         * dbus/dbus.h: include dbus/dbus-protocol.h
15103
15104 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
15105
15106         * dbus/Makefile.am (dbusinclude_HEADERS): Install
15107         dbus-connection.h
15108
15109 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
15110
15111         * dbus/dbus-internals.c: (_dbus_type_to_string):
15112         New function that returns a string describing a type.
15113
15114         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
15115         * dbus/dbus-marshal.h:
15116         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
15117         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
15118         (dbus_message_iter_get_byte_array):
15119         * dbus/dbus-message.h:
15120         Add new convenience functions for appending and getting message fields.
15121         Also add demarshalling routines for byte arrays.
15122
15123 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15124
15125         * dbus/dbus-connection-internal.h:
15126         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
15127         (_dbus_connection_get_next_client_serial),
15128         (dbus_connection_send_message):
15129         * dbus/dbus-internals.h:
15130         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
15131         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
15132         (_dbus_marshal_uint32), (_dbus_demarshal_double),
15133         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
15134         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
15135         (_dbus_verbose_bytes), (_dbus_marshal_test):
15136         * dbus/dbus-marshal.h:
15137         * dbus/dbus-message-internal.h:
15138         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
15139         (dbus_message_write_header), (_dbus_message_lock),
15140         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
15141         (dbus_message_get_name), (dbus_message_append_int32),
15142         (dbus_message_append_uint32), (dbus_message_append_double),
15143         (dbus_message_append_string), (dbus_message_append_byte_array),
15144         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
15145         (dbus_message_iter_unref), (dbus_message_iter_has_next),
15146         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
15147         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
15148         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
15149         (decode_header_data), (_dbus_message_loader_return_buffer),
15150         (message_iter_test), (_dbus_message_test):
15151         * dbus/dbus-message.h:
15152         * dbus/dbus-protocol.h:
15153         * dbus/dbus-test.c: (main):
15154         * dbus/dbus-test.h:
15155         * glib/test-dbus-glib.c: (message_handler), (main):
15156         * test/echo-client.c: (main):
15157         * test/watch.c: (check_messages):
15158         Make messages sendable and receivable for real.
15159
15160 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15161
15162         * dbus/dbus-marshal.c: (_dbus_marshal_double),
15163         (_dbus_marshal_string), (_dbus_marshal_byte_array):
15164         * dbus/dbus-message.c: (dbus_message_append_int32),
15165         (dbus_message_append_uint32), (dbus_message_append_double),
15166         (dbus_message_append_string), (dbus_message_append_byte_array):
15167         Handle OOM restoration.
15168
15169 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15170
15171         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15172         (_dbus_demarshal_string), (_dbus_marshal_test):
15173         * dbus/dbus-marshal.h:
15174         * dbus/dbus-message.c: (dbus_message_get_name),
15175         Document these functions.
15176
15177         (dbus_message_append_int32), (dbus_message_append_uint32),
15178         (dbus_message_append_double), (dbus_message_append_string),
15179         (dbus_message_append_byte_array):
15180         * dbus/dbus-message.h:
15181         Add functions for adding message fields of different types.
15182
15183         * dbus/dbus-protocol.h:
15184         Add the different types.
15185
15186 2003-01-05  Havoc Pennington  <hp@pobox.com>
15187
15188         * bus/connection.c: implement routines for handling connections,
15189         first thing is keeping a list of owned services on each connection
15190         and setting up watches etc.
15191
15192         * bus/services.c: implement a mapping from service names to lists
15193         of connections
15194
15195         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
15196
15197         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
15198         to use static mutexes for global data
15199
15200         * dbus/dbus-connection.c (dbus_connection_set_data): add new
15201         collection of functions to set/get application-specific data
15202         on the DBusConnection.
15203
15204 2003-01-04  Havoc Pennington  <hp@pobox.com>
15205
15206         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
15207         (_dbus_poll): new function
15208
15209         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
15210         copied from GLib
15211
15212         * bus/loop.c: initial code for the daemon main loop
15213
15214 2003-01-04  Havoc Pennington  <hp@pobox.com>
15215
15216         * test/watch.c (error_handler): make it safe if the error handler
15217         is called multiple times (if we s/error handler/disconnect
15218         handler/ we should just guarantee it's called only once)
15219
15220         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
15221         error handler on disconnect (it's quite possible we should
15222         just change the error handler to a "disconnect handler," I'm
15223         not sure we have any other meaningful errors)
15224
15225         * configure.in: check for getpwnam_r
15226
15227         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
15228         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
15229         mechanism as in SASL spec, using socket credentials
15230
15231         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
15232         (_dbus_send_credentials_unix_socket): new function
15233
15234         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
15235         dbus_accept()
15236         (_dbus_write): only check errno if <0 returned
15237         (_dbus_write_two): ditto
15238
15239 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
15240
15241         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
15242         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
15243         (_dbus_marshal_test):
15244         * dbus/dbus-marshal.h:
15245         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
15246         to _dbus_marshal_utf8_string. Also fix some tests.
15247
15248 2002-12-28  Harri Porten  <porten@kde.org>
15249
15250         * configure.in: added check for C++ compiler and a very cheesy
15251         check for the Qt integration
15252
15253         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
15254
15255         * qt/Makefile.am: added
15256
15257         * qt/.cvsignore: added
15258
15259         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
15260         latter, added #ifdef QT_THREAD_SUPPORT guard.
15261
15262         * dbus/Makefile.am: added missing headers for make dist
15263
15264 2002-12-28  Kristian Rietveld  <kris@gtk.org>
15265
15266         * dbus/Makefile.am: fixup export-symbols-regex.
15267
15268 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15269
15270         * acinclude.m4: Add this file and put the
15271         PKG_CHECK_MODULE macro in it.
15272
15273 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15274
15275         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15276         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15277         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15278         (_dbus_marshal_test):
15279         Make the demarshalling routines align the pos argument.
15280         Add string marshalling tests and fix the obvious bugs
15281         discovered.
15282
15283 2002-12-26  Havoc Pennington  <hp@pobox.com>
15284
15285         * dbus/dbus-auth.c: fixes fixes fixes
15286
15287         * dbus/dbus-transport-unix.c: wire up support for
15288         encoding/decoding data on the wire
15289
15290         * dbus/dbus-auth.c (_dbus_auth_encode_data)
15291         (_dbus_auth_decode_data): append to target string
15292         instead of nuking it.
15293
15294 2002-12-26  Havoc Pennington  <hp@pobox.com>
15295
15296         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
15297         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
15298         doh
15299
15300         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
15301         avoid swap_bytes() overhead (ignoring possible assembly stuff for
15302         now). Main point is because I wanted unpack_uint32 to implement
15303         _dbus_verbose_bytes
15304         (_dbus_verbose_bytes): new function
15305
15306         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
15307
15308         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
15309         mechanism to handle a corrupt message stream
15310         (_dbus_message_loader_new): fix preallocation to only prealloc,
15311         not prelengthen
15312
15313         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
15314         (_dbus_string_test): enhance tests for copy/move and fix the
15315         functions
15316
15317         * dbus/dbus-transport-unix.c: Hold references in more places to
15318         avoid reentrancy problems
15319
15320         * dbus/dbus-transport.c: ditto
15321
15322         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
15323         leak reference count in no-message case
15324
15325         * test/watch.c (do_mainloop): handle adding/removing watches
15326         during iteration over the watches. Also, ref the connection/server
15327         stored on a watch, so we don't try to mangle a destroyed one.
15328
15329         * dbus/dbus-transport-unix.c (do_authentication): perform
15330         authentication
15331
15332         * dbus/dbus-auth.c (get_state): add a state
15333         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
15334         (_dbus_auth_get_unused_bytes): append the unused bytes
15335         to the passed in string, rather than prepend
15336
15337         * dbus/dbus-transport.c (_dbus_transport_init_base): create
15338         the auth conversation DBusAuth
15339
15340         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
15341         (_dbus_transport_new_for_domain_socket): when creating a
15342         transport, pass in whether it's a client-side or server-side
15343         transport so we know which DBusAuth to create
15344
15345 2002-12-03  Havoc Pennington  <hp@pobox.com>
15346
15347         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15348         _after_ finalizing the derived members
15349         (unix_connection_set): unref watch if we fail to add it
15350
15351         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15352         transport first, so that the connection owned by the
15353         transport will be valid as the transport finalizes.
15354
15355         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15356         if necessary, and remove watches from the connection.
15357
15358         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15359
15360 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15361
15362         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15363         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15364         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15365         (_dbus_marshal_test):
15366         * dbus/dbus-marshal.h:
15367         Add string marshal functions and have the demarshal functions
15368         return the new position.
15369
15370 2002-12-25  Havoc Pennington  <hp@pobox.com>
15371
15372         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15373         it is a simple protocol that just maps directly to SASL.
15374
15375         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15376         initial implementation, not actually used yet.
15377
15378         * dbus/dbus-string.c (_dbus_string_find): new function
15379         (_dbus_string_equal): new function
15380         (_dbus_string_base64_encode): new function
15381         (_dbus_string_base64_decode): new function
15382
15383 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15384
15385         * dbus/Makefile.am:
15386         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15387         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15388         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15389         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15390         * dbus/dbus-marshal.h:
15391         * dbus/dbus-protocol.h:
15392         * dbus/dbus-test.c: (main):
15393         * dbus/dbus-test.h:
15394         Add un-optimized marshalling/demarshalling routines.
15395
15396 2002-12-25  Harri Porten  <porten@kde.org>
15397
15398         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15399
15400 2002-12-24  Zack Rusin  <zack@kde.org>
15401
15402         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15403         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15404         main loop stuff
15405
15406 2002-12-24  Havoc Pennington  <hp@pobox.com>
15407
15408         * glib/dbus-gthread.c: fix include
15409
15410         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15411         I think glib API needs to change, though, as you don't
15412         want to use DBusMessageFunction, you want to use the
15413         DBusMessageHandler object. Probably
15414         dbus_connection_open_with_g_main_loop()
15415         and dbus_connection_setup_g_main_loop() or something like that
15416         (but think of better names...) that just create a connection
15417         that has watch/timeout functions etc. already set up.
15418
15419         * dbus/dbus-connection.c
15420         (dbus_connection_send_message_with_reply): new function just to
15421         show how the message handler helps us deal with replies.
15422
15423         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15424
15425         * dbus/dbus-string.c (_dbus_string_test): free a string that
15426         wasn't
15427
15428         * dbus/dbus-hash.c: use memory pools for the hash entries
15429         (rebuild_table): be more paranoid about overflow, and
15430         shrink table when we can
15431         (_dbus_hash_test): reduce number of sprintfs and write
15432         valid C89. Add tests for case where we grow and then
15433         shrink the hash table.
15434
15435         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15436
15437         * dbus/dbus-connection.c (dbus_connection_register_handler)
15438         (dbus_connection_unregister_handler): new functions
15439
15440         * dbus/dbus-message.c (dbus_message_get_name): new
15441
15442         * dbus/dbus-list.c: fix docs typo
15443
15444         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15445         an object representing a handler for messages.
15446
15447 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15448
15449         * glib/dbus-glib.h:
15450         * glib/dbus-gthread.c: (dbus_gthread_init):
15451         Don't use the gdbus prefix for public functions.
15452
15453 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15454
15455         * Makefile.am:
15456         * configure.in:
15457         Add GLib checks and fixup .pc files
15458
15459         * glib/Makefile.am:
15460         * glib/dbus-glib.h:
15461         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15462         (gdbus_connection_check), (gdbus_connection_dispatch),
15463         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15464         (dbus_connection_gsource_new):
15465         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15466         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15467         * glib/test-dbus-glib.c: (message_handler), (main):
15468         Add GLib support.
15469
15470 2002-12-15  Harri Porten  <porten@kde.org>
15471
15472         * autogen.sh: check for libtoolize before attempting to use it
15473
15474         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15475         struct.
15476
15477         * .cvsignore: ignore more stamp files
15478
15479         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15480
15481         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15482         without make install.
15483
15484 2002-12-15  Havoc Pennington  <hp@pobox.com>
15485
15486         * dbus/dbus-threads.c: add thread stubs that a higher library
15487         layer can fill in. e.g. the GLib wrapper might fill them in with
15488         GThread stuff. We still need to use this thread API to
15489         thread-safe-ize the library.
15490
15491 2002-12-12  Havoc Pennington  <hp@pobox.com>
15492
15493         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15494         below new interfaces and include fewer system headers.
15495
15496         * dbus/dbus-sysdeps.c (_dbus_read): new function
15497         (_dbus_write): new function
15498         (_dbus_write_two): new function
15499         (_dbus_connect_unix_socket): new function
15500         (_dbus_listen_unix_socket): new function
15501
15502         * dbus/dbus-message-internal.h: change interfaces to use
15503         DBusString
15504
15505 2002-12-11  Havoc Pennington  <hp@pobox.com>
15506
15507         * dbus/dbus-types.h: add dbus_unichar
15508
15509         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15510
15511         * dbus/dbus-connection.c (dbus_connection_send_message): return
15512         TRUE on success
15513
15514         * dbus/dbus-transport.c: include dbus-watch.h
15515
15516         * dbus/dbus-connection.c: include dbus-message-internal.h
15517
15518         * HACKING: add file with coding guidelines stuff.
15519
15520         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15521         handling here, for security purposes (as in vsftpd). Not actually
15522         using this class yet.
15523
15524         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15525         system/libc usage here, as in vsftpd, for ease of auditing (and
15526         should also simplify portability). Haven't actually moved all the
15527         system/libc usage into here yet.
15528
15529 2002-11-25  Havoc Pennington  <hp@pobox.com>
15530
15531         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15532         always print the first verbose message.
15533
15534 2002-11-24  Havoc Pennington  <hp@pobox.com>
15535
15536         * test/echo-client.c, test/echo-server.c: cheesy test
15537         clients.
15538
15539         * configure.in (AC_CHECK_FUNCS): check for writev
15540
15541         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15542         function
15543
15544         * dbus/dbus-list.c (_dbus_list_foreach): new function
15545
15546         * dbus/dbus-internals.c (_dbus_verbose): new function
15547
15548         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15549         representing a server that listens for connections.
15550
15551         * dbus/.cvsignore: create
15552
15553         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15554         public API for reporting errors
15555
15556         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15557         public object representing a connection that
15558         sends/receives messages. (Same object used for
15559         both client and server.)
15560
15561         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15562         Basic abstraction for different kinds of stream
15563         that we might read/write messages from.
15564
15565 2002-11-23  Havoc Pennington  <hp@pobox.com>
15566
15567         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15568         _DBUS_INT_MAX
15569
15570         * dbus/dbus-test.c (main): add list test, and include
15571         dbus-test.h as intended
15572
15573         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15574         (_dbus_hash_table_remove_int): return value indicates
15575         whether the entry existed to remove
15576
15577         * dbus/dbus-list.c: add linked list utility class,
15578         with docs and tests
15579
15580         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15581         array sometimes.
15582
15583 2002-11-23  Havoc Pennington  <hp@pobox.com>
15584
15585         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15586         DBUS_END_DECLS to nothing, that should fix this once and for all
15587
15588         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15589
15590         * dbus/dbus-message.c, dbus/dbus-hash.c:
15591         add some missing @brief
15592
15593 2002-11-23  Havoc Pennington  <hp@pobox.com>
15594
15595         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15596         to avoid confusing Doxygen
15597
15598         * dbus/dbus-hash.c: @} not }@
15599
15600         * dbus/dbus-message.c (struct DBusMessage): split out
15601         internals docs
15602
15603 2002-11-23  Havoc Pennington  <hp@pobox.com>
15604
15605         * configure.in: pile on more warning flags if using gcc
15606
15607         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15608         to document static functions
15609
15610         * configure.in: add summary to end of configure so it
15611         looks nice and attractive
15612
15613         * dbus/dbus-hash.c: finish implementation and write unit
15614         tests and docs
15615
15616         * configure.in: add --enable-tests to enable unit tests
15617
15618         * dbus/dbus-test.c: test program to run unit tests
15619         for all files in dbus/*, initially runs a test for
15620         dbus-hash.c
15621
15622         * dbus/dbus-internals.h: file to hold some internal utility stuff
15623
15624 2002-11-22  Havoc Pennington  <hp@redhat.com>
15625
15626         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15627         "ported" away from Tcl
15628
15629         * dbus/dbus-types.h: header for types such as dbus_bool_t
15630
15631 2002-11-22  Havoc Pennington  <hp@redhat.com>
15632
15633         * dbus/dbus.h: fixups for doc warnings
15634
15635         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15636         macros
15637         (QUIET): make it quiet so we can see warnings
15638
15639         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15640
15641 2002-11-22  Havoc Pennington  <hp@redhat.com>
15642
15643         * Makefile.am: include "Doxyfile" target in all-local
15644
15645         * configure.in: generate the Doxyfile
15646
15647         * Doxyfile.in: move Doxyfile here, so we can use
15648         configure to generate a Doxyfile with the right
15649         version number etc.
15650
15651 2002-11-22  Havoc Pennington  <hp@redhat.com>
15652
15653         * dbus/dbus-message.c: move inline docs into .c file
15654
15655         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15656         so all docs are under doc/
15657         (MAN_EXTENSION): generate man pages. Use extension
15658         ".3dbus" which matches ".3qt" on my system,
15659         I guess this is OK, I don't know really.
15660         (FILE_PATTERNS): look for .c files not .h, makes sense
15661         for plain C I think
15662
15663 2002-11-22  Havoc Pennington  <hp@pobox.com>
15664
15665         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15666         because any app can be a server, and any app can be a client,
15667         the bus is a special kind of server.
15668
15669 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15670
15671         * Doxyfile : adding. Still needs Makefile rules to be generated
15672         automatically (just run "doxygen" in the toplevel dir for now to
15673         generate docs)
15674
15675         * dbus/dbus-message.h : Adding sample docs (javadoc since
15676         resembles gtk-doc a little more)
15677
15678         * dbus/dbus.h : Adding sample docs
15679
15680 2002-11-21  Havoc Pennington  <hp@redhat.com>
15681
15682         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15683         so we can allow ourselves to include files directly,
15684         instead of having to use dbus.h
15685
15686         * dbus/dbus.h: fill in
15687
15688         * dbus/dbus-message.h: sketch out a sample header file.
15689         Include griping if you include it directly instead of
15690         via dbus.h
15691
15692         * dbus/dbus-macros.h: new file with macros for extern "C",
15693         TRUE/FALSE, NULL, etc.
15694
15695         * doc/file-boilerplate.c: put include guards in here
15696
15697 2002-11-21  Havoc Pennington  <hp@redhat.com>
15698
15699         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15700
15701         * COPYING: include the GPL as well, and license code
15702         under both AFL and GPL.
15703
15704 2002-11-21  Havoc Pennington  <hp@redhat.com>
15705
15706         * acconfig.h: get rid of this
15707
15708         * autogen.sh (run_configure): add --no-configure option
15709
15710         * configure.in: remove AC_ARG_PROGRAM to make
15711         autoconf complain less. add AC_PREREQ.
15712         add AC_DEFINE third arg.
15713
15714 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15715
15716         * doc/Makefile.am:
15717         Fix references so we can distcheck.
15718
15719 2002-11-21  Havoc Pennington  <hp@redhat.com>
15720
15721         * Initial module creation
15722