acinclude.m4, configure.in: In recent autotools, ${datadir} is
[platform/upstream/dbus.git] / ChangeLog
1 2007-05-21 Simon McVittie  <simon.mcvittie@collabora.co.uk>
2
3         * acinclude.m4, configure.in: In recent autotools, ${datadir} is
4         defined in terms of ${datarootdir}, so EXPANDED_DATADIR needs to be
5         expanded recursively. Rather than fixing configure.in to do this, I
6         grabbed the AS_AC_EXPAND macro from autostars.sf.net, which seems to be
7         commonly used.
8
9 2007-05-21 Simon McVittie  <simon.mcvittie@collabora.co.uk>
10
11         * update-dbus-docs.sh: Assorted improvements:
12         - Default user if $FDUSER is not set is the ssh default
13           (set in ~/.ssh/config or based on the local username), not a
14           hard-coded "johnp"
15         - Temporary checkout directory is created securely (preventing symlink
16           attacks), if mktemp(1) is available
17         - Use make -C rather than cd && make && cd ..
18
19 2007-05-21 Simon McVittie  <simon.mcvittie@collabora.co.uk>
20
21         * HACKING: Point to correct mailing list
22
23 2007-05-21 Simon McVittie  <simon.mcvittie@collabora.co.uk>
24
25         * doc/dbus-specification.xml: explicitly specify that STRING cannot
26         contain embedded NULs.
27
28 2007-05-20 Ralf.Habacker  <ralf.habacker@freenet.de>
29
30         * dbus/dbus-internal.c: fix inline problem on win32.
31
32 2007-05-20 Ralf.Habacker  <ralf.habacker@freenet.de>
33
34         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir): not reaching 
35         domain controller isn't an error, converted error message to verbose 
36         message.
37
38 2007-05-19 Ralf.Habacker  <ralf.habacker@freenet.de>
39
40         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): disabled 
41         tests not running on wince.
42
43 2007-05-19 Ralf.Habacker  <ralf.habacker@freenet.de>
44
45         * dbus/dbus-internals.c (_dbus_verbose_init): win32 requires 'varname=' 
46         to unset a environment variable. 
47
48 2007-05-19 Ralf.Habacker  <ralf.habacker@freenet.de>
49
50         * dbus/dbus-sysdeps.c (_dbus_setenv): win32 requires 'varname=' 
51         to unset a environment variable. 
52
53 2007-05-19 Ralf.Habacker  <ralf.habacker@freenet.de>
54
55         * bus/policy.c (bus_policy_create_client_policy): 
56         win32 temporary fix until the userdb stuff is ported completly.
57
58 2007-05-19  Ralf.Habacker  <ralf.habacker@freenet.de>
59
60         * dbus/dbus-server.c (listen_funcs): 
61         _dbus_server_listen_platform_specific is empty on win32, 
62         limited to unix only.
63
64         * dbus/dbus-server.c (valid_addresses): limit unix 
65         only addresses to unix. 
66
67 2007-05-18  Havoc Pennington  <hp@redhat.com>
68
69         * doc/dbus-specification.xml: add a GetAll to the Properties
70         interface.
71
72 2007-05-17 Ralf.Habacker  <ralf.habacker@freenet.de>
73  
74         * bus\config-parser.c (test_default_session_servicedirs):
75         win32 fix.
76
77 2007-05-17 Ralf.Habacker  <ralf.habacker@freenet.de>
78  
79         * configure.in: define constant DBUS_UNIX.
80
81 2007-05-14  Ralf Habacker <ralf.habacker@freenet.de>
82
83         * dbus/dbus-sysdeps-win.c (_dbus_printf_string_upper_bound):
84         compile fix for MS Platform SDK 6 
85         patch from Michael Luschas <mluschas@gmail.com>
86
87 2007-05-10  John (J5) Palmieri <johnp@redhat.com>
88
89         * dbus-1.pc.in: add daemondir to pc file
90         patch from Brian Cameron <brian.cameron at sun.com>
91
92 2007-05-04  Simon McVittie <simon.mcvittie@collabora.co.uk>
93
94         * doc/dbus-specification.xml: mention the reserved o.fd.DBus.Local
95         interface and the corresponding /o/fd/DBus/Local object path;
96         describe them as reserved and forbid using them in a sent message,
97         mentioning that in the reference implementation this will cause the
98         connection to be dropped. Patch approved by Havoc.
99
100 2007-04-28  Ralf Habacker <ralf.habacker@freenet.de>
101
102         * cmake/: don't install test applications and service files,
103         moved CMAKE_DEBUG_POSTFIX to top level CMakeLists.txt
104
105 2007-04-27  Havoc Pennington  <hp@redhat.com>
106
107         * dbus/dbus-sysdeps-unix.c (_dbus_open_socket): fix #10781 from
108         Tobias Nygren, checking pointer to fd vs. 0 rather than checking
109         the fd itself
110
111 2007-04-26 Ralf Habacker  <ralf.habacker@freenet.de>
112
113         * cmake/: added debug postfixes to debug exe's for 
114         easier debugging.
115         * dbus\dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error): 
116         print error code in case no string message is available.
117
118 2007-04-06 Simon McVittie <simon.mcvittie@collabora.co.uk>
119
120         * dbus/dbus-message-util.c, dbus/dbus-message.c,
121         dbus/dbus-message.h: Add API to convert a DBusMessage to/from a
122         byte array. Patch from Dafydd Harries <dafydd.harries@collabora.co.uk>,
123         approved by Havoc Pennington.
124
125 2007-04-03  Timo Hoenig  <thoenig@suse.de>
126
127         * dbus/dbus-address.c (dbus_parse_address): Do not accept zero-
128           length address.
129         * dbus/dbus-address.c (_dbus_address_test): Add test for zero-
130           length address.
131
132 2007-03-25 Ralf.Habacker  <ralf.habacker@freenet.de>
133
134         * cmake/dbus/CMakeLists.txt: debug postfix also for mingw.
135
136 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
137
138         * cmake/modules/FindExpat.cmake: fix package detection on win32.
139
140         * README.win: update install instructions. 
141
142 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
143
144         * dbus/dbus-sysdeps.h (_dbus_split_paths_and_append):
145         new prototyp
146         (_DBUS_PATH_SEPARATOR): new macro. 
147
148         * dbus/dbus-sysdeps.c (_dbus_split_paths_and_append): merged 
149         from dbus/dbus-sysdeps-unix.c and dbus/dbus-sysdeps-win.c. 
150
151 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
152
153         * bus/config-parser.c, bus/policy.c,  
154         bus/policy.h, bus/dbus-daemon.1.in,
155         bus/session.conf.in: added eavesdrop support 
156         for replies - patch by olli.salli at collabora.co.uk
157         approved by Havoc Pennington. 
158
159 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
160
161         * dbus\dbus-sysdeps-win-thread.c: renamed to 
162         dbus-sysdeps-thread-win.c, it is a platform depending file 
163         similar to dbus-sysdeps-pthread.c.
164
165 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
166
167         * cmake\doc\CMakeLists.txt: added prelimary xml doc 
168         support, needs cmake Find script.
169
170 2007-03-14 Ralf.Habacker  <ralf.habacker@freenet.de>
171
172         * cmake: add doxygen support
173
174 2007-03-14  Ralf.Habacker  <ralf.habacker@freenet.de>
175
176         * cmake/config.h.cmake: WINCE fixes, defined DBUS_UNIX.
177
178 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
179
180         * dbus/dbus-sysdeps-util-win.c (dbus_become_daemon): 
181         win32 compile fix. 
182
183 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
184
185         * dbus-win.patch: removed obsolate patches. 
186
187 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
188
189         * dbus/dbus-sysdeps-win.c: added zero byte sending 
190         and receiving after connection start up
191
192 2007-03-11  Havoc Pennington  <hp@redhat.com>
193
194         * tools/dbus-launch.c (do_close_stderr): fix C89 problem and
195         formatting problem
196
197         * Mostly fix the DBusPipe mess.
198         - put line break after function return types
199         - put space before parens
200         - do not pass structs around by value
201         - don't use dbus_strerror after calling supposedly cross-platform
202         api
203         - don't name pipe variables "fd"
204         - abstract special fd numbers like -1 and 1
205
206 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
207
208         * dbus/dbus-sysdeps-win.h, dbus/dbus-sysdeps-win.c, 
209         dbus/dbus-sysdeps-util-win.c: renamed functions 
210         _dbus_xxx_file() to _dbus_file_xxx() to reflect 
211         struct name DBusFile. 
212
213 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
214
215         * dbus/dbus-sysdeps-util-unix.c (_dbus_become_daemon):
216         fix _dbus_pid_fd check. 
217
218 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
219
220         * tools/dbus-print-message.c (print_message):
221         added printing of the reply serial to method returns and 
222         errors, so you can actually figure out the message/reply 
223         pairs - patch by olli.salli at collabora.co.uk.
224
225 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
226
227         * dbus-win.patch: removed committed patches. 
228
229 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
230
231         * bus/bus.c, bus/bus.h, bus/main.c, bus/test.c,
232         dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-util-unix.c,
233         dbus/dbus-sysdeps-util-win.c, dbus/dbus-sysdeps-win.c,
234         dbus/dbus-sysdeps.h: renamed _dbus_xxx_pipe to _dbus_pipe_xxx,
235         completed _dbus_pipe support. 
236
237 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
238
239         * dbus/dbus-sysdeps.h (_dbus_listen_tcp_socket):
240         changed type or port to pointer, because the port is given back.
241
242         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
243         implemented returning tcp port. Skipping port parameter
244         and non integer port values in config <listen> statement
245         needs more effort.
246
247         * dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-win.c
248         (_dbus_listen_tcp_socket): return the real used tcp port.
249
250         * bus/dbus-daemon.1.in: added <listen> tcp examples
251
252 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
253
254         * cmake/config.h.cmake: win32 msvc bug fix
255
256 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
257
258         * cmake/config.h.cmake: fixed DBUS_WINxx defines,
259         using _WINCE does not work.
260
261 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
262
263         * dbus-win.patch: removed _dbus_write_pipe() patch, it is now 
264         committed.
265
266 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
267
268         * bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h:
269         rename pipe related write() function calls to _dbus_write_pipe().
270
271 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
272
273         * dbus-win.patch: added bus/config-loader-libexpat.c patch, 
274         uses DBUS_WIN for alls win32 related #ifdefs, 
275         some minor cleanups
276
277 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
278
279         * dbus-win.patch: updated patch for bus/dispatch.c.
280
281 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
282
283         * dbus-win.patch: dbus-connection.c (dbus_connection_get_unix_user,
284         dbus_connection_get_unix_process_id): Let return them valid user id's, 
285         otherwise bus-test fails. How to replace on win32 ?.
286         
287         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir):
288         fix memory leak.
289
290 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
291
292         * dbus/dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error):
293         use dbus friendly error name.
294         (fill_win_user_info_homedir): print user name in error case too.
295
296 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
297
298         * cmake/ConfigureChecks.cmake: fixed socketpair check
299
300 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
301
302         * bus/dispatch.c: disabled segfault test on win32 for now
303
304 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
305
306         * configure.in, cmake/ConfigureChecks.cmake: added check 
307         for setrlimit. 
308         * test/test-segfault.c: only include setrlimit stuff only 
309         when available.  
310
311 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
312
313         * test/test-segfault.c: unix compile fix.
314         * dbus-win.patch: removed obsolate patches.
315
316 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
317
318         * bus/activation.c: removed obsolate include header.
319         * test/test-segfault.c: win32 compile fix, rlimit 
320         isn't available on win32.
321         * dbus-win.patch: removed some more patches, they
322         are applied or obsolate 
323
324 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
325
326         * bus-win.patch: fixes unix listen problems, dbus-test 
327         now runs.
328
329 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
330
331         * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
332         cmake/CMakeLists.txt: win32 compile fix
333
334 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
335
336         * dbus-win.patch, README.win: added available win32 
337         patches from windbus project (http://sf.net/projects/windbus)
338
339 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
340
341         * bus/activation.c: (bus_activation_activate_service):
342         fixed call to _dbus_spawn_async_with_babysitter().
343
344 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
345
346         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
347         added environment pointer as function parameter, used on win32.
348
349         * test/spawn-test.c: fixed call to above mentioned function.
350
351 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
352
353         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
354         added configure check for unistd.h.
355
356 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
357
358         * test/Makefile.am: fixed test data copy problem in 
359         out of source build, when sources came from svn or cvs. 
360
361 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
362
363         * dbus/*-win.*,bus/*-win.*: added win32 platform related
364         files. These files are only added to the cmake build system.  
365         The missing dbus-win.patch file will be added later. 
366
367 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
368
369         * cmake: new directory, contains cmake build support.
370         See http://www.cmake.org for more informations.
371         Currently only unix will be buildable because some 
372         win32 required files are still missing. 
373
374 2007-03-03  Thiago Macieira  <thiago@kde.org>
375
376         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
377         output and add it to the DBusError message we return.
378
379         * tools/dbus-launch.1:
380         * tools/dbus-launch.c: Add option --close-stderr to, well,
381         close stderr before starting dbus-daemon.
382
383 2007-01-31  Havoc Pennington  <hp@redhat.com>
384
385         * bus/dbus-daemon.1.in: write a section in the man page on running
386         a test daemon for debugging purposes
387
388 2007-01-26  Havoc Pennington  <hp@redhat.com>
389
390         * bus/session.conf.in: override all the default limits with much
391         higher limits on the session bus, there is no reason the session
392         bus should have low limits
393
394         * bus/config-parser.c (bus_config_parser_new): increase default
395         limits so they are less likely to be hit; in particular the max
396         replies per connection was way too low
397
398 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
399
400         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
401         a pointer to the tutorial maintained as part of dbus-python
402
403 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
404
405         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
406         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
407         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
408
409 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
410
411         * tools/dbus-monitor.c: gettimeofday() is not available 
412         on windows so we have to provide our own. It's taken from 
413         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
414
415 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
416
417         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
418         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
419         is in dbus-sysdeps-win.c (not in this patch).
420
421         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
422         with InterlockedInc/Decrement. 
423         - Patches from Christian Ehrlicher
424         
425 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
426
427         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
428
429 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
430
431         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
432         fix mispaced const statement. - Patch from Peter Kümmel
433
434 2006-12-19  Ray Strode  <rstrode@redhat.com>
435
436         * bus/bus.c (process_config_every_time):
437         don't overwrite existing bus context activation object
438         until after we've checked that the new activation is
439         valid.
440
441         * bus/main.c 
442         (signal_handler), (handle_reload_watch):
443         don't call exit() on failure, instead make do and keep
444         going.
445         (close_reload_pipe): new function to turn off
446         hangup-causes-config-reload behavior if an unexpected
447         error occurs
448
449 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
450
451         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
452         correctness fix. - Patch from Christian Ehrlicher
453
454 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
455
456         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
457         we should also use it. - Patch from Christian Ehrlicher
458
459 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
460   
461         * dbus-sysdeps-util.c: added win32 related tests
462
463 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
464
465         * dbus/dbus-string.c (_dbus_string_pop_line),
466         bus/desktop-file.c (parse_section_start,
467         parse_comment_or_blank,parse_key_value,): uses
468         _dbus_string_find_eol() to support platform independent eol style.
469
470 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
471
472         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
473         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
474               _dbus_string_find_eol().
475         Approved by: Havoc Pennington.
476
477 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
478
479         * configure.in: Added switch to disable user_database caching.
480
481         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
482         be able disable user_dabase caching.
483
484 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
485
486         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
487         struct. It is unnecessary we have a global one already. Also remove 
488         bus_context_get_user_database function, it is no longer needed.
489         Flush the global database on reload.
490
491         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
492         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
493
494         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
495         Add _dbus_user_database_flush_system. 
496         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
497         Small unrelated change in _dbus_is_a_number: change 
498         _dbus_string_parse_int to _dbus_string_parse_uint. 
499
500         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
501         _dbus_groups_from_uid.
502
503         * bus/policy.c, bus/policy.h: Change call to 
504         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
505         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
506         needs it.
507
508 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
509
510         * bus/signal.c: Fix match_rule_equal errata
511         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
512         <kimmo.hamalainen@nokia.com>)
513
514 2006-11-19  Thiago Macieira  <thiago@kde.org>
515
516         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
517         _dbus_pthread_condvar_wait,
518         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
519         pthread_self() after coming back from a conditional variable
520         wait as well as in one codepath where it was forgotten.
521         Approved by: Havoc Pennington.
522
523 2006-11-17  Havoc Pennington  <hp@redhat.com>
524
525         * update-dbus-docs.sh: allow setting fd.org username via env
526         variable. Make it run autogen with --enable-xml-docs=yes
527         --enable-doxygen-docs=yes so configure will fail if the required
528         tools are missing.
529
530 2006-11-17  Havoc Pennington  <hp@redhat.com>
531
532         * doc/dbus-faq.xml: minor FAQ tweaks
533
534 2006-11-14  Havoc Pennington  <hp@redhat.com>
535         
536         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
537         dbus_get_local_machine_id() to its own file, no substantive
538         changes. There are a couple other things we might want to add that
539         are "misc" so moving out of dbus-connection.[hc] which is big
540         enough already.
541         
542 2006-11-14  Havoc Pennington  <hp@redhat.com>
543
544         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
545         UUID had the timestamp last, but the implementation had it first;
546         move it to last since I think it's a tiny bit nicer (easier to
547         compare at a glance, faster to sort, less code), and will not
548         cause any practical compatibility problems. Also, always convert
549         the timestamp to big endian.
550
551         * doc/dbus-specification.xml: Clean up the docs on the UUID.
552
553         * tools/dbus-uuidgen.1: more prominently say it is not suitable
554         as a replacement for regular uuidgen/RFC4122.
555
556 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
557
558         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
559         the correct value so we don't assert when initalizing recursive threads
560
561         * test/name-test/test-thread-init.c: call dbus_threads_init_default
562         instead of _dbus_threads_init_debug since it is more of a real world
563         test
564
565 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
566
567         * Released 1.0.0
568
569 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
570
571         * AUTHORS: added Peter and Tor of windows porting fame
572
573 2006-11-08  Havoc Pennington  <hp@redhat.com>
574
575         * doc/dbus-specification.xml: add a note about protocol stability
576
577         * doc/TODO: Remove "important for 1.0" section, replace with
578         "important for 1.2" section
579         
580 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
581
582         * README: remove some of the out of date flags
583
584         * doc/TODO: Remove todo items which are done
585
586 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
587
588         * tools/dbus-monitor.c: Handle sigint so we flush stdout
589         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
590
591 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
592
593         * tools/dbus-monitor.1: update the manpage for dbus-monitor
594         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
595
596 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
597
598         * AUTHORS: Update with all people listed in the ChangeLog
599
600 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
601
602         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
603         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
604
605 2006-11-07  Havoc Pennington  <hp@redhat.com>
606
607         * HACKING: Update release instructions to include stuff about
608         stable releases, branching, etc. May not be totally correct,
609         please fix if needed, but keep instructions up-to-date so we do
610         each stable release consistently in the future.
611
612 2006-11-07  Havoc Pennington  <hp@redhat.com>
613
614         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
615         documentation updates. Bump faq/spec versions (not to 1.0; I don't
616         think the spec will be "finished"/1.0 when we ship the 1.0 library).
617
618 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
619
620         * bus/bus.c: Missed patch - pass in the context to the directory watch
621
622 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
623
624         * Released D-Bus 1.0 RC 3(0.95)
625
626 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
627
628         * bus/activation.c (bus_activation_new): don't fail if we can not read
629         the directory as it may not exist
630
631 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
632
633         * bus/config-parser.c (service_dirs_find_dir): use 
634         _dbus_list_get_next_link so we don't get stuck in an infinite loop
635         (start_busconfig_child): move processing of standard_session_servicedirs
636         tags here because they have no content
637         (bus_config_parser_content): check we don't have content in 
638         standard_session_servicedirs tag
639
640 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
641
642         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
643         Packagers need to own this directory
644
645 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
646
647         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
648         <standard_session_servicedirs> tag with a <sevicedir> tag that
649         points to the test service directory
650
651 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
652
653         * configure.in: Add a check for DIR *dirp->dd_fd
654
655         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
656         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
657         of both Solaris and Irix
658
659 2006-11-01  Havoc Pennington  <hp@redhat.com>
660
661         * bus/dbus-daemon.1.in: document standard_session_servicedirs
662
663 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
664
665         * configure.in: expose DBUS_DATADIR
666         
667         * bus/config-parser.c: add the standard_session_servicedirs element
668         to the parser
669         (bus_config_parser_content): process the standard_session_servicedirs
670         element by getting the standard directories from sysdeps and merging
671         them into the service directory list
672         (test_default_session_servicedirs): make sure we get what we expect
673
674         * bus/session.conf.in: replace the servicedir tag with the 
675         standard_session_servicedirs tag
676
677         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
678         dbus-sysdeps.h to avoid circular header dependencies
679
680         * dbus/dbus-sysdeps.h: add the typedef of DBusList
681
682         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
683         which takes a string of directories delimited by colons, parses them 
684         out, appends a suffix and puts them in a list ignoring empty elements
685         (_dbus_get_standard_session_servicedirs): returns the standard 
686         directories for a session bus to look for service activation files
687         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
688         DBUS_DATADIR directories
689
690         * test/data/valid-config-files/many-rules.conf: add the 
691         standard_session_servicedirs tag to the valid config file tests
692
693 2006-10-30  Havoc Pennington  <hp@redhat.com>
694
695         * tools/dbus-launch.1, doc/TODO: capture intent to change the
696         command line options of dbus-launch a bit post 1.0
697
698 2006-10-27  Havoc Pennington  <hp@redhat.com>
699         
700         * dbus/dbus-connection.c (dbus_connection_open_private): document
701         how to choose shared vs. private connections
702
703 2006-10-27  Havoc Pennington  <hp@redhat.com>
704
705         * dbus/dbus-test.c: enclose more of the file in the
706         DBUS_BUILD_TESTS check.
707
708         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
709         DBUS_DISABLE_ASSERT case.
710
711         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
712         that it only works on the server side
713
714         * dbus/dbus-bus.c: add a global lock covering the BusData we
715         attach to each connection
716         (internal_bus_get): lock our access to the BusData
717         (dbus_bus_register): lock the entire registration process
718         with _DBUS_LOCK(bus_datas). If we get the lock and 
719         registration is already complete, silently return (vs. previous
720         behavior of aborting).
721         (dbus_bus_set_unique_name): lock the BusData
722         (dbus_bus_get_unique_name): lock the BusData
723
724 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
725
726         * bus/config-parser.c (service_dirs_find_dir, 
727         service_dirs_append_unique_or_free, 
728         service_dirs_append_link_unique_or_free): New static methods
729         for only appending unique service directory names into
730         the service directory list
731         (merge_included, bus_config_parser_content): Only add unique
732         service directory names into the list
733
734 2006-10-27  Havoc Pennington  <hp@redhat.com>
735
736         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
737         variables volatile, suggested by Thiago. Document struct fields.
738         (PTHREAD_CHECK): remove pthread error checking if assertions are
739         disabled, should reduce the no-assertions case to the bare
740         minimum code.
741
742 2006-10-26  Havoc Pennington  <hp@redhat.com>
743         
744         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
745         to be recursive
746         (_dbus_pthread_mutex_unlock): make it recursive
747         (_dbus_pthread_condvar_wait): save/restore the recursion count
748         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
749
750 2006-10-26  Havoc Pennington  <hp@redhat.com>
751
752         * doc/dbus-specification.xml: clarify the UUID text slightly
753
754         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
755         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
756         in preparation for being able to extend them for e.g. recursive
757         mutexes.
758
759 2006-10-26  Havoc Pennington  <hp@redhat.com>
760
761         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
762         condition variables relate to recursive mutexes.
763         
764         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
765         dbus/dbus-threads.c: Split the platforms-specific thread 
766         implementations into their own files.
767         
768         * dbus/dbus-sysdeps-pthread.c
769         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
770         was backward. Not that anything uses it.
771
772 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
773
774         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
775         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
776         needs to be cleaned up more.
777
778         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
779         up the CREDS issue.
780
781 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
782
783         * configure.in, dbus-1.pc.in: Check to see if thread methods 
784         are in glibc or libpthread and add -lpthread to the link stage 
785         if it is the latter
786
787 2006-10-26  Thiago Macieira  <thiago@kde.org>
788
789         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
790         bug 8780: the connection lock is only required while recording
791         the shared connection, so protect only that code
792         section. Don't require connection_lookup_shared to return a
793         locked connection.
794
795 2006-10-26  Thiago Macieira  <thiago@kde.org>
796
797         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
798         check if get_machine_uuid() returns NULL before proceeding any
799         further: we can't init the X atoms or create a session file
800         name if there is no machine ID.
801         This solves a crash reported by some users if
802         --exit-with-session was used without --autolaunch=<machine-id>
803
804 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
805
806         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
807         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
808
809         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
810         before we run dbus-launch
811
812         * configure.in: define TEST_BUS_BINARY to be the full path to 
813         dbus-daemon in the build root 
814
815 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
816
817         * dbus/Makefile.am:
818         * tools/Makefile.am:
819         * toos/dbus-uuidgen.1:
820                 Move the machine-id file to /var/lib/dbus 
821
822 2006-10-24  David Zeuthen  <davidz@redhat.com>
823
824         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
825         _dbus_assert (thread_init_generation != _dbus_current_generation)
826         not _dbus_assert (thread_init_generation == _dbus_current_generation)
827
828 2006-10-24  Thiago Macieira  <thiago@kde.org>
829
830         * dbus/dbus-sysdeps.h:
831         * dbus/dbus-sysdeps-unix.c: Add function
832         _dbus_make_file_world_readable that chmods a file to 0644.
833
834         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
835         Avoid writing to the static "argv" array, thereby avoiding a
836         COW on the child process.
837
838         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
839         call _dbus_make_file_world_readable on the created file.
840
841 2006-10-23  David Zeuthen  <davidz@redhat.com>
842
843         * dbus/dbus-memory.c: Use atomic variable to protect
844         n_blocks_outstanding otherwise OOM will be reported using SMP on
845         some arches
846         
847         * bus/dispatch.c: Add missing end of line characters
848
849         * bus/desktop-file.c (parse_section_start, parse_key_value) 
850         (bus_desktop_file_load): Propertly handle OOM
851
852         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
853         thread_init_generation equals _dbus_current_generation, not 0
854
855 2006-10-22  Havoc Pennington  <hp@redhat.com>
856
857         * dbus/dbus-connection-internal.h: move prototype of
858         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
859         it isn't in a public header and doesn't end up in the DBusBus
860         group in Doxygen
861
862 2006-10-21  Havoc Pennington  <hp@redhat.com>
863
864         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
865         the tarball if packagers want to run it
866
867         * cleanup-man-pages.sh: Add a script which munges all the internal
868         API man pages out of the Doxygen output. This reduces the size of
869         the installed man pages from 7 to 2 megs, and avoids
870         namespace-polluting pages. Right now (like Doxygen) this script
871         isn't in the build, it's something packagers can do manually.
872
873 2006-10-21  Havoc Pennington  <hp@redhat.com>
874
875         * dbus/dbus-connection.h: don't include the watch/timeout
876         functions in connection section
877
878 2006-10-21  Havoc Pennington  <hp@redhat.com>
879
880         * Documentation! Whee! Doxygen now 100% silent. If you make it
881         angry again, you will be punished.
882         
883 2006-10-21  Havoc Pennington  <hp@redhat.com>
884
885         * More documentation - all public API now documented according to
886         Doxygen
887
888 2006-10-21  Havoc Pennington  <hp@redhat.com>
889
890         * Document a bunch of undocumented stuff
891         
892 2006-10-21  Havoc Pennington  <hp@redhat.com>
893
894         * Clean up Doxygen group markers for public API so Doxygen finds
895         everything (not comprehensively fixed for private API).
896         Means all remaining Doxygen warnings are just about missing docs
897         and thus pretty simple to resolve.
898         
899 2006-10-21  Havoc Pennington  <hp@redhat.com>
900         
901         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
902
903         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
904         as DBUS_GNUC_DEPRECATED
905
906 2006-10-21  Havoc Pennington  <hp@redhat.com>
907
908         * Move all private API into the private Doxygen group sections of
909         the files, so they don't show up in the public API docs
910         
911 2006-10-21  Havoc Pennington  <hp@redhat.com>
912
913         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
914         dbus_message_iter_get_array_len().
915
916         * throughout: documentation improvements.
917
918 2006-10-20  Havoc Pennington  <hp@redhat.com>
919
920         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
921         matter, and the message-loader-breaker thing since nobody is going
922         to do it.  Add an item to 1.0 about supporting recursive locks
923         in dbus_threads_init_default() though, since it should be easy.
924
925         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
926         Fix this in the !dispatch case to avoid busy-looping after
927         disconnection
928
929         * More misc docs improvements
930
931 2006-10-19  Havoc Pennington  <hp@redhat.com>
932
933         * more Doxygen-related fixes (lots of moving things from the
934         public to internal section in dbus-connection.c)
935
936 2006-10-19  Havoc Pennington  <hp@redhat.com>
937
938         * Fix a pile of Doxygen warnings and missing docs
939
940 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
941
942         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
943         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
944         instead of a void *.  kqueue uses this to get the context's loop
945         while the other modules ignore the parameter.  This allows us to
946         avoid platform conditionals
947
948         * bus/bus.c (process_config_postinit): Pass in the context to the 
949         watch
950
951 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
952
953         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
954         when starting the system bus
955
956 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
957
958         * configure.in: More fixups for cross compile (Patch from 
959         Marco Pracucci <development at pracucci dot com>)
960
961 2006-10-17  Havoc Pennington  <hp@redhat.com>
962
963         * tools/dbus-send.c (main): don't close shared connection, fix
964         from Timo Hoenig
965
966 2006-10-17  Havoc Pennington  <hp@redhat.com>
967
968         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
969
970         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
971         since realistically it doesn't look like we'll be changing it
972         anymore.
973
974 2006-10-17  Havoc Pennington  <hp@redhat.com>
975
976         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
977         be used for return_if_fail type warnings; prefixes the pid, and
978         fatal by default.
979
980 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
981
982         * configure.in: Released 1.0 RC 2(0.94)
983         Add check for -fPIC and enable it if available
984
985 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
986
987         * doc/TODO: Remove the check TODO item
988
989 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
990
991         * dbus-transport-socket.c (exchange_credentials):
992         Print out more detailed errors if reading or sending
993         credentials fail (Patch from Julio M. Merino Vidal 
994         <jmmv at NetBSD dot org>)
995
996 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
997
998         * configure.in: when checking for posix getpwnam_r assume true
999         for cross compiles
1000
1001 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
1002
1003         * configure.in: Check for gethostbyname first before we check for it
1004         in libnsl.  On gnu systems it is implemeneted 
1005
1006 2006-10-13  Havoc Pennington  <hp@redhat.com>
1007
1008         * dbus/dbus-connection.c
1009         (dbus_connection_send_with_reply_and_block): fix to handle closed
1010         connections, from Tambet Ingo bug #8631
1011
1012 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
1013
1014         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
1015
1016 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
1017
1018         * test/name-test/Makefile.am: don't link against both libdbus and
1019         libdbus-convenience
1020
1021 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
1022
1023         * configure.in: check for dirfd even if it is a macro
1024         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
1025
1026 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
1027
1028         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
1029         avoid using dirfd on systems that don't have dirfd 
1030         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
1031
1032 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
1033
1034         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
1035         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
1036
1037         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
1038         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
1039         macro because _dbus_abort calls it
1040
1041         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
1042         works
1043
1044 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
1045
1046         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
1047         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
1048
1049 2006-10-02  Thiago Macieira  <thiago@kde.org>
1050
1051         * tools/dbus-launch.c (main): make it complain and abort
1052         execution in case an unknown option is given. Also, process
1053         the '--' argument as the end of arguments.
1054
1055 2006-10-01  Havoc Pennington  <hp@redhat.com>
1056
1057         * tools/dbus-launch.c (print_variables): if no syntax is given,
1058         don't print something that's sort-of-half-sh-syntax, just print
1059         a plain key-value pairs thing.
1060
1061         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
1062         the local machine representation (but still have the hostname in
1063         the display). Remove the hostname from the display if it is
1064         localhost. Change session files to be named
1065         ~/.dbus/session-bus/machine-display. Change X atoms to be
1066         underscore-prefixed so nobody whines about ICCCM compliance.
1067         Otherwise name them the same as the env variables.
1068         Change session file format to include key-value pairs and an
1069         explanatory comment. Keys are the same as the env variables.
1070         (set_address_in_x11): X property format can't depend on
1071         sizeof(pid_t) on a particular machine, fix to always be 32 bits
1072
1073         * tools/dbus-launch.c: make --autolaunch take a machine id
1074         argument. If --autolaunch is used with a program to run, complain
1075         for now (but add a FIXME). Also, don't look for existing bus if 
1076         there's a program to run (but add a FIXME).
1077
1078         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
1079         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
1080         just to get this, and avoids duplicating uuid-reading code).
1081
1082         * tools/dbus-launch.1: clarify various things
1083         
1084 2006-10-01  Havoc Pennington  <hp@redhat.com>
1085
1086         * test/test-service.c (path_message_func): remove broken extra
1087         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
1088
1089         * test/test-shell-service.c (path_message_func): same fix
1090         
1091         * dbus/dbus-connection.c
1092         (_dbus_connection_get_dispatch_status_unlocked): break up the
1093         function a little for clarity and fix the notification of
1094         dbus-bus.c to not require dispatch to be complete
1095
1096         * dbus/dbus-connection.c (dbus_connection_unref): improve the
1097         warning when you try to finalize an open connection.
1098         
1099 2006-10-01  Havoc Pennington  <hp@redhat.com>
1100
1101         * dbus/dbus-bus.c
1102         (internal_bus_get): only weak ref the connection; this means 
1103         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
1104         called safely in any context
1105         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
1106         unref
1107
1108         * dbus/dbus-connection.c
1109         (_dbus_connection_get_dispatch_status_unlocked): move
1110         _dbus_bus_notify_shared_connection_disconnected_unlocked here
1111         when queuing Disconnected instead of when the Disconnected message
1112         arrives, so dbus_bus_get() won't return closed connections.
1113         
1114 2006-10-01  Havoc Pennington  <hp@redhat.com>
1115
1116         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
1117         Add a hack to make DBusNewConnectionFunction work right.
1118
1119         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
1120         the hack here. Also, fix the todo about refcount leak.
1121         
1122         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1123         and use the hack here
1124         
1125         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
1126         "shareable" flag; this was completely broken, since it meant 
1127         dbus_connection_open() returned a connection of unknown
1128         shared-ness. Now, we always hold a ref on anything opened 
1129         as shareable.
1130
1131         Move the call to notify dbus-bus.c into
1132         connection_forget_shared_unlocked, so libdbus consistently forgets
1133         all its knowledge of a connection at once. This exposed numerous
1134         places where things were totally broken if we dropped a ref inside
1135         get_dispatch_status_unlocked where
1136         connection_forget_shared_unlocked was previously, so move
1137         connection_forget_shared_unlocked into
1138         _dbus_connection_update_dispatch_status_and_unlock. Also move the
1139         exit_on_disconnect here.
1140
1141         (shared_connections_shutdown): this assumed weak refs to the
1142         shared connections; since we have strong refs now, the assertion 
1143         was failing and stuff was left in the hash. Fix it to close
1144         still-open shared connections.
1145         
1146         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
1147         debug pipe connections
1148         
1149         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
1150         dbus-bus.c if the closed connection is in fact shared
1151         (_dbus_connection_close_possibly_shared): rename from 
1152         _dbus_connection_close_internal
1153         (dbus_connection_close, dbus_connection_open,
1154         dbus_connection_open_private): Improve docs to explain the deal
1155         with when you should close or unref or both
1156
1157         * dbus/dbus-bus.c
1158         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
1159         from _dbus_bus_check_connection_and_unref_unlocked and modify to
1160         loop over all connections
1161
1162         * test/test-utils.c (test_connection_shutdown): don't try to close
1163         shared connections.
1164
1165         * test/name-test/test-threads-init.c (main): fix warnings in here
1166
1167         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
1168         env variable to cause blocking waiting for gdb; drop
1169         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
1170         unconditionally.
1171
1172         * configure.in: add -export-dynamic to libtool flags if assertions enabled
1173         so _dbus_print_backtrace works.
1174
1175         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
1176         instead of _dbus_verbose to print the backtrace, and diagnose lack 
1177         of -rdynamic/-export-dynamic
1178         
1179 2006-09-30  Havoc Pennington  <hp@redhat.com>
1180
1181         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
1182         (internal_bus_get): fix screwy code formatting. whoever committed
1183         that was not paying attention!
1184
1185 2006-09-30  Havoc Pennington  <hp@redhat.com>
1186
1187         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
1188         reflect addition of interfaces.
1189
1190         * doc/dbus-specification.xml: describe a new
1191         org.freedesktop.DBus.Peer.GetMachineId method
1192
1193         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
1194         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
1195         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
1196         at end of skip_white
1197         (_dbus_string_chop_white): new function
1198
1199         * bus/connection.c (bus_connections_setup_connection): call
1200         dbus_connection_set_route_peer_messages.
1201
1202         * dbus/dbus-connection.c
1203         (_dbus_connection_peer_filter_unlocked_no_update): modify to
1204         support a GetMachineId method.
1205
1206         Also, support a new flag to let the bus pass peer methods through
1207         to apps on the bus, which can be set with
1208         dbus_connection_set_route_peer_messages.
1209
1210         Finally, handle and return an error for anything unknown on the
1211         Peer interface, which will allow us to extend the Peer interface
1212         in the future without fear that we're now intercepting something
1213         apps were wanting to see.
1214         
1215         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
1216         dbus/dbus-uuidgen.c
1217
1218         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
1219         binary here, since most of the code is already in libdbus
1220
1221         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
1222         uuid from the system config file
1223
1224         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
1225         (_dbus_read_uuid_file_without_creating) 
1226         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
1227         uuid-related functions, partly factored out from dbus-server.c
1228
1229         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
1230         DBUS_ERROR_FILE_EXISTS instead of EEXIST
1231
1232         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
1233
1234         * tools/dbus-cleanup-sockets.1: explain what the point of this
1235         thing is a bit more
1236
1237         * autogen.sh (run_configure): add --config-cache to default
1238         configure args
1239
1240         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
1241         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
1242
1243         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
1244         don't try to save address, fixes crash in make check
1245         
1246 2006-09-30  Thiago Macieira  <thiago@kde.org>
1247
1248         * configure.in: add DBUS_BINDIR as a #define to C source code.
1249
1250         * tools/dbus-launch.c
1251         * tools/dbus-launch.h
1252         * tools/dbus-launch-x11.c:
1253         * tools/dbus-launch.1: Add the --autolaunch option to
1254         dbus-launch, which makes it scan for an existing session
1255         started with --autolaunch. With that option, it also creates
1256         an X11 window and saves the bus address and PID to it.
1257
1258         * dbus/dbus-sysdeps.h:
1259         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
1260         a function that runs "dbus-launch --autolaunch" to retrieve
1261         the running D-Bus session address (or start one if none was running)
1262
1263         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
1264         address protocol, which tries to get the running session from
1265         dbus-launch.
1266
1267         * dbus/dbus-bus.c:
1268         * dbus/dbus-internals.h: Make "autolaunch:" be the default
1269         D-Bus session bus address.
1270
1271         * dbus/dbus-connection.c: Fix horrible typo in error message.
1272
1273 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
1274
1275         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
1276
1277 2006-09-17  Havoc Pennington  <hp@redhat.com>
1278
1279         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1280         fix so that if unix_user_function is set on windows, we still
1281         do the default check that the auth identity matches the bus identity
1282
1283 2006-09-16  Havoc Pennington  <hp@redhat.com>
1284
1285         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
1286         to _dbus_transport_open_platform_specific,
1287         _dbus_transport_open_socket,
1288         and _dbus_transport_open_debug_pipe
1289
1290         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
1291
1292 2006-09-16  Havoc Pennington  <hp@redhat.com>
1293
1294         Attempt auditing public API to remove all cases where a Unix
1295         function returns weird emulated goo to Windows. This probably 
1296         breaks the bus daemon on Windows, to fix it again we may 
1297         need to stop processing unix-specific config options on Windows,
1298         and may need to add Windows-specific public API or config options.
1299         
1300         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
1301         to reflect added interfaces; should not break soname.
1302         
1303         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
1304         not invoke unix user function on Windows. Kind of a hacky fix, but 
1305         we don't want a "unix uid" leaking out on Windows.
1306
1307         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
1308         to get the socket fd on Windows or UNIX
1309         (dbus_connection_get_unix_fd): make this always fail on Windows
1310
1311 2006-09-16  Havoc Pennington  <hp@redhat.com>
1312
1313         * dbus/dbus-server.c (dbus_server_listen): change how this works
1314         to be able to delegate to a set of handlers that can succeed,
1315         fail, or choose not to handle. Allows us to have 
1316         dbus_server_listen_platform_specific.
1317
1318         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
1319         factor out the tcp socket stuff to be used on windows, leaving
1320         unix domain socket only in dbus-socket-unix.c
1321
1322         * dbus/dbus-transport-socket.c
1323         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
1324         stuff to be used on windows, leaving unix domain socket only 
1325         in dbus-transport-unix.c
1326
1327         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
1328         temporary hack to be sure this fails on windows
1329         (dbus_connection_get_unix_process_id): ditto
1330
1331 2006-09-16  Havoc Pennington  <hp@redhat.com>
1332
1333         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1334         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1335         _dbus_open_socket so the domain/type/protocol from system headers
1336         are not required. This is kind of pointless though unless we move
1337         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1338         sysdeps-unix.c, which would mean adding a wrapper around
1339         bind/listen/etc.
1340         Also, add DBusError to the socket-opening functions so they 
1341         don't require use of errno.
1342
1343 2006-09-16  Havoc Pennington  <hp@redhat.com>
1344
1345         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1346         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1347
1348         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1349         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1350         functions specifically for sockets only, and move generic 
1351         read/write/open/close into unix-specific code.
1352
1353 2006-09-14  Havoc Pennington  <hp@redhat.com>
1354
1355         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1356         complaint about accessing revents when poll returns 0, from Julian Seward.
1357
1358 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1359
1360         * Released 1.0 RC 1 (0.93) 
1361
1362 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1363
1364         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1365         use _dbus_close instead of close
1366
1367 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1368
1369         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1370         credentials.  Fixes "external" authentication under e.g. NetBSD
1371         which does not support any other socket credentials mechanism.
1372         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1373
1374 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1375
1376         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1377         dbus_threads_init and be used by the dbus mutex functions to
1378         avoid deadlocks.
1379
1380         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1381
1382 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1383
1384         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1385         use threadsafe readdir_r instead of readdir
1386
1387 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1388
1389         * dbus-threads.c (dbus_threads_init_default): New method for
1390         initializing the internal thread implementation (Patch from
1391         Alexander Larsson <alexl at redhat dot com>)
1392
1393 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1394
1395         * remove a bunch of todo items from the 1.0 list
1396
1397 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1398
1399         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1400         key not found
1401
1402 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1403
1404         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1405         complex debugging code
1406
1407         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1408         between the test suite ifdefs
1409         (_dbus_verbose_bytes): return if verbosity is not enabled 
1410
1411 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1412
1413         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1414         remove DBusMark
1415
1416 2006-09-10  Havoc Pennington  <hp@redhat.com>
1417
1418        patch mostly by Peter Kümmel, bug #8211
1419         
1420         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1421         unix-specific stuff in dbus-sysdeps.c
1422
1423         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1424         and move unix-specific stuff to dbus-sysdeps-unix.c
1425
1426         * configure.in: check HAVE_ERRNO_H
1427         
1428 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1429
1430         * bus/test-main.c (main): Initialize threading during tests
1431
1432         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1433         Unlock connection on error
1434         (generate_local_error_message): static method for generating
1435         an error message when we don't have a message to reply to
1436         (_dbus_connection_block_pending_call): Send a disconnect error
1437         instead of just a timeout (NULL) when the bus gets disconnected
1438         while blocking for a reply.
1439         
1440 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1441
1442         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1443         filters (Patch from Kimmo Hämäläinen 
1444         <kimmo dot hamalainen at nokia dot com>)
1445
1446 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1447
1448         * dbus/dbus-connection-internal.h: Add prototype for 
1449         _dbus_connection_test_get_locks to remove warning
1450
1451 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1452
1453         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1454         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1455         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1456
1457 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1458
1459         * Clean up close calls to use _dbus_close (Patch from 
1460         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1461
1462 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1463
1464         * doc/TODO:
1465         - Remove pending call locking todo item
1466         - dbus_connection_open now holds hard ref.  Remove todo item
1467         - do proper locking on _dbus_bus_check_connection_and_unref
1468           and handle DBUS_BUS_STARTER. Remove todo item
1469         - Warn on closing of a shared connection.  Remove todo item
1470
1471         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1472         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1473         so we don't get the warning when closing shared connections
1474
1475         * test/test-service.c, test/test-shell-service.c: Applications
1476         don't close shared connections themselves so we unref instead of
1477         close
1478
1479         * test/test-utils.c (test_connection_shutdown): Close the connection
1480
1481         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1482         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1483         method on a locked connection.  
1484         Make sure we call _dbus_connection_unref_unlocked instead of 
1485         dbus_connection_unref also.
1486         Handle DBUS_BUS_STARTER correctly
1487
1488         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1489         Mark as shared and hard ref the connection
1490         (connection_forget_shared_unlocked): Remove the hard ref from the 
1491         connection
1492         (_dbus_connection_close_internal_and_unlock):  New internal function
1493         which takes a locked connection and unlocks it after closing it
1494         (_dbus_connection_close_internal): New internal function which acts
1495         like the origonal dbus_connection_close method by grabbing a connection
1496         lock and calling _dbus_connection_close_internal_and_unlock
1497         (dbus_connection_close): Public close method, warns when the app
1498         trys to close a shared connection
1499
1500 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1501
1502         * bus/driver.c:
1503         (bus_driver_generate_introspect_string): New method for populating
1504         a DBusString with the introspect data
1505         (bus_driver_handle_introspect): Move introspect generation code to 
1506         bus_driver_generate_introspect_string
1507
1508         * bus/main.c:
1509         (introspect): New function which prints out the intropect data and
1510         exits
1511         (main): Add a --introspect switch
1512
1513 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1514
1515         * doc/TODO: Removed dtd publishing item.  
1516         It seems the dtd has already been added at
1517         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1518
1519 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1520
1521         * doc/TODO, various source files: Audited todo's and FIXME's and
1522         prepended the ones we should be looking at with 1.0.  Those
1523         prepended with 1.0? need clerification or might not be needed
1524         for 1.0
1525
1526 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1527
1528         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1529         NULL in the public API (Patch from Kimmo Hämäläinen 
1530         <kimmo dot hamalainen at nokia dot com>)
1531
1532 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1533
1534         * configure.in: Fix for OS-X compile time endian issues (patch from
1535         Benjamin Reed <ranger at befunk dot com>)
1536
1537 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1538
1539         * configure.in: Check for no-common compiler flag (OS-X fix from
1540         Benjamin Reed <ranger at befunk dot com>)
1541
1542 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1543
1544         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1545         <fcrozat at mandriva dot com>)
1546
1547 2006-08-29  Havoc Pennington  <hp@redhat.com>
1548
1549         * test/test-service.c (path_message_func): fix lack of return value
1550
1551         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1552         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1553         any more sense than on anything else in this file.
1554         (_dbus_get_tmpdir): add const to return value, and keep the
1555         results of the various getenv around in a static variable.
1556
1557 2006-08-29  Havoc Pennington  <hp@redhat.com>
1558
1559         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1560         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1561
1562 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1563
1564         * test/Makefile.am: change find to use syntax that works with non
1565         gnu versions of find
1566
1567 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1568
1569         * dbus/dbus-transport.c: fix invalid deref when checking if
1570         a vtable method exists (Patch from Christian Ehrlicher 
1571         <ch dot ehrlicher at gmx dot de>)
1572
1573 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1574
1575         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1576         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1577         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1578         <bernard at brenda-arkle dot demon dot co dot uk>)
1579
1580 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1581
1582         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1583         default case
1584
1585 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1586
1587         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1588         it works on any system providing this interface, not only FreeBSD.
1589         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1590
1591 2006-08-20  Havoc Pennington  <hp@redhat.com>
1592
1593         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1594         the docs
1595
1596 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1597
1598         * Released 0.92 
1599
1600 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1601
1602         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1603         to reflect the init late change
1604
1605         * bus/bus.c (bus_context_new): Check user before we fork so we can
1606         print out an error message a user will be able to see
1607
1608 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1609
1610         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1611
1612         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1613         Add two more global locks for use on windows platforms.  These are
1614         unused on non-windows platforms but are not ifdefed out to avoid
1615         potential bugs (i.e. the few bytes lost does not warrent the extra
1616         maintanence and complexity that having seperate sets of locks would
1617         cause)
1618
1619 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1620
1621         * bus/services.c (bus_registry_acquire_service): Return an error
1622         when an application tries to register the org.freedesktop.DBus Bus Name
1623
1624         * bus/services.c (bus_registry_release_service): Return an error
1625         when an application tries to release the org.freedesktop.DBus Bus Name
1626
1627 2006-08-17  Alp Toker  <alp@atoker.com>
1628
1629         * doc/dbus-specification.xml: Fix some minor typos.
1630
1631 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1632
1633         * configure.in: use $with_init_scripts instead of $operating_system
1634         to determine where to store the pid since the init scripts manipulate 
1635         the pid file (patch from Marcelo Ricardo Leitner 
1636         <marcelo dot leitner at terra dot com dot br>.  
1637
1638 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1639
1640         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1641         static DBusList *uninitialized_condvar_list to support new late 
1642         initialization threading model.  In this model threads can be initialized
1643         even after the D-Bus API has been used but still needs to be initialized 
1644         before the second thread has been started.  Mutexes and condvar addresses
1645         are stored in the two static lists and are replaced with actuall locks
1646         when threads are initalized.
1647         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1648         the location into the static list
1649         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1650         from the static list and freeing the mutex
1651         (_dbus_condvar_new_at_location): New method for creating a conditional 
1652         variable and placing the location into the static list
1653         (_dbus_condvar_free_at_location): New method for removing a conditional
1654         variable location from the static list and freeing the conditional variable 
1655         (init_uninitialized_locks): Atomic method which goes through the static 
1656         lists of mutex and condvar location and updates them with actuall locks
1657         (init_global_locks): changed to init_locks
1658         
1659         * dbus/dbus-connection.c:
1660         (_dbus_connection_test_get_locks): New method for tests to check connections
1661         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1662         condvar API
1663         (dbus_connection_allocate_data_slot): Pass in the global lock address
1664         to _dbus_data_slot_allocator_alloc
1665
1666         * dbus/dbus-dataslot.c:
1667         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1668         instead of the mutex itself
1669
1670         * dbus/dbus-message.c:
1671         (dbus_message_allocate_data_slot): Pass in the global lock address
1672         to _dbus_data_slot_allocator_alloc
1673
1674         * dbus/dbus-pending-call.c:
1675         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1676         to _dbus_data_slot_allocator_alloc
1677
1678         * dbus/dbus-server.c:
1679         (_dbus_server_init_base): Use the new at_location mutex API
1680         (dbus_server_allocate_data_slot): Pass in the global lock address
1681         to _dbus_data_slot_allocator_alloc
1682
1683         * test/name-test/test-threads-init.c: New test case for late thread
1684         initialization
1685
1686 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1687
1688         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1689         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1690         causes compile problems when asserts are turned off
1691         Keeping _dbus_warn for printing out the message so even if
1692         asserts are turned off the user gets the messages that something is 
1693         wrong 
1694
1695 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1696
1697         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1698
1699         * bus/services.c (bus_service_list_queued_owners):
1700         Add a pointer cast to fix compiler warning
1701
1702         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1703         return a NULL instead of FALSE since the return type
1704         is not expecting a boolean
1705
1706         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1707         Remove unused variable
1708
1709         * dbus/dbus-marshal-recursive-util.c (node_new):
1710         return a NULL instead of FALSE since the return type
1711         is not expecting a boolean
1712
1713         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1714         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1715         because we are expecting a pointer not a boolean
1716
1717         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1718         add void as the parameter so some compilers
1719         don't complain
1720
1721         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1722           _dbus_transport_new_for_tcp_socket):
1723         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1724         because we are expecting a pointer not a boolean
1725
1726         * test/shell-test.c (test_command_line):
1727         cast the second argument to _dbus_list_append to avoid compiler
1728         warnings
1729
1730         * test/test-names.c (main): remove unused variable
1731
1732         * test/test-service.c (check_hello_from_self_reply):
1733         Initialize echo_message and echo_reply to NULL
1734         
1735         * test/test-shell-service.c (handle_echo):
1736         Remove unused variable and cast the third parameter passed to
1737         dbus_connection_get_object_path_data to avoid compiler warrnings
1738
1739         * test/name-test/test-names.c (clear_message_queue):
1740         Remove unused function
1741
1742         * test/name-test/test-pending-call-dispatch.c:
1743         Fix format string in printf
1744
1745
1746 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1747
1748         * dbus/dbus-bus.c:
1749         * test/name-test/test-names.c:
1750         Remove test method dbus_bus_connection_get_unique_name because 
1751         we already have public method dbus_bus_get_unique_name that 
1752         does the exact same thing
1753
1754 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1755
1756         * dbus/dbus-signature.c:
1757         fix typos in Julio's previous patch which cause make check to fail
1758
1759 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1760
1761         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1762         In any case it was wrong since this is a test checking to see if
1763         address parsing is correct.  There was no need to get the true
1764         tmp directory.  
1765
1766 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1767
1768         * dbus/dbus-macros.h: Revert the addition of stddef.h
1769         as we should not be adding it to library headers 
1770
1771 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1772
1773         * dbus/dbus-signature.c:
1774         Fix the unit tests so that they work if assertions are not enabled.
1775         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1776
1777 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1778
1779         * tools/run-with-tmp-session-bus.sh:
1780         * test/name-test/run-test.sh:
1781         Remove bashisms (patch from Julio M. Merino Vidal
1782         <jmmv at NetBSD dot org>)
1783
1784 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1785
1786         * configure.in: add a version (>= 2.6.0) check for libxml2
1787
1788 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1789
1790         * configure.in: make sure the compiler supports -Wfloat-equal
1791         
1792         * bus/dir-watch-dnotify.c: move functional code after 
1793         variable declerations (C99 fix)  (patches from Jens Granseuer
1794         <jensgr at gmx dot net>
1795
1796 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1797
1798         * dbus/dbus-macros.h:
1799         add #include <stddef.h> so that Sun compilers don't complain about
1800         the defining NULL
1801
1802 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1803
1804         * dbus/dbus-sysdeps.c:
1805         * dbus/dbus-address.c:
1806         * bus/activation.c:
1807         * test/shell-test.c:
1808         don't hardcode tmp directory (patch from Dave Meikle 
1809         <dmk at davemeikle dot co dot uk>)
1810
1811 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1812
1813         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1814         Change an assert to a detailed warning and abort.  
1815         When allocator->lock != mutex it indicates that the user has failed
1816         to initalize threads before using the D-Bus library.  This warning
1817         helps the user identify the issue and fix their app.
1818
1819 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1820
1821         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1822         with cleanups of bugs found from Coverity reports:
1823
1824         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1825         close the file on error to avoid a leak
1826
1827         * bus/expirelist.c (bus_expire_list_test):
1828         Check for NULL on dbus_new0
1829
1830         * bus/activation.c (update_directory):
1831         remove dead code
1832
1833         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1834         Fix some leaks
1835
1836         * bus/bus.c (process_config_every_time):
1837         Fixed a leak
1838
1839         * bus/desktop-file.c (parse_key_value):
1840         Fixed leak
1841
1842         * bus/selinux.c (bus_selinux_id_table_insert):
1843         Fixed leak
1844
1845 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1846
1847         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1848         remove dead code
1849
1850 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1851
1852         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1853         #!/bin/bash
1854
1855 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1856
1857         * Doxyfile.in: fix the INPUT line so we can generate docs 
1858         when sourcedir != builddir (patch from Cygwin Ports maintainer
1859         <yselkowitz at users dot sourceforge dot net>
1860
1861 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1862
1863         * dbus/dbus-sysdeps.h:
1864         * dbus/dbus-sysdeps.c: 
1865         * dbus/dbus-string.c: 
1866         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1867         GLib's function which does the same thing
1868
1869         * configure.in:
1870         * bus/Makefile.am:
1871         * bus/dir-watch-default.c:
1872         * bus/dir-watch-dnotify.c:
1873         * bus/dir-watch-kqueue.c:
1874         Add kqueue directory watching for freebsd and split the directory
1875         watching code into seperate files per method/arch
1876         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1877
1878 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1879
1880         * configure.in:
1881         * tools/Makefile.am:
1882         * tools/dbus-launch.c:
1883         * bus/Makefile.am:
1884         allow --with-dbus-daemondir switch to be used to make the
1885         daemon install to a seperate bindir like /usr/libexec
1886         (patch from Brian Cameron <brian dot cameron at sun dot com)
1887
1888 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1889
1890         * bus/Makefile.am (install-data-hook): removed the slash after 
1891         $(DESTDIR) so we don't get the double slash which does not work
1892         in windows (patch from Andras Porjesz 
1893         <andras dot porjesz at siemens dot com>)
1894
1895 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1896
1897         * dbus/dbus-sysdeps.h:
1898         * dbus/dbus-sysdeps.c: 
1899           add _dbus_printf_length (patch from Peter Kümmel 
1900           <syntheticpp at gmx dot net>)
1901
1902 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1903
1904         * dbus/dbus-internals.c: unistd.h is not used 
1905         (_dbus_verbose_real): only enable verbose printing 
1906         if DBUS_VERBOSE environment var is set to '1'
1907         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1908
1909 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1910
1911         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1912         so we still compile on older gcc (patch from Frederic Peters 
1913         <fpeters at 0d dot be>
1914
1915 2006-08-04  Havoc Pennington  <hp@redhat.com>
1916
1917         * configure.in: add -Wdeclaration-after-statement
1918
1919         * dbus/dbus-connection.c: change all the pending call stuff to
1920         reflect the fact that pending call operations use the connection
1921         lock
1922
1923         * dbus/dbus-pending-call.c: add locking here
1924
1925         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1926         field const consistent with how message field is done
1927
1928 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1929
1930         * s/D-BUS/D-Bus/g
1931
1932 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1933
1934         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1935         <in7y118 at public.uni-hamburg dot de> - fix invalid
1936         read/write reported by valgrind
1937
1938 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1939
1940         * Released 0.91
1941
1942 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1943
1944         * dbus/dbus-connection.c:
1945         (_dbus_connection_attach_pending_call_unlocked):
1946         (connection_timeout_and_complete_all_pending_calls_unlocked):
1947         Make sure we set timeout_added on pending calls to FALSE when
1948         we remove the timeout from the connection
1949
1950 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1951
1952         * Removed some extra bindings stuff lingering around (thanks timo)
1953         * dbus-pendingcall.c (_dbus_pending_call_new): 
1954         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1955         when we tried to take a lock on an already locked connection
1956
1957 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1958
1959         * Released 0.90
1960
1961 2006-07-17  Havoc Pennington  <hp@redhat.com>
1962
1963         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1964         ints, reported by Owen Taylor
1965
1966 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1967
1968         * doc/TODO:
1969         * dbus/dbus-bus.c:
1970         * dbus-errors.c:
1971         * dbus/dbus-marshal-validate.c:
1972           Removed TODO items which were fixed or are no longer relevent
1973
1974 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1975
1976         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1977         Remove stray files from the stripped bindings
1978
1979 2006-07-16  Havoc Pennington  <hp@redhat.com>
1980
1981         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1982         Improve the error message on reply timeout
1983
1984 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1985
1986         * Remove all bindings
1987
1988 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1989
1990         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1991         and set pending_reply out arg to NULL is connection is disconnected
1992         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1993         static method for cleaning up pending calls on disconnect
1994         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1995         calls queued timeouts on disconnect 
1996
1997          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1998         Remove 
1999
2000 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
2001
2002         * bus/activation.[ch] (bus_activation_list_services): new function to 
2003         get the list of services that can be activated
2004
2005         * bus/dispatch.c: test coverage for the new bus method
2006         ListActivatableNames
2007
2008         * bus/driver.c: new bus method ListActivatableNames to get the list of
2009         services that can be activated
2010
2011         * doc/dbus-specification.xml: ListActivatableNames method documentation
2012
2013 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
2014         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
2015         source files
2016
2017 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
2018         * dbus/dbus-message-factory.c:
2019         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
2020
2021 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
2022         * dbus/dbus-connection-internal.h:
2023         * dbus/dbus-connection.c:
2024         * file dbus/dbus-pending-call.c:
2025         * dbus/dbus-pending-call.h:
2026         Make DBusPendingCall an opaque type even to D-Bus internals
2027
2028 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
2029
2030         * dbus/dbus-connection.h: remove connection_disconnect and replace with
2031         connection_close
2032
2033         * dbus/dbus-connection.c: include dbus-bus.h
2034         (_dbus_connection_read_write_dispatch): make static
2035
2036 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
2037
2038         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
2039         function
2040         (dbus_connection_dispatch): On disconnect unref any shared connections
2041
2042         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
2043         for cleaning up shared connections on disconnect
2044         (internal_bus_get): get a hard refrence to shared connections when
2045         they are created
2046         
2047         * doc/TODO: Remove items which are no longer relevent or have been fixed
2048         Split 1.0 todo items with a 0.90 freeze todo list
2049  
2050 2006-06-14  Ross Burton  <ross@openedhand.com>
2051
2052         * glib/dbus-gobject.c:
2053         Free a leaking GArray (surely not!) in dbus_g_method_return.
2054
2055 2006-06-14  Ross Burton  <ross@openedhand.com>
2056
2057         * tools/Makefile.am:
2058         * tools/dbus-monitor.c:
2059         Don't use the GLib bindings in dbus-monitor (patch from Ralf
2060         Habacker).
2061         
2062 2006-06-14  Ross Burton  <ross@openedhand.com>
2063
2064         * tools/dbus-print-message.c:
2065         Also print the object path when outputting signals or method calls.
2066
2067 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
2068
2069         * qt/src/Makefile.am: install the qdbus.h header.
2070         This allows people to actually use the installed code.
2071
2072 2006-06-12  Ross Burton  <ross@openedhand.com>
2073
2074         * glib/dbus-gproxy.c:
2075         Don't leak a GArray when firing signals (thank Rob Taylor for review).
2076
2077 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2078
2079         * Released 0.62
2080
2081 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2082
2083         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
2084         break pedantic builds. Closes bug 6043 (patch approved by
2085         Havoc back in February).
2086
2087 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2088
2089         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
2090         that took a QDBusMessage parameter.
2091         * qt/src/qdbusbus.h: Add a default flag for RequestName.
2092         * qt/tools/dbus.cpp: Don't use automatic call because we might
2093         be calling an async method: request a reply.
2094
2095 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
2096
2097         * test/qt/*: Update the testcases, including testing the new
2098         functionality of sending null QByteArray and QString over the
2099         bus. Add new headertest test and restore the old
2100         qdbusxmlparser test.
2101
2102 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
2103
2104         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
2105         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
2106
2107         * qt/examples/Makefile.am:
2108         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
2109         form.
2110
2111         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
2112         QByteArray() (nulls) over the bus.
2113         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
2114         the one that has the signature suffix stripped.
2115         * qt/src/qdbusreply.h: Make some methods const.
2116
2117 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
2118
2119         Patch from Timo Hoenig <thoenig@suse.de>.
2120
2121         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
2122         required during build to EXTRA_DIST.
2123         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
2124         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
2125         * configure.in: Fix "make dist", take care that the Makefile for
2126         qt/dbus is being generated.
2127
2128 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2129
2130         * bus/bus.c: Fix eavesdropping on method calls
2131
2132 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2133
2134         * configure.in:
2135         * dbus/dbus-userdb-util.c:
2136         Add Solaris console owner patch from Artem Kachitchkine
2137
2138 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
2139
2140         * qt/Makfile.am:
2141         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
2142         reorganisation. Thanks to Timo Hoenig for pointing this out.
2143
2144 2006-06-06  Robert McQueen  <robot101@debian.org>
2145
2146         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
2147           call to dbus_g_type_get_struct.
2148
2149 2006-06-06  Robert McQueen  <robot101@debian.org>
2150
2151         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
2152           pointers were put into a GPtrArray-based specialised collection, and
2153           then freed along with the array. GValues which you add into
2154           collections or maps which have the NOCOPY flag set are assumed to not
2155           belong to the caller, so rather than the existing pointer-stealing
2156           semantics, they are copied instead. Given that the main consumers of
2157           this abstraction are the bindings themselves, I don't think this is
2158           too bad, but others should watch their choice of take vs set_static.
2159
2160 2006-06-06  Robert McQueen  <robot101@debian.org>
2161
2162         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
2163           of g_slist_prepend not being used. Fixed copying of slist-based
2164           specialised collections, then wrote a test case and found that it was
2165           all broken. Went on to fix iterating and appending too. Good thing
2166           nobody uses this code yet.
2167
2168 2006-06-06  Robert McQueen  <robot101@debian.org>
2169
2170         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
2171           the iterators use gvalue_take_ptrarray_value (the GValues themselves
2172           are discarded without unsetting, so it makes no difference whether
2173           we take or set_static). Remove cases for G_TYPE_POINTER because
2174           there really is nothing useful we can do with them in our
2175           specialised types - we *need* boxed copy/free functions at the very
2176           least.
2177
2178 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
2179
2180         * qt/dbus: Add directory. I had forgotten to add this
2181         yesterday after the move...
2182
2183         * qt/examples/Makefile.am:
2184         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
2185
2186         * qt/tools/Makefile.am:
2187         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
2188         Added feature to get and set properties.
2189         Added validation of service, object path and interface names.
2190
2191         * qt/tools/dbusidl2cpp.cpp: Two new features:
2192         1) Allow specifying both the header and the source file names,
2193         by separating them with a colon.
2194         2) Don't write an interface output if the -p switch wasn't
2195         given, but the -a was.
2196
2197         * qt/src/*: Fix usage of Iterators and ConstIterators.
2198         Fix shadowing of variables by other variables (-Wshadow).
2199         Fix keyword-cleanliness in headers.
2200         Fix ASCII-cast (QLatin1String, QLatin1Char).
2201         Fix validation of member names.
2202         Add extra checking of introspection data during XML parsing.
2203         Various bug fixes.
2204
2205 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2206
2207         * dbus/Makefile.am:
2208         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
2209         qt/dbus/qdbus.h now.
2210
2211 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2212
2213         * configure.in: Make --disable-qt actually do
2214           something. Patch inspired by Zack Rusin.
2215
2216 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2217
2218         * qt/: Update to Subversion r548032.
2219         This includes a big reorganisation of the files inside the
2220         subdir.
2221
2222 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
2223
2224         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
2225         clear:  
2226         "Failed to connect to socket <host>:<port> <error>" instead of
2227         "Failed to connect to socket <host>: <error>:<port>"
2228
2229         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
2230         for a tcp transport. 
2231
2232 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2233
2234         * qt/*: Update the QtDBus bindings up to revision 546310 in
2235         Subversion.
2236         This adds the dbuscpp2xml tool, that parses a C++ header and
2237         outputs a D-BUS Introspection XML.
2238
2239 2006-05-21  Havoc Pennington  <hp@redhat.com>
2240
2241         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
2242         is not NULL when it shouldn't be. Also a couple of possible fixes
2243         for #4637 though I don't understand why the bug happens, to be
2244         honest... also the object constructor has an assert name != NULL
2245         and the name is only currently NULL for peer-to-peer proxies that 
2246         I don't think anyone uses? So it should be asserting.
2247         Anyway, for now at least see if we get an earlier assertion failure.
2248
2249         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
2250         apparently broken code to be sure the tests fail and someone 
2251         will fix them...
2252
2253 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
2254
2255         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
2256         and arrays when they had a single element: has_next returns
2257         false, even before you read the element. So, instead, check
2258         the array length.
2259
2260 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2261
2262         * qt/qdbusmessage.cpp:
2263         * qt/qdbustypehelper_p.h:
2264         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
2265         the list is a const-reference
2266
2267 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
2268
2269         * Adding old doc patch that never got applied
2270         
2271         * dbus/bus.c (dbus_bus_add_match): Add documentation
2272
2273         * doc/dbus-specification.xml: Add documentation for the match rules
2274           and the AddMatch and RemoveMatch methods
2275
2276 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
2277
2278         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2279         call (r535506)
2280
2281         * qt/dbusidl2cpp.cpp:
2282         * qt/qdbusabstractadaptor.cpp:
2283         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
2284         sibling of the QDBusAbstractAdaptor objects instead of the
2285         parent. (r535848)
2286
2287         * qt/dbusidl2cpp.cpp:
2288         * qt/qdbusabstractinterface.cpp:
2289         * qt/qdbusabstractinterface.h:
2290         * qt/qdbusabstractinterface_p.h:
2291         * qt/qdbusinterface.cpp: Make properties in interfaces
2292         actually work. The code that was generated would not compile,
2293         due to moc calls to functions that did not exist. They now
2294         shall. (r536571)
2295
2296 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
2297
2298         * Makefile.am:
2299         * configure.in:
2300         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
2301         Thanks to Brad Hards for providing the patch
2302
2303 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2304
2305         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2306         call. (r535506)
2307
2308 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2309
2310         * qt/examples/dbus.cpp: Enhance error messages and use
2311         QDBusInterfacePtr.
2312
2313 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2314
2315         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
2316         and disable the copy operators. (r533772, r534746)
2317
2318         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
2319
2320         * qt/qdbusabstractinterface.cpp:
2321         * qt/qdbusabstractinterface.h: Change the default call mode to
2322         not use the event loop. Add convenience call() methods that
2323         take a CallMode parameter. (r534042)
2324
2325         * qt/qdbusconnection.h: Change the default call mode to not
2326         use the event loop. (r534042)
2327
2328         * qt/qdbusinterface.cpp:
2329         * qt/qdbusinterface.h: Add a method to tell us if the
2330         interface is valid (since we don't return a null pointer
2331         anymore) (r534099)
2332
2333         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2334         (r534101)
2335
2336         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2337         function in two so taht we get the chance to introspect
2338         without having a QDBusMessage (r534102)
2339
2340         * qt/qdbusbus.h:
2341         * qt/qdbusconnection.cpp:
2342         * qt/qdbusconnection_p.h:
2343         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2344         avoid a round-trip to the server when attempting to introspect
2345         one of our own objects. Also make sure the filter functions
2346         match the empty interface as well. (r534108)
2347         Don't keep the connection names. Instead, trust the unique
2348         connection name (r534111)
2349         Remove event loop usage (r534112)
2350
2351 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2352
2353         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2354         Brad Hards.
2355
2356 2006-04-28  Robert McQueen  <robot101@debian.org>
2357
2358         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2359         any order, making it easier for people who inherit from this
2360         object.
2361
2362 2006-04-28  Robert McQueen  <robot101@debian.org>
2363
2364         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2365         of memory from within pointer arrays and lists. Fixes bug #6300.
2366
2367 2006-04-28  Robert McQueen  <robot101@debian.org>
2368
2369         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2370         generating struct signatures. Fixes bug #6083.
2371
2372 2006-04-28  Robert McQueen  <robot101@debian.org>
2373
2374         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2375         to qdbusconnection_p.moc.
2376
2377 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2378
2379         * README, INSTALL: Doc fixes
2380         Patch from Brad Hards <bradh at frogmouth.net>
2381
2382 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2383
2384         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2385         the dynamic meta object. No need to guess which interface to
2386         call.
2387
2388 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2389
2390         * qt/qdbusconnection_p.h:
2391         * qt/qdbusmetaobject.cpp:
2392         * qt/qdbusmetaobject_p.h:
2393         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2394         for the dynamic meta object. No need to guess which
2395         interface to call.
2396         * qt/qdbusabstractinterface_p.h:
2397         * qt/qdbusconnection.cpp:
2398         * qt/qdbusintegrator.cpp:
2399         * qt/qdbusinterface.cpp:
2400         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2401         Add a QDBusRef that looks and behaves like DCOPRef.
2402
2403 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2404
2405         * dbus/dbus-connection.c: Interfaces are optional in method
2406         calls, so don't give up if the interface parameter is NULL.
2407         Patch reviewed by Havoc Pennington.
2408
2409 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2410
2411         * qt/qdbusreply.h: Add default constructor and operator=
2412           (r532625)
2413         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2414           in public headers (r532952)
2415         * qt/qdbusabstractinterface.cpp:
2416         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2417           make it the default (r532951)
2418
2419 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2420
2421         * dbus/dbus-connection.c: Fix asserts
2422         Patch from Tim Moloney <t.moloney at verizon.net>
2423
2424 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2425
2426         * mono/Connection.cs, mono/Message.cs: Check Target type
2427         Patch from Aaron Bockover (abockover at novell.com)
2428
2429 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2430
2431         * INSTALL: fine-tune the requirements for the Qt4 binding.
2432
2433 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2434
2435         * tools/dbus-print-message.c: Added support for printing of all 
2436           remaining data types. Fixed logic for indentation of compound
2437           data types.
2438         
2439 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2440
2441         * INSTALL: fill out content of file providing DBus specific
2442           build installations, followed by generic Auto* INSTALL file
2443           content
2444         
2445 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2446
2447         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2448           Patch by Stefan Eilers. (r529537)
2449
2450 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2451
2452         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2453           contents (r528208)
2454
2455 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2456
2457         * qt/Makefile.am: fix the dependency for
2458           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2459           not in qdbusconnection.cpp.
2460           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2461           spotting this.
2462
2463 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2464
2465         * qt/examples/listnames.cpp:
2466         * qt/examples/Makefile.am: Three ways to list the names on the
2467           bus.
2468
2469 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2470
2471         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2472           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2473
2474 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2475
2476         Merge from Subversion:
2477         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2478           something that exists (r526315)
2479         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2480           slots/signals (r526316)
2481         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2482           also return an unknown-method error if the parameters don't
2483           match for org.freedesktop.DBus.Properties. (r526842)
2484         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2485         * qt/qdbusintegrator.cpp: Restore the proper order of
2486           delivery: don't make method returns be delivered on priority
2487           (r528150)
2488
2489 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2490
2491         * configure.in qt/Makefile.am: add qt/examples
2492         * qt/examples: Add QtDBus example programs:
2493           - hello: Hello, World
2494           - ping: Simple method-calling program
2495           - pong: Simple object-exporting program (not using adaptors)
2496           - complexping: Interactive method-calling program 
2497                 (also gets and sets properties).
2498           - complexpong: Sample program exporting methods, signals and
2499                 properties, using adaptors.
2500           - dbus: Simple implementation of a generic method-calling
2501                 program, similar to 'dbus-send', but with semantics
2502                 similar to 'dcop'.
2503           - chat: Simplistic chat program, implemented using signals
2504                 and the system bus. Looks like IRC.
2505
2506 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2507
2508         * configure.in: Detect QtGui (necessary for one of the
2509           example programs). Note: this increases the minimum required
2510           version of Qt to 4.1.3.
2511
2512 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2513
2514         * test/qt/*: Sync with KDE Subversion revision 523647.
2515         Update the testcases to the new API. Remove testcases for
2516         classes that are no longer public or have been removed.
2517
2518 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2519
2520         * qt/*: 
2521         * dbus/qdbus.h: Sync with KDE Subversion revision
2522         523647. Hopefully, this will be the last of the
2523         source-incompatible changes. Documentation has been improved;
2524         support for QList<basic-types> has been added; QDBusObject is
2525         gone; QDBus(Abstract)Interface is now a QObject with
2526         auto-generated meta-object; QDBusIntrospection is marked
2527         private, since QMetaObject can be used now; lots of bugfixes.
2528
2529 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2530
2531         Patch from Milosz Derezynski <internalerror at gmail.com>
2532         
2533         * configure.in:
2534         Output the service directory in the configure summary
2535
2536         * dbus-1.pc.in:
2537         Add session_bus_services_dir
2538
2539 2006-03-10  Ross Burton  <ross@openedhand.com>
2540
2541         * tools/dbus-print-message.c:
2542         Add support for object paths and signatures.
2543
2544 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2545
2546         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2547         config reload.
2548         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2549         information caches
2550         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2551         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2552         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2553         * dbus/dbus-userdb.h: Add function to flush all user/group information
2554         caches.
2555
2556 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2557
2558         * qt/dbusidl2cpp.cpp:
2559         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2560         for dcopidl2cpp, found in the KDE installations (or the more
2561         modern kalyptus): generate Qt4 C++ code for the input XML
2562         introspection. Currently no IDL parsing.
2563
2564 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2565
2566         * test/qt/*: Update the self-tests.
2567
2568 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2569
2570         * qt/*: 
2571         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2572         represents the first feature-complete version of the Qt4
2573         bindings since I took ove maintainership.
2574
2575 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2576
2577         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2578         dir. This is C++, so we can't use the DBus ones.
2579
2580 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2581
2582         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2583         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2584
2585 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2586
2587         * dbus/dbus-connection.c: 
2588         (_dbus_connection_block_pending_call):
2589         Check to see if our data has already been read off the connection
2590         by another blocking pending call before we block in poll.
2591         (check_for_reply_and_update_dispatch_unlocked):
2592         Code taken from _dbus_connection_block_pending_call - checks for
2593         an already read reply and updates the dispatch if there is one.
2594
2595         * test/name-test/test-pending-call-dispatch.c:
2596         New test for making sure we don't get stuck polling a 
2597         dbus connection which has no data on the socket when
2598         blocking out of order on two or more pending calls.
2599
2600 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2601
2602         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2603         make/automake don't detect that we're talking about the same
2604         .lo file if I specify the full path to the source files.
2605
2606 2006-02-26  Havoc Pennington  <hp@redhat.com>
2607
2608         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2609
2610         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2611         session bus variable is unset, suggest "man dbus-launch" and "man
2612         dbus-daemon" to figure out how to fix the problem
2613
2614 2006-02-25  Havoc Pennington  <hp@redhat.com>
2615
2616         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2617         should make this thing use the new glib options parser
2618
2619 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2620
2621         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2622         .lo files taking moc sources.
2623
2624 2006-02-25  Havoc Pennington  <hp@redhat.com>
2625
2626         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2627         and install it as a public header
2628
2629 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2630
2631         * Released 0.61
2632
2633 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2634         
2635         * proxies.py: Fix the callchain
2636
2637 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2638         
2639         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2640
2641         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2642         dbus/dbus-sysdeps.c
2643
2644         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2645         call _dbus_group_info_free_allocated which causes infinite loop,
2646         correctly call _dbus_group_info_free
2647
2648 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2649
2650         * qt/qdbusinterface_p.h:
2651         * qt/qdbusinterface.cpp: Use the standard
2652         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2653         calls instead of creating one for us.
2654
2655         * qt/qdbusconnection_p.h:
2656         * qt/qdbusintegrator.cpp: Remove debugging code.
2657
2658         * qt/qdbusintegrator.cpp:
2659         * qt/qdbusmessage.cpp:
2660         * qt/qdbusmessage_p.h:
2661         * qt/qdbusmessage.h: Change the behaviour of automatic
2662         reply-sending: now a reply is always sent, unless the caller
2663         didn't request one or if the user slot has already sent one.
2664
2665 2006-02-16  Robert McQueen  <robot101@debian.org>
2666
2667         * configure.in: Patch from Debian packages by Sjoerd Simons
2668         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2669         arguments so it's possible to build both bindings in the
2670         same tree.
2671
2672         * qt/Makefile.am: Fix truncated value so that make dist works.
2673
2674 2006-02-16  Robert McQueen  <robot101@debian.org>
2675
2676         * acinclude.m4, configure.in: Patch from Brad Hards
2677         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2678         improving quoting, re-ordering a few checks, and a few other
2679         aesthetic tidy-ups.
2680
2681 2006-02-16  Robert McQueen  <robot101@debian.org>
2682
2683         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2684         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2685         assertion that the next element to read from the iter is fixed in
2686         size. This is not the case when you are at the end of the iter,
2687         because the next element type is INVALID.
2688
2689         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2690         a bogus assert which means that you may not initialise a 0-length
2691         string unless you provide a non-NULL pointer. This prevented
2692         you from marshalling messages containing zero-length arrays in
2693         some cases.
2694
2695         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2696         from Rob to correct bogus asserts when trying to demarshal an
2697         array and get_fixed_array got you 0 elements. Append nothing to
2698         the GArray in this case.
2699
2700         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2701         an empty array via the glib bindings. Without all of the above
2702         patches, this new test fails.
2703
2704 2006-02-16  Robert McQueen  <robot101@debian.org>
2705
2706         * glib/dbus-gmain.c: Make the previous commit compile.
2707
2708         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2709         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2710         specify sender_keyword="foo", path_keyword="bar" when adding
2711         a signal listener, so that you can bind to signals generically
2712         but still do something useful in your callback.
2713
2714         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2715         chars so that they're not cast to chars and made negative. Thanks
2716         to Jakub Stachowski for reporting this and testing the fix.
2717
2718 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2719
2720         * dbus/dbus-glib.h:
2721         * glib/dbus-gmain.h:
2722         (dbus_g_connection_open): new method for openning
2723         a connection to an arbitrary address in the glib bindings
2724
2725         * ChangeLog: checkin last entry which doesn't seem to be commited
2726
2727 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2728
2729         * tools/dbus-launch.c: Fixed sh syntax output
2730
2731 2006-02-13  Robert McQueen  <robot101@debian.org>
2732
2733         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2734         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2735         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2736         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2737         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2738         missing piece of the glib bindings jigsaw puzzle. This modifies
2739         the existing specialised types to have N type parameters (rather
2740         than the current 1 or 2 for arrays and dictionaries respectively).
2741         You can then use this to get a glib type to represent any arbitrary
2742         D-Bus struct type using dbus_g_type_get_struct. The only
2743         implementation of these types is with GValueArrays as before,
2744         but it's now possible to store these in arrays, emit them in
2745         signals, etc.
2746
2747 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2748
2749         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2750         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2751         <thiago.macieira at trolltech.com>
2752
2753 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2754
2755         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2756         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2757
2758 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2759
2760         * bus/connection.c (bus_connections_expect_reply): Make
2761         pending reply limit not common to all connections (Bug #5416)
2762         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2763
2764 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2765
2766         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2767
2768 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2769
2770         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2771         patch from Doug Goldstein <cardoe at gentoo.org>
2772
2773 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2774
2775         * mono/Arguments.cs: Fix a magic number in the mono bindings
2776         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2777
2778 2006-01-27  Robert McQueen  <robot101@debian.org>
2779
2780         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2781         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2782         when generating the client-side methods, instead of overloading
2783         CSymbol which broke everything horribly. My apologies.
2784
2785 2006-01-27  Robert McQueen  <robot101@debian.org>
2786
2787         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2788         by me and Rob Taylor to add a simple_free function to D-Bus map
2789         and collection types, which allows those types which can be freed
2790         with a GDestroyNotify (such as GHashTables and GArrays, but not
2791         GPtrArrays) to be stored as the values in hashtables.
2792
2793         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2794         Patch by Rob Taylor to add nested dicts to the glib tests to check
2795         the above code works, and appears not to leak when called repeatedly.
2796
2797 2006-01-27  Robert McQueen  <robot101@debian.org>
2798
2799         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2800         to free a D-Bus allocated string with dbus_free () instead of
2801         g_free ().
2802
2803 2006-01-27  Iain Holmes  <iain@openedhand.com>
2804
2805         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2806         method from being called multiple times.
2807
2808 2006-01-19  Robert McQueen  <robot101@debian.org>
2809
2810         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2811         <rob.taylor@collabora.co.uk> to add support for generating bindings
2812         to arrays that are represented as GPtrArrays rather than GArrays (ie
2813         size-variable things, such as strings, objects, structs, etc).
2814
2815 2006-01-05  Robert McQueen  <robot101@debian.org>
2816
2817         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2818         <ricardo.kekki@movial.fi> to make it possible to inherit from
2819         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2820         a private part, and moving the setting of the DBusGProxyManager into a
2821         connection property, allowing proper GObject construction.
2822
2823 2006-01-05  Robert McQueen  <robot101@debian.org>
2824
2825         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2826         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2827         annotations when generating glib client bindings.
2828
2829 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2830
2831         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2832
2833         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2834
2835 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2836
2837         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2838
2839 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2840
2841         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2842
2843 2005-12-19  Ross Burton  <ross@openedhand.com>
2844
2845         * doc/dbus-tutorial.xml:
2846         Document the Glib client-side bindings, and list all possible annotations.
2847
2848 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2849
2850         * dbus/bus.c (dbus_bus_release_name): Add documentation
2851
2852 2005-12-06  Robert McQueen  <robot101@debian.org>
2853
2854         * python/service.py: s/sucessful/successful/ so we're allocating to
2855         and reading from the same variable. Oops.
2856
2857 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2858
2859         * Released 0.60
2860
2861 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2862
2863         * test/qt/Makefile.am: build from srcdir
2864
2865         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2866         Note - this code is wrong and needs to be fixed by the Qt binding
2867         developers.  The flags should be treated as bitfields and not enums.
2868
2869         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2870
2871 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2872
2873         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2874           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2875           in production code
2876
2877 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2878
2879         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2880         method for getting messages off the bus in the absence of a
2881         mainloop.  This method is much like 
2882         dbus_connection_read_write_dispatch except it does not dispatch
2883         the messages to a registered filter function.  Instead it
2884         allows a developer to process messages by directly popping
2885         them off the bus.
2886
2887 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2888
2889         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2890         the parser to continue instead of returning error
2891         (bus_desktop_file_load): Do not free parser data when
2892         parse_section_start or parse_key_value fails because it was 
2893         already freed by parser_free (patch from Carlos Garcia Campos  
2894         <carlosgc at gnome.org>)
2895
2896 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2897
2898         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2899         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2900         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2901         test/test-segfault.c, test/test-utils.c,
2902         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2903         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2904         Various cleanup of dead code and compiler warnings (patch from
2905         Kjartan Maraas <kmaraas at gnome.org>) 
2906
2907 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2908
2909         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2910         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2911
2912 2005-11-27  Robert McQueen  <robot101@debian.org>
2913
2914         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2915         part of the preceding one. Oops. Merge patch by Johan Hedberg
2916         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2917         on big-endian platforms.
2918
2919         * test/python/test-client.py: Add some 16-bit integers to the test
2920         values.
2921
2922 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2923
2924         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2925         method return message for property getters
2926
2927 2005-11-27  Robert McQueen  <robot101@debian.org>
2928
2929         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2930         with type v of an instance of dbus.Variant(foo, type='x') caused
2931         it to be boxed twice before sending over the bus.
2932
2933         * python/dbus_bindings.pyx, python/service.py,
2934         test/python/test-client.py: Update the constants for the new
2935         request_name flags, and update comments/test cases now that queueing
2936         is the default action.
2937
2938 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2939
2940         * configure.in:
2941         - Change version to 0.60 for impending release
2942         - upped the sonames because of ABI and API breakage
2943
2944 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2945
2946         * configure.in: Add test/name-test/Makefile to the generated
2947         Makefile list
2948
2949         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2950         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2951         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2952         not to queue an ower if it can't be the primary owner
2953
2954         * bus/bus.h: Add new internal BusOwner struct
2955
2956         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2957         to bus_registry_ensure and don't set the prohibit_replacement flag
2958         since they are now set per BusOwner and not per name.
2959         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2960         that returns the list of connections in a name's connection queue
2961         
2962         * bus/services.c (struct BusService): remove prohibit_replacement field
2963         (struct BusOwner): new struct for keeping track of queued connections
2964         and their associated flags for the queue
2965         (struct BusRegistry): add a BusOwner memory pool
2966         (bus_registry_new): initialize the BusOwner memory pool
2967         (bus_registry_unref): free the BusOwner memory pool
2968         (_bus_service_find_owner_link): new internal method for
2969         searching the queue for a specific connection
2970         (bus_owner_set_flags): new method for adding setting the flags on a
2971         bus owner
2972         (bus_owner_new): new method that creates a BusOwner object from the
2973         pool and sets its flags
2974         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2975         (bus_registry_ensure): Add the flags parameter
2976         (bus_registry_acquire_service): Switch from using raw connections to
2977         using the BusOwner struct
2978         Add new state machine for dealing with the new set of flags
2979         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2980         cancel_ownership, free_ownership_cancel_data, 
2981         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2982         restore_ownership, free_ownership_restore_data, 
2983         add_restore_ownership_to_transaction): Switch to using BusOwner 
2984         instead of raw connections
2985         (bus_service_add_owner): Add flags parameter
2986         Switch to using BusOwner instead of raw connections
2987         Add state machine for dealing with the new set of flags
2988         (bus_service_swap_owner): Swaps the first and second owners in the
2989         queue.  Used to make sure proper signals are sent when a service looses 
2990         or gains primary ownership.  We never insert an owner at the top of the
2991         queue.  Instead we insert it in the second position and then swap.
2992         (bus_service_remove_owner): Remove the owner from the queue sending
2993         out the NameLost and NameOwnerChanged signals if the we were the 
2994         primary owner
2995         (bus_service_get_primary_owners_connection): New method that extracts
2996         the connection from the primary owner
2997         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2998         connection
2999         (bus_service_get_allow_replacement): Changed from the old 
3000         bus_service_get_prohibit_replacement method.  Checks the flags of the 
3001         primary owner and returns if it can be replaced or not
3002         (bus_service_set_prohibit_replacement): removed
3003         (bus_service_has_owner): returns TRUE if and owner with
3004         the specified connection exists in the queue
3005         
3006         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
3007         method that only compiles if tests are enabled.  Allows us to get the 
3008         unique name of a connection so we can check it against the queue when
3009         doing regression tests
3010
3011         * bus/activation.c (bus_activation_send_pending_auto_activate),
3012         bus/dispatch.c (bus_dispatch),  
3013         bus/driver.c (bus_driver_handle_get_service_owner, 
3014         bus_driver_handle_get_connection_unix_user, 
3015         bus_driver_handle_get_connection_unix_process_id,
3016         bus_driver_handle_get_connection_selinux_security_context),
3017         bus/signals.c (connection_is_primary_owner): 
3018         use bus_service_get_primary_owners_connection instead of
3019         bus_service_get_primary_owner
3020
3021         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
3022         _dbus_listen_unix_socket): Calculate the length of the socket
3023         path and use that instead of using a fixed length which was
3024         causing socket names to contain many trailing Nul bytes.
3025
3026         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
3027         (dbus_g_method_get_sender): New method for extracting the sender 
3028         from a DBusGMethodInvocation
3029         (dbus_g_method_return_get_reply): changed name to 
3030         dbus_g_method_get_reply
3031         (dbus_g_method_return_send_reply): changed name to
3032         dbus_g_method_send reply
3033
3034         * doc/dbus-specification.xml: New docs that describe how the new
3035         queueing system works and talks about the changes to the how
3036         we specify socket names
3037
3038         * glib/examples/example-service.c, 
3039         glib/examples/example-signal-emitter.c,
3040         glib/examples/statemachine/statemachine-server.c:
3041         Changed the RequestName flags to the new system
3042
3043         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
3044         regression test suite for testing various states of the new
3045         queueing system
3046         
3047 2005-11-15  Robert McQueen  <robot101@debian.org>
3048
3049         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
3050         Taylor to add two methods, dbus_g_method_return_get_reply and
3051         dbus_g_method_return_send_reply, to allow you to get the reply
3052         message from a DBusGMethodInvocation, append arbitrary stuff to it,
3053         and send it. The GLib bindings can't marshal a return value of
3054         something like a(s) if the array is empty - ultimately they should be
3055         made to heed the signature of the out arguments as the Python bindings
3056         now can, but this is a workable interim solution which might have
3057         other applications.
3058
3059 2005-11-15  Robert McQueen  <robot101@debian.org>
3060
3061         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
3062         method to org.freedesktop.DBus to release a bus name or give up
3063         waiting in the queue for it.
3064
3065         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
3066         dbus_bus_release_name method to send the ReleaseName method calls.
3067         Add constants for the return values to dbus/dbus-shared.h.
3068
3069         * doc/dbus-specification.xml: Document the new ReleaseName method
3070         in the specification.
3071
3072         * python/dbus_bindings.pyx: Add a low-level python binding for the
3073         release name method.
3074
3075         * python/exceptions.py, python/service.py: Make freeing BusName
3076         objects release the name. Add a NameExistsException, and fix a
3077         bug with creating UnknownMethodException.
3078
3079         * test/python/test-client.py: Add tests for freeing BusName
3080         objects causing names to be released.
3081
3082 2005-11-14  Robert McQueen  <robot101@debian.org>
3083
3084         * python/service.py: Include the traceback in the error reply when we
3085         send an exception over the bus. _BEST_ _PATCH_ _EVER_
3086
3087 2005-11-14  David Zeuthen  <davidz@redhat.com>
3088
3089         Patch from Timo Hoenig <thoenig@suse.de>.
3090
3091         * bus/bus.c: I've recently investigated why the automatic reload
3092         of configuration files does not work as expected.
3093
3094         Currently, reloading configuration files does only work when
3095         running dbus-daemon with --nodaemon.  If we are running as daemon
3096         we're hitting a dnotify bug once we fork the process.
3097
3098         We're initializing the dnotify fds before calling fork().  Once
3099         the child process forked it does still have the fds (and they
3100         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
3101         getting SIGIO as changes are made to the configuration files.
3102
3103         The attached patch moves the initialization of the dnotify fds to
3104         process_config_postinit().  This is safe for all current code
3105         paths and solves the dnotify disfunction.  If we're running
3106         dbus-daemon as daemon the fds for dnotify are now being
3107         initialized after fork() for the child process.
3108
3109         * configure.in: The current configure.in check for dnotify probes
3110         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
3111         match for 'xlinux', too. Additionally I have adapted the configure
3112         option's style to match with the others.
3113
3114 2005-11-14  Robert McQueen  <robot101@debian.org>
3115
3116         * python/decorators.py, python/service.py: Add a new argument to the
3117         dbus.service.method decorator called sender_keyword, which if set,
3118         specifies the name of an argument which will be provided the bus
3119         name of the method caller.
3120
3121         * test/python/test-client.py, test/python/test-service.py: Add a
3122         method and test to check the sender_keyword functionality.
3123
3124 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
3125
3126         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
3127         empty reply so blocking calls don't block forever (Patch from Sjoerd 
3128         Simons <sjoerd at luon.net>)
3129
3130         * AUTHORS: Add Robert McQueen for his work on the Python
3131         Bindings and other parts of D-Bus
3132
3133 2005-11-07  Robert McQueen  <robot101@debian.org>
3134
3135         * python/decorators.py: Change emit_signal function to use the
3136         signature annotation of the signal when marhsalling the arguments from
3137         the service. Fix a bug where the code checking signature length
3138         against argument length referenced the wrong variable.
3139
3140         * python/introspect_parser.py: Avoid adding the type signature of
3141         signal arguments to any methods which occur after them in the
3142         introspection data (!) by making the parser a little more careful
3143         about its current state.
3144
3145         * python/service.py: Remove debug prints from last commit (again :D).
3146
3147         * test/python/test-client.py, test/python/test-service.py: Add test
3148         signals with signature decorators to test the strict marshalling code
3149         gives errors at the right time. Could do with checking the signals
3150         actually get emitted too, given that the test does nothing with
3151         signals at the moment...
3152
3153 2005-11-07  Robert McQueen  <robot101@debian.org>
3154
3155         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
3156         instances to stop madness of creating new instances representing
3157         the same bus connection all the time, rendering any tracking of
3158         match rules and bus names quite meaningless. Caught a bug where
3159         the private argument to SessionBus() and friends was being passed
3160         in as use_default_mainloop by mistake. Still some problems with
3161         multiple dbus_binding.Connection instances representing the same
3162         low-level connection (eg when you use both SessionBus() and
3163         StarterBus() in same process), but it's a lot better now than it
3164         was.
3165
3166         * python/dbus_bindings.pyx: Add constants with the return values
3167         for bus_request_name().
3168
3169         * python/service.py: Store bus name instances in a per-dbus.Bus cache
3170         and retrieve the same instances for the same name, so deletion can be
3171         done with refcounting. Also now throws some kind of error if you
3172         don't actually get the name you requested, unlike previously...
3173
3174         * test/python/test-client.py: Add tests for instance caching of buses
3175         and bus name objects.
3176
3177 2005-11-04  Robert McQueen  <robot101@debian.org>
3178
3179         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
3180         marshalling of boolean values. Add some booleans to the values in
3181         the test client.
3182
3183         * python/decorators.py, python/service.py: Add an 'async_callbacks'
3184         argument to the dbus.service.method decorator, which allows you to
3185         name arguments to take two callback functions for replying with
3186         return values or an exception.
3187
3188         * test/python/test-client.py, test/python/test-service.py: Add test
3189         case using asynchronous method reply functions, both return values and
3190         errors, and from within both the function itself and from a mainloop
3191         callback.
3192
3193         * python/decorators.py, python/service.py: Perform checking that the
3194         number of method/signal arguments matches the number of types in the
3195         signature at class loading time, not when you first introspect the
3196         class.
3197
3198         * python/service.py: Remove debug print left by the last commit.
3199
3200 2005-11-03  Robert McQueen  <robot101@debian.org>
3201
3202         * python/service.py: Heavy refactoring of method invocation, with
3203         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
3204         in favour of a new _message_cb that uses seperate functions for
3205         looking up the method to call, marshalling the return values, and
3206         sending exceptions as errors, and is easier to follow as a
3207         consequence.  Fixes some corner cases about returning things that
3208         don't match your declared out_signature, allows exceptions to define
3209         _dbus_error_name and have it be sent over the bus as the error name,
3210         and paves the way for cool stuff like heeding the message no reply
3211         flag, asynchronous method implementations, informing the method of the
3212         sender, and including backtraces in the error messages.
3213
3214         * test/python/test-client.py: Catch and print exceptions thrown in the
3215         async callback tests, rather than passing them to the low-level
3216         bindings to be ignored in a noisy and frustrating manner.
3217
3218 2005-11-03  Robert McQueen  <robot101@debian.org>
3219
3220         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
3221         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
3222         tweak others to be consistent.
3223
3224         * test/python/test-client.py: Tweak output of testInheritance.
3225
3226 2005-10-29  Robert McQueen  <robot101@debian.org>
3227
3228         * python/service.py: Major changes to allow multiple inheritance
3229         from classes that define D-Bus interfaces:
3230         
3231          1. Create a new Interface class which is the parent class of
3232             Object, and make the ObjectType metaclass into InterfaceType.
3233         
3234          2. Patch written with Rob Taylor to replace use of method_vtable
3235             with code that walks the class's __MRO__ (method resolution order)
3236             to behave like Python does when invoking methods and allow
3237             overriding as you'd expect. Code is quite tricky because
3238             we have to find two methods, the one to invoke which has the
3239             right name and isn't decorated with the /wrong/ interface,
3240             and the one to pick up the signatures from which is decorated
3241             with the right interface.
3242         
3243             The same caveats apply as to normal multiple inheritance -
3244             this has undefined behaviour if you try and inherit from two
3245             classes that define a method with the same name but are
3246             decorated with different interfaces. You should decorate
3247             your overriding method with the interface you want.
3248         
3249          3. Replace grungy introspection XML generation code in the metaclass
3250             with dictionaries that cope correctly with multiple inheritance
3251             and the overriding of methods. This also uses the signature
3252             decorations to provide correct introspection data, including
3253             the debut appearance of the types of your return values. :D
3254
3255         * test/python/test-client.py, test/python/test-service.py: Add a test
3256         case to try invoking an method that overrides one inherited from a
3257         D-Bus interface class.
3258
3259 2005-10-29  Robert McQueen  <robot101@debian.org>
3260
3261         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
3262         Add checking for the end of struct character when marshalling a
3263         struct in MessageIter.append_strict.
3264
3265         * python/examples/example-service.py,
3266         python/examples/gconf-proxy-service.py,
3267         python/examples/gconf-proxy-service2.py: Update to use gobject
3268         mainloop directly rather than appearing to depend on gtk.
3269
3270         * python/test/test-client.py, python/test/test-server.py: Remove
3271         obsolete and broken test scripts for old bindings. We have up to date
3272         and working tests in test/python/.
3273
3274 2005-10-29  Robert McQueen  <robot101@debian.org>
3275
3276         * python/decorators.py: Add optional arguments to the method and
3277         signal decorators to allow you to specify the signature of arguments
3278         and return values. Preserve the doc strings of signal functions in the
3279         decorated version, for pydoc and friends.
3280
3281         * python/dbus_bindings.pyx, python/proxies.py: Replace the
3282         parse_signature_block function with an iterable dbus.Signature()
3283         type. Fix a bug in MessageIter.append_strict where you could append
3284         anything by claiming it was a string.
3285
3286         * python/service.py: Use the out_signature decoration on methods to
3287         marshal return values, meaning you no longer require dbus.Array()
3288         or dbus.Dictionary() to indicate the type when returning empty
3289         arrays or dictionaries. Fix a bug where exceptions which are defined
3290         in __main__ are not turned into error replies.
3291
3292         * test/python/test-client.py, test/python/test-service.py: Add test
3293         for correct marshalling of return values according to out_signature.
3294         Fix a bug in the async call test where the error_handler is missing a
3295         self argument.
3296
3297 2005-10-29  Robert McQueen  <robot101@debian.org>
3298
3299         * glib/Makefile.am, glib/examples/Makefile.am,
3300         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
3301         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
3302
3303         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
3304
3305         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
3306         from Ubuntu by Daniel Silverstone to allow specifying match rules on
3307         the command line.
3308
3309 2005-10-27  Ross Burton  <ross@openedhand.com>
3310
3311         * dbus/dbus-marshal-header.c:
3312         Remove dead code.
3313
3314         * glib/dbus-gobject.c:
3315         Stop compiler warning.
3316
3317 2005-10-25  Ross Burton  <ross@openedhand.com>
3318
3319         * dbus/dbus-auth.c:
3320         * dbus/dbus-server-unix.c:
3321         * dbus/dbus-transport-unix.c:
3322         * glib/dbus-gmain.c:
3323         * glib/dbus-gobject.c:
3324         Add some const keywords.
3325
3326 2005-10-25  Ross Burton  <ross@openedhand.com>
3327
3328         * doc/dbus-specification.xml:
3329         Document the NoReply annotation.
3330
3331         * glib/dbus-binding-tool-glib.h:
3332         * glib/dbus-binding-tool-glib.c:
3333         Respect the NoReply annotation.
3334
3335 2005-10-24  Robert McQueen <robot101@debian.org>
3336
3337         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3338         derive from unicode instead of str, and encode/decode UTF-8 when
3339         marshalling/unmarshalling bus messages
3340
3341         * python/introspect_parser.py: encode introspection data as UTF-8
3342         before passing the buffer into libxml2
3343
3344         * test/python/test-client.py: add unicode test strings
3345
3346         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3347         ignore generated python test files
3348
3349 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3350
3351         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3352         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3353         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3354
3355         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3356         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3357         when constructing struct signatures
3358
3359         * python/_dbus.py (Bus): handle private connections using the
3360         private keyword in the constructor. defaults to private=False
3361         (Bus::close): new method to close a connection to the bus
3362
3363         * python/dbus_bindings.pyx (Connection::close): renamed method
3364         was previously called disconnect
3365         (bus_get): now supports getting a private connection
3366
3367         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3368         keyword is set to True.  if it is, execute the method without waiting
3369         for a reply
3370         (ProxyObject::_introspect_execute_queue): new method for executing
3371         all the pending methods that were waiting for the introspect to
3372         finish.  this is called when introspect either succeeds or fails
3373         (ProxyObject::_introspect_error_handler): call queued methods
3374
3375 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3376
3377         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3378         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3379
3380         * python/service.py (Object::_message_cb): handle exceptions correctly
3381         by sending them over the wire to the calling app.  This makes sure
3382         the client returns immediately instead of waiting the 15 seconds to
3383         timeout.
3384
3385         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3386         Add a test to benchmark how long it takes to introspect a service and 
3387         call a method which returns a large element (pretty fast)
3388
3389         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3390         method which pushes a lot of data
3391
3392 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3393
3394         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3395         reclaim memory outside of the loop and use del istead of just setting
3396         the key to None
3397
3398 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3399
3400         * python/service.py (ObjectType::_reflect_on_signal): Always close
3401         signal tag even when there are no arguments
3402
3403 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3404
3405         * configure.in: Set mono, mono-docs and Qt3 to default
3406         to no instead of auto when building.  These bindings do not
3407         have full time maintainers and will not be supported for the
3408         1.0 release.
3409
3410 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3411
3412         patches from Michael Krivoruchko <misha at sun.com>: 
3413         
3414         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3415         _dbus_connection_message_sent, 
3416         _dbus_connection_send_preallocated_unlocked_no_update, 
3417         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3418         is NULL when calling _dbus_verbose
3419
3420         * configure.in: check for functions getpeerucred and getpeereid
3421
3422         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3423         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3424         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3425         Patch was only tested on Solaris 10 x86 so it might be issues
3426         with other platforms (i.e. BSDs and MacOSX)
3427         
3428
3429 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3430
3431         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3432         instead of marshal basic so we can handle recursive types in a variant
3433
3434         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3435         in variants
3436
3437         * test/glib/test-service-glib.c, test-service-glib.xml
3438         (my_object_echo_variant [EchoVariant], 
3439         my_object_process_variant_of_array_of_ints123
3440         [ProcessVariantOfArrayOfInts123]): 
3441         Add two test methods
3442
3443         * python/introspect_parser.py: New module for parsing introspect
3444         data.
3445
3446         * python/dbus_bindings.pyx:
3447         (various places): when throwing errors fix to use errormsg instead 
3448         of message local variable because Pyrex can get confused with other 
3449         message variables (initial patch by Robert McQueen 
3450         <robert.mcqueen at collabora.co.uk>)
3451         (MessageIter::parse_signature_block): new method for getting the next
3452         block in a signiture.
3453         (MessageIter::append_strict): new method for appending values strictly
3454         using the passed in signature instead of guessing at the type
3455         (MessageItter:: append_dict, append_struct, append_array): use 
3456         signatures to marshal children if the signature is available
3457         
3458         * python/exceptions.py (IntrospectionParserException): new exception
3459
3460         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3461         introspected signatures if available, else we fall back to the
3462         old way of doing things.
3463         (ProxyObject::_introspect_reply_handler ): parse introspection data
3464         
3465         * python/service.py (ObjectType::_reflect_on_method): Properly
3466         terminate <method> if there are no args in the reflection data
3467
3468         * test/python/test-client.py: add tests for talking with the GLib
3469         test server.  This gives us better coverage for introspection since
3470         python to python will always generate arguments as variants.  It also
3471         allows us to test the robustness of the GLib bindings and interlanguage
3472         communications.
3473
3474         
3475 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3476
3477         * bus/driver.c (bus_driver_handle_introspect): Add signals
3478         to the introspect data. (patch from Daniel P. Berrange 
3479         <dan at berrange.com>)
3480
3481         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3482         
3483         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3484         _dbus_connection_run_builtin_filters): Changed these to
3485         be unlock_no_update functions and call 
3486         _dbus_connection_send_unlocked_no_update instead of
3487         dbus_connection_send to avoid locking errors.
3488         
3489         * doc/TODO: Removed the make Ping test TODO
3490         
3491 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3492
3493         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3494         We now copy the message from a DBusError and then free 
3495         the error object befor throwing the error
3496
3497         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3498         DBusBindingOutputMode enum which was causing a warning.
3499         #include <time.h> so using time_t is explicitly defined
3500
3501 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3502
3503         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3504         - dbus/dbus-bus.c
3505         (internal_bus_get): new method that take over the heavy lifting
3506         of dbus_bus_get and adds the ability to get a private connection
3507         to the bus
3508         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3509         interface as in previous versions
3510         (dbus_bus_get_private): new method that is a wrapper to 
3511         internal_bus_get to get a private connection to the bus
3512
3513         - dbus/dbus-bus.h
3514         (dbus_bus_get_private): add as a public libdbus interface
3515
3516         - dbus-1.pc.in: output system_bus_default_address and 
3517         sysconfdir variables so apps can use them when compiling
3518
3519 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3520         * dbus/qt: New Qt bindings
3521
3522 2005-09-12  Waldo Bastian  <bastian@kde.org>
3523
3524         * dbus/dbus-marshal-validate.c,
3525         doc/dbus-specification.xml, test/Makefile.am,
3526         test/test-names.c: allow hyphens in bus names.
3527
3528 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3529
3530         * test/data/auth/fallback.auth-script: we don't
3531         retry the EXTERNAL method when we know its going
3532         to fail anymore.
3533
3534 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3535
3536         * dbus/dbus-connection-internal.h: rename
3537         (add|remove|toggle)_(watch|timeout) to unlocked()
3538         
3539         * dbus/dbus-connection.c: ditto.
3540         
3541         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3542         Update some callers for the renaming.
3543
3544 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3545
3546         * dbus/dbus-auth.c: (record_mechanisms): don't
3547         retry the first auth mechanism because we know
3548         we're just going to get rejected again.
3549         
3550         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3551         Fix thinko ... and what a nasty little bugger to
3552         track down you were ...
3553
3554         * dbus/dbus-connection.c:
3555         (_dbus_connection_add_watch),
3556         (_dbus_connection_remove_watch): add note about
3557         these needing the connection to be locked.
3558         (_dbus_connection_get_dispatch_status_unlocked):
3559         set status to DATA_REMAINS when we queue the
3560         disconnected message.
3561         
3562         * bus/dispatch.c:
3563         (bus_dispatch): fix warning.
3564         (check_existent_service_no_auto_start):
3565         Expect ChildSignaled error too.
3566         (check_existent_hello_from_self): fix another
3567         couple of warnings.
3568         
3569 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3570
3571         Patches from James Willcox <snorp@snorp.net>
3572
3573         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3574
3575         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3576         support array "out" parameters.
3577
3578         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3579         for 16-bit int support.
3580
3581 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3582
3583         * Released 0.50
3584
3585         * Patch from Steve Grubb:
3586         - bus/activation.c (bus_activation_service_reload_test): clean up
3587         some indentation
3588         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3589         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3590         buffer overflows in the test suite.  This is non critical because
3591         it can not be exploited and this code is only run when doing a 
3592         make check.
3593
3594         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3595         - configure.in: Don't check and link against kdecore, only qt headers
3596         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3597         - gcj/org/freedesktop/dbus/Makefile.am:
3598         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3599         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3600         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3601         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3602         - tools/Makefile.am: Add platform extentions to binaries 
3603         (i.e. .exe on windows)
3604
3605         * configure.in: 
3606         - Make it so if no suitable version of python is found we only 
3607         disable building python instead of exiting the configure script
3608         - Require version 2.4 of glib for glib bindings
3609         - Up version to 0.50
3610
3611         * python/__init__.py: Sync version with libdbus to (0,50,0)
3612         
3613 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3614
3615         * dbus/dbus-object-tree.c (find_subtree_recurse):
3616         a couple of optimizations (bug #710):
3617         - do a binary search in the tree
3618         - insert a new child at the right place directly, no need for
3619           qsort anymore
3620         - do the "double alloc" thing when allocating children
3621
3622 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3623
3624         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3625
3626         * python/dbus_bindings.pyx: Memory management foo
3627         (global): remove hacky _user_data_references global list
3628         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3629         tuples. Unref user_data
3630         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3631         (Connection::__del__): Remove and replace with __dealloc__ method
3632         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3633         to keep tuple from being deallocated instead of the global var hack
3634         (Connection::register_object_path): Stuff user_data into a tuple.
3635         Use Py_INCREF to keep tuple from being deallocated instead of the 
3636         global var hack
3637         (Connection::register_fallback): Stuff user_data into a tuple.
3638         Use Py_INCREF to keep tuple from being deallocated instead of the 
3639         global var hack
3640         (GIL_safe_pending_call_notification): Don't unref the message
3641         because it gets unreffed when going out of scope.  Py_XDECREF
3642         the user_data
3643         (PendingCall::__del__): Remove and replace with __dealloc__ method
3644         (PendingCall::set_notify): ref the pending call because we will
3645         need it to stick around for when the notify callback gets called
3646         (Message::__del__): Remove and replace with __dealloc__ method
3647
3648         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3649         gthreads_init to match up with the dbus call
3650
3651         * python/glib.py (init_threads): Changed to threads_init to match
3652         up with gobject.threads_init().  init_threads is kept for backwards
3653         compat but will most likely be deprecated in the future
3654
3655         * test/python/test-client.py: 
3656         - revamp to use Python's unittest functionality
3657         - add async call tests
3658         - setup threads in glib and dbus so we make sure locks are working
3659         
3660 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3661
3662         * python/dbus_bindings.pyx 
3663         (_pending_call_notification, cunregister_function_handler, 
3664         cmessage_function_handler): All callback functions have been rearranged 
3665         to workaround a bug in Pyrex when working with the GIL which is Python's 
3666         global lock when dealing with threads.  They have been split into
3667         a wrapper function (which assumes the name of the old function) and
3668         a _GIL_safe_<function name> function which contains the functionality
3669         of the old function.  This ensures that Pyrex does not write code
3670         the lock is released.
3671         
3672
3673 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3674
3675         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3676         GIL global lock when calling back into Python
3677
3678 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3679
3680         * Release 0.36.2
3681
3682         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3683
3684         * bus/policy.c (bus_policy_allow_user): change default "user is
3685         allowed" to be "user has same uid as the bus itself"; any
3686         allow/deny rules will override.
3687
3688         * bus/session.conf.in: don't allow all users, since now by default
3689         the user that ran the bus can connect.
3690
3691 2005-08-26  Colin Walters  <walters@verbum.org>
3692
3693         * tools/dbus-print-message.c (print_message): Flush stdout
3694         after printing a message, so that redirecting to a file, then
3695         hitting Ctrl-C works.
3696
3697 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3698
3699         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3700         (EmptyMessage): new class that subclasses Message.  This is a workaround
3701         to a Pyrex bug that fails to call __del__ when the Message object goes out
3702         of scope.  For some reason subclassing Message fixes this bug
3703         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3704         - s/Message(_create=0)/EmptyMessage everywhere else
3705         
3706         * test/python/test-{server|client}.py: add the python/.libs directory
3707         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3708         get picked up from the system
3709
3710 2005-08-25  Colin Walters  <walters@verbum.org>
3711
3712         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3713         to Ryan Lortie for the suggestion.
3714
3715 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3716
3717         * test/python: Add python regression test
3718
3719         * configure.in: Add test/python/Makefile
3720
3721         * test/Makefile.am: Add the python directory to SUBDIRS
3722
3723 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3724
3725         * Release 0.36.1
3726
3727         * python/_dbus.py: 
3728         (Interface::connect_to_signal): propigate keywords for match on args
3729         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3730
3731         * python/proxies.py (ProxyObject::connect_to_signal):
3732         propigate keywords for match on args
3733
3734         * Makefile.am: point everything to pyexecdir since python borks
3735         on multilib
3736
3737 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3738
3739         * Release 0.36
3740
3741 2005-08-23  Colin Walters  <walters@verbum.org>
3742
3743         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3744
3745 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3746
3747         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3748         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3749         of defining DBusConnection ourselves.
3750
3751 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3752
3753         * python/dbus.pth: New path file to fix up problems when installing
3754         c libraries to lib64 and python files to lib.
3755
3756         * python/Makefile.am: install dbus.pth in the correct spot
3757
3758 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3759         * ChangeLog: clean up my last entry a bit
3760
3761         * doc/introspect.xsl: New stylesheet for converting introspection data
3762         into browser renderable xhtml. Contributed by Lennart Poettering.
3763
3764         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3765         Poettering.
3766
3767         * doc/dbus-tutorial.xml: 
3768         - Add Colin Walter to the Authors section for authoring the GLib
3769         section
3770         - Add descriptions of the new signature and type functionality
3771         in the Python complex type mapping section
3772         - Add a sidenote on the new args matching functionality in 
3773         the Python bindings
3774         - Fixed up some of the examples to use the gobject.MainLoop
3775         instead of gtk.main
3776         
3777         * python/_dbus.py:
3778         (Bus::_create_args_dict): New. Converts a hash of arg matches
3779         to a more useable format
3780         (Bus::add_signal_receiver): add a **keywords parameter for catching
3781         arg match parameters
3782         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3783         arg match parameters
3784         
3785         * python/matchrules.py:
3786         (MatchTree::exec_matches): Check for arg matches
3787         (SignalMatchRule::add_args_match): New method
3788         (SignalMatchRule::execute): Added args_list parameter as an optimization
3789         so we don't have to marshal the args more than once
3790         (SignalMatchRule::match_args_from_list): New method that checks to see
3791         if the rule's arg matches match an argument list.  Only arguments
3792         set in the rule are checked.
3793         (SignalMatchRule::match_args_from_rule): New method that checks to see
3794         if the rule's arg matches match another rule's.  All args have to match
3795         in order for this method to return true.  If either rule has more args
3796         then it is not a match.
3797         (SignalMatchRule::is_match): Add args match
3798         (SignalMatchRule::repr): Add args to the final output if they exist
3799
3800 2005-08-17  Ross Burton  <ross@burtonini.com>
3801
3802         * glib/dbus-gproxy.c:
3803         (dbus_g_proxy_call_no_reply): unref the message once sent.
3804         (dbus_g_proxy_call): protect against NULL proxy.
3805
3806 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3807
3808         * python/__init__.py: Version updated (0, 43, 0)
3809         
3810         * python/dbus_bindings.pyx: 
3811         - Fixed type objects to have self passed into __init__
3812         - Added the Variant type
3813         - Add the ability to specify types or signatures for Array, Variant 
3814         and Dictionary
3815         (Connection::send_with_reply_handlers): return a PendingCall object
3816         (_pending_call_notification): handle the case when an error is returned 
3817         without an error message in the body
3818         (MessageIter::get_boolean): return True or False instead of an integer
3819         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3820         and add checks for objects with embeded signatures or types (Array, 
3821         Variant and Dictionary)
3822         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3823         (MessageIter::append_dict): handle embeded types or signatures
3824         (MessageIter::append_array): handle embeded types or signatures
3825         (MessageIter::append_variant): new method
3826         
3827         * python/proxies.py:
3828         (DeferedMethod): New. Dummy executable object used when queuing calls 
3829         blocking on introspection data
3830         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3831         or shorter timeouts for method calls
3832         (ProxyObject): Add first pass at an introspection state machine
3833         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3834         introspection. 
3835         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3836         the usual mechanisms for sending messages.  This is to avoid a deadlock
3837         where the Intospect call would be queued waiting for the Introspect 
3838         call to finish ;-)
3839         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3840         when introspection returns with no error
3841         (ProxyObject::_introspect_error_handler): New.  This method is called 
3842         when introspection encounters an error
3843         (ProxyObject::__getattr__): Code to handle different introspection 
3844         states.  Queue async calls or block blocking calls if we are 
3845         introspecting.  Pass through as normal if we are not or are done with 
3846         introspecting.
3847         
3848         * python/service.py: Import signal and method from decorators.py
3849
3850         * python/types.py: Add Variant type
3851
3852 2005-08-16  Colin Walters  <walters@verbum.org>
3853
3854         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3855         DBusError message is NULL.
3856
3857 2005-08-09  Havoc Pennington  <hp@redhat.com>
3858
3859         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3860         malloc'd copy of the name parameter
3861
3862 2005-08-09  Havoc Pennington  <hp@redhat.com>
3863
3864         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3865         warning if the reply serial is set to 0
3866
3867 2005-08-04  Colin Walters  <walters@verbum.org>
3868
3869         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3870         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3871         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3872         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3873         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3874         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3875         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3876         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3877         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3878         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3879         
3880         Prefix name with _ to ensure they're not exported.  All callers
3881         updated.
3882
3883         * glib/dbus-gvalue.c (typecode_to_gtype)
3884         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3885         (signature_iter_to_g_type_dict)
3886         (signature_iter_to_g_type_array)
3887         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3888         (dbus_gtypes_from_arg_signature):
3889         Move to dbus-gsignature.c.
3890
3891         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3892         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3893         (dbus_binding_tool_output_glib_client): Ditto.
3894
3895         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3896         and dbus-gsignature.h
3897
3898         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3899         unused variable.
3900
3901 2005-08-03  Colin Walters  <walters@verbum.org>
3902
3903         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3904         catch any incompatible changes accidentally made.
3905
3906 2005-08-03  Havoc Pennington  <hp@redhat.com>
3907
3908         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3909         typo, from Julien Puydt
3910
3911         * bus/connection.c (bus_connection_disconnected): we were always
3912         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3913
3914 2005-08-01  Colin Walters  <walters@verbum.org>
3915
3916         Patch from Joe Markus Clarke:   
3917         
3918         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3919         use-after-free.
3920
3921 2005-08-01  Colin Walters  <walters@verbum.org>
3922         
3923         Patch from Joe Markus Clarke:   
3924         
3925         * tools/dbus-send.c (main): 
3926         
3927         Don't use C99 style initializers (bug #3933).
3928         
3929 2005-08-01  Colin Walters  <walters@verbum.org>
3930
3931         Patch from Joe Markus Clarke:   
3932
3933         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3934         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3935         * glib/dbus-gobject.c (write_interface):
3936
3937         Don't use C99 style initializers (bug #3933).
3938
3939 2005-07-31  Havoc Pennington  <hp@redhat.com>
3940
3941         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3942         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3943
3944 2005-07-30  Havoc Pennington  <hp@redhat.com>
3945
3946         * fix a bunch of Doxygen warnings and mistakes
3947
3948 2005-07-30  Havoc Pennington  <hp@redhat.com>
3949
3950         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3951         DBUS_BUILD_TESTS since it's now used in production code
3952
3953 2005-07-29  Havoc Pennington  <hp@redhat.com>
3954
3955         * test/glib/test-profile.c (write_junk): initialize the junk
3956         buffer so valgrind doesn't have a breakdown
3957
3958 2005-07-29  Havoc Pennington  <hp@redhat.com>
3959
3960         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3961         (match_rule_matches): remove unused arg
3962         (test_matching): add tests for match_rule_matches()
3963
3964         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3965         do arg0='foo' arg5='bar' in the match rules
3966         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3967
3968         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3969
3970 2005-07-29  Ross Burton  <ross@openedhand.com>
3971
3972         * dbus/dbus-connection.c:
3973         Don't create a DBusCondVar which is never used.
3974
3975 2005-07-27  Ross Burton  <ross@openedhand.com>
3976
3977         * dbus/dbus-message.c:
3978         Reduce the size of the maximum cached message to 10K.
3979
3980 2005-07-25  Ross Burton  <ross@openedhand.com>
3981
3982         * glib/dbus-gproxy.c:
3983         Remove matches when all proxies are unregistered.
3984
3985 2005-07-24  Colin Walters  <walters@verbum.org>
3986
3987         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3988         typedata; recursive arrays won't have it.
3989
3990         * test/glib/test-dbus-glib.c:
3991         * test/glib/test-service-glib.c:
3992         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3993         
3994 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3995
3996         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3997         proxies.py, service.py: Cleanup of code after running it through the
3998         pyflakes code checker mostly dealing with undefined names.  
3999         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
4000
4001 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
4002
4003         * NEWS: Update to 0.35.2
4004
4005 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
4006
4007         * python/_dbus.py: Remove import of the dbus.services
4008         module as it no longer exists (patch from Dimitur Kirov)
4009
4010         * python/service.py (Object::__init__): Fixed typo
4011         s/name/bus_name (patch from Dimitur Kirov)
4012
4013         * python/examples/example-signal-emitter.py: import dbus.glib
4014         to get the main loop and use glib mainloop instead of gtk so
4015         X doesn't have to be running.
4016
4017         * python/examples/example-signal-recipient.py: import dbus.glib
4018         to get the main loop and use glib mainloop instead of gtk so
4019         X doesn't have to be running. Import the decorators module
4020         directly.
4021
4022         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
4023         didn't pick up on but are needed to build
4024
4025         * configure.in: upped version to 0.35.2
4026
4027         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
4028         added Colin Walters' SELinux API rename patch from head 
4029         s/unix sercurity context/selinux security context/
4030
4031 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
4032
4033         * python/Makefile.am: dbus_binding.pxd.in should be included 
4034         in EXTRA_DIST not dbus_binding.pxd
4035         fix up $(srcdir) hopefully for the last time
4036
4037         * NEWS: Update to 0.35.1
4038
4039 2005-07-16  Colin Walters  <walters@verbum.org>
4040
4041         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
4042         from bus_driver_handle_get_connection_unix_security_context.  Update for
4043         error usage.
4044         (message_handlers): Update for renames.
4045
4046         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
4047         _dbus_string_init failure correctly.
4048         (bus_selinux_append_context): Convert SID to context.  Append it
4049         as a byte array.
4050         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
4051         hasn't been called.
4052
4053         * bus/selinux.h: Update prototype.
4054
4055         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
4056         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
4057
4058 2005-07-15  Colin Walters  <walters@verbum.org>
4059
4060         * doc/TODO: Add note about convenience wrappers.
4061
4062 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4063
4064         * NEWS: Update to 0.35
4065
4066 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4067
4068         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
4069         so distcheck doesn't fail
4070
4071         * glib/examples/Makefile.am: Add example-service.xml and 
4072         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
4073
4074         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
4075         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
4076
4077         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
4078         compiler looks in the right places during distcheck
4079
4080 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4081
4082         * glib/example/Makefile.am: Fix a typo which cause make distcheck
4083         to fail
4084
4085 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4086
4087         * python/examples/example-service.py,
4088         python/examples/example-signal-emitter.py: Fixed up examples
4089         for API changes
4090
4091 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4092
4093         * python/__init__.py: Upped to version (0,42,0) because of
4094         the API change
4095
4096 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4097
4098         * ChangeLog: fix date in last entry
4099
4100         * configure.in, bus/system.conf.in: add the ability to configure 
4101         the system bus user at compiletime with the --with-dbus-user flag
4102         (patch from Kristof Vansant)
4103
4104 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4105
4106         * bus/dispatch.c, test/test-service.c: Add testcase
4107         for sending messages to oneself (TODO item).
4108
4109         * python/service.py (class Object): Swap ordering of bus_name 
4110         and object_path parameters to better support inheritance.
4111
4112         * doc/dbus-tutorial.xml: change Python docs to reflect change
4113         in parameter ordering and fix the inheritance section.
4114
4115         * doc/TODO: remove sending message to oneself TODO item
4116
4117 2005-07-15  Ross Burton  <ross@openedhand.com>
4118
4119         * glib/dbus-gproxy.c:
4120         Fix a leak when calling methods via the proxy.
4121
4122 2005-07-15  Colin Walters  <walters@verbum.org>
4123
4124         * bus/selinux.c (bus_selinux_append_context): Wrap in
4125         HAVE_SELINUX.
4126
4127 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4128
4129         * python/_dbus.py (Bus::remove_signal_receiver):
4130         don't add a callback to the match if none has been passed in
4131         
4132         * python/matchrules.py (SignalMatchTree::remove): if the rule
4133         being matched does not have a callback treat it as a wildcard
4134         fix matching logic
4135
4136         * doc/dbus-tutorial.xml: Add Python tutorial
4137
4138 2005-07-14  Colin Walters  <walters@verbum.org>
4139
4140         * bus/driver.c
4141         (bus_driver_handle_get_connection_unix_security_context): New function.
4142         (message_handlers): Add.
4143
4144         * bus/selinux.c (bus_selinux_append_context): New function; appends
4145         security context to message.
4146
4147         * bus/selinux.h: Prototype.
4148
4149         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
4150
4151 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4152
4153         * bus/activation.c: clean up all tabs to be 8 spaces 
4154         (bus_activation_activate_service): make sure we clean up
4155         if activation fails
4156
4157         * bus/dispatch.c: clean up all tabs to be 8 spaces 
4158         (check_shell_fail_service_auto_start): New function
4159         tests to make sure we get fail properly when trying to auto start a service
4160         with a faulty command line
4161         (check_shell_service_success_auto_start): New function tests to make sure
4162         auto started services get the arguments on the command line
4163
4164         * test/test-shell-service.c: Added service for testing auto-starting with 
4165         command line arguments
4166
4167         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
4168         test/data/valid-service-files/debug-shell-echo-success.service.in:
4169         Added service files for testing auto-starting with command line arguments
4170
4171         * */.cvsignore: added a bunch of generated files to various .cvsignore files
4172
4173 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
4174
4175         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
4176         
4177         * dbus/Makefile.am: added new files to build.
4178
4179         * bus/activation.c (bus_activation_activate_service): support
4180         activation commands with parameters.
4181
4182         * test/shell-test.c: added test program for the shell parsing
4183         code.
4184
4185 2005-07-13  David Zeuthen  <davidz@redhat.com>
4186
4187         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
4188         64 bit signed and unsigned parameters
4189
4190 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
4191
4192         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
4193
4194         * python/service.py (class Name): renamed BusName to make it clearer
4195         what the object is for (a name on the bus)
4196
4197         * python/examples/example-service.py,
4198         python/examples/example-signal-emitter.py: change the Name object to
4199         BusName
4200
4201 2005-07-12  Colin Walters  <walters@verbum.org>
4202
4203         Patch from Jim Gettys <Jim.Gettys@hp.com>.
4204
4205         * tools/dbus-launch.c: Include sys/select.h.
4206
4207 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
4208         * python/dbus_bindings.pyx.in: removed
4209
4210         * python/dbus_bindings.pyx: Added.
4211         - Fixed some memleaks (patch from 
4212         Sean Meiners <sean.meiners@linspireinc.com>)
4213         - Broke out the #include "dbus_h_wrapper.h" and put it in its
4214         own pxd file (Pyrex definition)
4215         - Broke out glib dependancies into its own pyx module
4216         
4217         * python/dbus_bindings.pdx: Added.
4218         - Defines C class Connection for exporting to other modules
4219
4220         * python/dbus_glib_bindings.pyx: Added.
4221         - New module to handle lowlevel dbus-glib mainloop integration
4222
4223         * python/glib.py: Added.
4224         - Registers the glib mainloop when you import this module
4225
4226         * python/services.py: Removed (renamed to service.py)
4227         
4228         * python/service.py: Added.
4229         - (class Server): renamed Name
4230
4231         * python/__init__.py: Bump ro version (0,41,0)
4232         -don't import the decorators or service module
4233         by default.  These now reside in the dbus.service namespace
4234
4235         * python/_dbus.py (Bus::__init__): Add code run the main loop 
4236         setup function on creation 
4237
4238         * python/examples/example-service.py,
4239         python/examples/example-signal-emitter.py: update examples
4240
4241         * python/examples/gconf-proxy-service.py,
4242         python/examples/gconf-proxy-service2.py: TODO fix these up
4243
4244         * doc/TODO: Addition
4245         - Added a Python Bindings 1.0 section
4246         - added "Add match on args or match on details to match rules"
4247
4248
4249 2005-07-12  Colin Walters  <walters@verbum.org>
4250
4251         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
4252         (statemachine-glue.h): 
4253         * glib/examples/Makefile.am (example-service-glue.h) 
4254         (example-signal-emitter-glue.h): 
4255         * glib/Makefile.am (dbus-glib-error-switch.h): 
4256         Add libtool --mode=execute so we use the built library instead
4257         of any installed one.
4258
4259 2005-07-11  Colin Walters  <walters@verbum.org>
4260
4261         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
4262         (dbus_g_value_types_init): Remove assertion.
4263         (dbus_g_value_get_g_type, dbus_g_value_open)
4264         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
4265         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
4266         functions related to DBusGValue.  Now we marshal/demarshal
4267         structures as GValueArray.
4268         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
4269         structures.
4270         (signature_iter_to_g_type_array): Don't call
4271         signature_iter_to_g_type_struct.
4272         (signature_iter_to_g_type_struct): Delete.
4273         (dbus_gvalue_to_signature): Delete.
4274         (dbus_gvalue_to_signature): New function with same name as other
4275         one; we can convert structures to signatures.
4276         (demarshal_valuearray): New function.
4277         (get_type_demarshaller): Use it.
4278         (demarshal_recurse): Delete.
4279         (marshal_proxy): New function.
4280         (marshal_map): Warn if we can't determine signature from type.
4281         (marshal_collection_ptrarray): Ditto.
4282         (marshal_collection_array): Ditto.
4283         (get_type_marshaller): Use marshal_valuearray.
4284         (marshal_recurse): Delete.
4285         (_dbus_gvalue_test): Add some tests.
4286
4287         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
4288         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
4289         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4290         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4291         (dbus_g_value_free): Remove prototypes.
4292
4293         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
4294         G_TYPE_VALUE_ARRAY.
4295
4296         * glib/examples/example-service.c:
4297         * glib/examples/example-client.c: Implement GetTuple.
4298
4299         * test/glib/test-dbus-glib.c:
4300         * test/glib/test-service-glib.c:
4301         * test/glib/test-service-glib.xml: Add structure tests.
4302
4303 2005-07-10  Colin Walters  <walters@verbum.org>
4304
4305         * doc/TODO: Knock off some GLib items with this patch.
4306
4307         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
4308         (_dbus_gvalue_signals_error): New functions.
4309
4310         * glib/dbus-gvalue-utils.h: Prototype them.
4311
4312         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
4313         and change to not output const/retval flags for input args.  All
4314         callers updated.
4315         (invoke_object_method): Refactor to handle return values.  Add
4316         some more comments in various places.  Remove debug g_print.
4317
4318         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
4319
4320         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
4321         Handle G_TYPE_NONE.
4322         (compute_gsignature): New function; refactored from code from
4323         compute_marshaller and compute_marshaller_name.  Enhance to
4324         handle return values and async ops more cleanly.  Update for
4325         async ops returning NONE instead of BOOLEAN.
4326         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
4327         and output appropriate string.
4328         (generate_glue): Handle return value annotation.  Also don't dump
4329         constness flag for input arguments.
4330
4331         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
4332         files shared between installed library and utilities.
4333         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4334         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4335         binding tool can access gtype utility functions.
4336
4337         * test/glib/test-service-glib.c: 
4338         * test/glib/test-service-glib.xml: 
4339         * test/glib/test-dbus-glib.c: Add some tests for return values.
4340
4341 2005-07-09  Colin Walters  <walters@verbum.org>
4342
4343         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4344         argument if available, not method.
4345
4346         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4347         (invoke_object_method): First, remove some redundant
4348         GValues (object_value, error_value) in favor of working on
4349         array directly.  Second, rework constness to be less buggy.
4350         Now we iterate directly over the argument metadata instead
4351         of parallel iterating over output signature and metadata.
4352
4353         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4354
4355         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4356         annotation on input args.
4357         
4358 2005-07-09  Colin Walters  <walters@verbum.org>
4359
4360         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4361         Define.
4362
4363         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4364         annotation.
4365
4366         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4367         (method_dir_signature_from_object_info): Handle arg_iterate change.
4368         (write_interface): Ditto.
4369         (lookup_object_info): Don't barf if format_version is > 0.
4370         (invoke_object_method): Handle arg constness.
4371
4372         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4373         (arg_info_new): Create.
4374         (arg_info_unref): Destroy.
4375         (arg_info_get_annotations, arg_info_get_annotation) 
4376         (arg_info_add_annotation): New functions.
4377
4378         * glib/dbus-gidl.h: Prototype them.
4379
4380         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4381         args, disallow them in properties.
4382         (parse_annotation): Handle arg annotations.
4383
4384         * test/glib/test-service-glib.xml: 
4385         * test/glib/test-service-glib.c: Update to make some methods
4386         const.
4387
4388 2005-07-08  Colin Walters  <walters@verbum.org>
4389
4390         * test/glib/test-service-glib.xml: 
4391         * test/glib/test-service-glib.c:
4392         * test/glib/test-dbus-glib.c: Test a{sv}.
4393
4394         * glib/examples/statemachine/statemachine.c:
4395         * glib/examples/statemachine/statemachine-server.c:
4396         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4397         add progress bar, etc.
4398
4399         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4400         needed anymore due to generic array/map marshalling.
4401         (dbus_g_value_types_init): Don't register basic arrays or the
4402         string/string hash.
4403         (dbus_gtype_from_signature_iter): Don't try to recurse into
4404         variants.
4405         (dbus_gtype_to_signature): Check collection/map before type
4406         metadata.
4407         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4408         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4409         generic map creation/append functions instead of hash table
4410         specifically.
4411         (get_type_demarshaller): Handle maps.
4412         (demarshal_collection): Dispatch on collection type to either
4413         demarshal_collection_ptrarray or demarshal_collection_array.
4414         (get_type_marshaller): Handle maps.
4415         (marshal_collection): Dispatch collection type to either
4416         marshal_collection_ptrarray or marshal_collection_array.
4417         (_dbus_gvalue_test): New test.
4418
4419         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4420         (hash_free_from_gtype): Use it to free GValues.
4421         (hashtable_append): New function.
4422         (ptrarray_append): Fix prototype.
4423         (slist_append): Ditto.
4424         (_dbus_gvalue_utils_test): Extend tests.
4425
4426         * glib/dbus-gtype-specialized.c
4427         (dbus_g_type_specialized_init_append): Renamed from
4428         dbus_g_type_specialized_collection_init_append.  Remove const from
4429         value, since we steal it.
4430         (dbus_g_type_specialized_map_append): New function.
4431
4432         * glib/dbus-gtype-specialized.h: Update prototypes.
4433         Add DBusGTypeSpecializedMapAppendFunc.
4434
4435         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4436         _dbus_gvalue_test.
4437         
4438         * glib/dbus-gtest.h: Prototype it.
4439
4440 2005-07-08  Ross Burton  <ross@openedhand.com>
4441
4442         * dbus/dbus-glib.h:
4443         Add DBysGAsyncData for the async bindings.
4444
4445         * glib/dbus-binding-tool-glib.c:
4446         Re-enable the async bindings.
4447
4448         * test/glib/test-dbus-glib.c:
4449         Add a test for the generated async bindings.
4450
4451 2005-07-08  Colin Walters  <walters@verbum.org>
4452
4453         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4454         connection concept.
4455         
4456 2005-07-08  Colin Walters  <walters@verbum.org>
4457         
4458         * tools/Makefile.am: Kill of print-introspect in favor of using
4459         dbus-send --print-reply=literal.
4460
4461         * test/glib/test-service-glib.xml: 
4462         * test/glib/test-service-glib.c (my_object_get_objs): New test
4463         for "ao".
4464
4465         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4466         (main): Test GetObjs.
4467
4468         * glib/examples/statemachine/Makefile.am:
4469         * glib/examples/statemachine/sm-marshal.list:
4470         * glib/examples/statemachine/statemachine-client.c:
4471         * glib/examples/statemachine/statemachine-server.c:
4472         * glib/examples/statemachine/statemachine-server.xml:
4473         * glib/examples/statemachine/statemachine.c:
4474         * glib/examples/statemachine/statemachine.h:
4475         * glib/examples/statemachine/statemachine.xml:
4476
4477         New example.
4478
4479         * glib/examples/example-service.c (main): Move invocation
4480         of dbus_g_object_type_install_info earlier, to emphasize it
4481         should only be done once.
4482
4483         * glib/examples/example-signal-emitter.c (main): Ditto.
4484
4485         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4486
4487         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4488         (dbus_gvalue_marshal): Update prototypes.
4489
4490         * glib/dbus-gvalue.c: Update all marshalling functions to take
4491         const GValue instead of GValue.
4492         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4493         types.
4494         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4495         change.
4496         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4497         Return a newly-allocated string.
4498         (demarshal_proxy, demarshal_object_path, demarshal_object)
4499         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4500         we get the wrong types from message.
4501         (get_type_demarshaller): New function, extracted from
4502         dbus_gvalue_demarshal.
4503         (demarshal_collection): New function, demarshals generic
4504         collection.
4505         (dbus_gvalue_demarshal): Just invoke result of
4506         get_type_demarshaller.  Throw error if we don't have one.
4507         (marshal_garray_basic): Abort on OOM.
4508         (get_type_marshaller): New function, extracted from
4509         dbus_gvalue_marshal.
4510         (collection_marshal_iterator, marshal_collection): New functions;
4511         implements generic marshalling for an iteratable specialized
4512         collection.
4513         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4514
4515         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4516         G_TYPE_STRING.
4517         (ptrarray_value_from_gvalue): Ditto.
4518         (ptrarray_append, ptrarray_free): New functions.
4519         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4520         (slist_append, slist_end_append, slist_free): New functions.
4521         (dbus_g_type_specialized_builtins_init): Add append fuctions
4522         for GPtrArray and GSList.  Register GSList.
4523         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4524
4525         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4526         New.
4527         (dbus_g_type_specialized_collection_init_append)
4528         (dbus_g_type_specialized_collection_append)
4529         (dbus_g_type_specialized_collection_end_append): Prototype.
4530         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4531         end_append_func.
4532
4533         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4534         (dbus_g_type_specialized_collection_append) 
4535         (dbus_g_type_specialized_collection_end_append): New functions.
4536         (dbus_g_type_map_value_iterate): Take const GValue.
4537         (dbus_g_type_collection_value_iterate): Ditto.
4538
4539         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4540         _dbus_gvalue_utils_test.
4541         
4542         * glib/dbus-gtest.h: Prototype it.
4543
4544         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4545         using uninitialized owner_list.
4546         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4547         public API.
4548         (dbus_g_proxy_end_call_internal): Update to use error set
4549         from dbus_gvalue_demarshal instead of setting it here.
4550         (dbus_g_proxy_begin_call): Move return_if_fail here.
4551
4552         * glib/dbus-gobject.c (write_interface): Update for
4553         dbus_gtype_to_signature returning new string.
4554
4555         * configure.in: Add glib/examples/statemachine.
4556
4557 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4558
4559         * configure.in: Add a configure option, --with-console-auth-dir
4560         
4561         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4562         new setting.  Patch from Kay Sievers.
4563
4564 2005-07-06  Colin Walters  <walters@verbum.org>
4565
4566         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4567         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4568         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4569         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4570         Delete in favor of dbus_g_proxy_begin_call and
4571         dbus_g_proxy_cancel_call.
4572         (DBusGProxyCall, DBusGProxyCallNotify): New.
4573         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4574         data, and destroy function.  This replaces
4575         dbus_g_pending_call_set_notify.
4576         (dbus_g_proxy_cancel_call): Prototype.
4577         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4578
4579         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4580         pending_calls map.
4581         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4582         internal proxy for calls to the bus. Remove
4583         pending_nameowner_calls, now the internal proxy keeps track.
4584         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4585         pending_nameowner_calls.
4586         (got_name_owner_cb): Update prototype, and use
4587         dbus_g_proxy_end_call.
4588         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4589         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4590         favor of using internal proxy.
4591         (dbus_g_proxy_manager_unregister): Update to use
4592         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4593         (dbus_g_proxy_init): Initialize pending calls map.
4594         (dbus_g_proxy_constructor): New.
4595         (dbus_g_proxy_class_init): Add get/set property functions,
4596         constructor, and add NAME, PATH, and INTERFACE properties.
4597         (cancel_pending_call): New function.
4598         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4599         cancel them.
4600         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4601         (GPendingNotifyClosure): New structure.
4602         (d_pending_call_notify, d_pending_call_free): Moved here from
4603         dbus-glib.c.
4604         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4605         ordering.
4606         (manager_begin_bus_call): New internal function for talking to
4607         internal bus proxy.
4608         (dbus_g_proxy_new): Construct object using GObjet properties.
4609         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4610         Create closure of same, and insert call into map of pending calls.
4611         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4612         call.  Look up pending call in current set.  Remove it when we've
4613         completed.
4614         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4615         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4616         and destroy function directly.
4617         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4618         (dbus_g_proxy_call): Invoke with NULL callback.
4619         (dbus_g_proxy_cancel_call): New function, replaces
4620         dbus_g_pending_call_cancel.
4621
4622         * glib/dbus-gparser.c (validate_signature): Fix call to
4623         dbus_set_g_error.
4624
4625         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4626         New quark for attaching metadata to GType.
4627         (info_hash): Delete.
4628         (lookup_object_info): Look up using quark.
4629         (dbus_g_object_type_install_info): Check that a type is classed,
4630         not that it's an object.  Also just install type data using quark
4631         instead of using global hash.
4632
4633         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4634         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4635         (GPendingNotifyClosure): Delete.
4636         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4637         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4638
4639         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4640         client method generation until we can fix it...
4641         
4642         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4643         (load_from_service_thread_func): Ditto.
4644
4645         * tools/dbus-names-model.c (struct NamesModel): Hold
4646         DBusGProxyCall.
4647         (have_names_notify): Update prototype, use
4648         dbus_g_proxy_cancel_call.
4649         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4650
4651         * tools/dbus-monitor.c (filter_func): Update for print_message
4652         API change.
4653
4654         * test/glib/test-dbus-glib.c: Add more tests for async
4655         invocations.  Update many begin_call/end_call pairs to just use
4656         dbus_g_proxy_call.
4657
4658         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4659         allows us to dump print-introspect.c.
4660
4661         * tools/dbus-print-message.h (print_message): Add literal argument
4662         to print_message which is intended to allow printing arguments without
4663         metadata like "string=".
4664
4665         * tools/dbus-print-message.c (print_iter): Add literal argument.
4666         (print_message): Allow printing string messages literally.
4667
4668 2005-07-05  Colin Walters  <walters@verbum.org>
4669
4670         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4671         Remove value refcount leak, original patch from Jorn Baayen
4672         <jorn@openedhand.com>.  Also remove useless extra value in favor
4673         of prepending to value array directly.
4674
4675 2005-07-02  Colin Walters  <walters@verbum.org>
4676
4677         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4678
4679 2005-07-01  Colin Walters  <walters@verbum.org>
4680
4681         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4682         
4683         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4684         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4685         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4686         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4687
4688 2005-06-30  Colin Walters  <walters@verbum.org>
4689
4690         * test/glib/test-dbus-glib.c:
4691         * test/glib/test-service-glib.c:
4692         * test/glib/test-service-glib.xml: Update tests for new error
4693         setting bits, also add async tests (patch from Ross Burton).
4694
4695         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4696         DBUS_GLIB_THREADS_LIBS.
4697
4698         * glib/dbus-gproxy.c (get_name_owner)
4699         (dbus_g_pending_call_end_valist): Ditto.
4700
4701         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4702         domain (GQuark) to DBusGErrorInfo.  
4703         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4704         quark in error_metadata.  Take message interface as default
4705         error message interface.
4706         (gerror_to_dbus_error_message): Pass message interface.
4707         (dbus_set_g_error): Resurrected.
4708         (dbus_g_error_info_free): New function.
4709         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4710         of _peek to actually create the object class if it hasn't been
4711         created yet.
4712         (dbus_g_error_domain_register): New function.
4713
4714         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4715
4716         * glib/dbus-gparser.c (validate_signature): Ditto.
4717
4718         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4719         (dbus_g_error_domain_register): Prototype.
4720
4721         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4722         Update tests.
4723
4724 2005-06-29  Colin Walters  <walters@verbum.org>
4725
4726         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4727         DBUS_TYPE_G_OBJECT_PATH.
4728
4729         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4730         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4731         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4732         (dbus_g_object_path_get_g_type): New function.
4733         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4734         to DBUS_TYPE_G_OBJECT_PATH by default.
4735         (demarshal_proxy): Remove unused name variable.
4736         (demarshal_object_path, marshal_object_path): New functions.
4737         (demarshal_proxy_array, marshal_proxy_array): Delete.
4738         
4739         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4740         DBUS_TYPE_G_OBJECT_PATH to char *.
4741         (dbus_g_type_get_lookup_function): Map builtin
4742         DBUS_TYPE_G_OBJECT_PATH.
4743
4744         * test/glib/test-dbus-glib.c
4745         * test/glib/test-service-glib.c (my_object_objpath): 
4746         Adapt tests to new object path marshalling.
4747
4748 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4749
4750         * configure.in: force check for Python >= 2.4
4751
4752 2005-06-29  Colin Walters  <walters@verbum.org>
4753         
4754         Patch from Ross Burton <ross@openedhand.com>
4755         
4756         * glib/dbus-gobject.c (invoke_object_method): Unset object
4757         value in all cases, not only in async case.
4758
4759 2005-06-29  Colin Walters  <walters@verbum.org>
4760
4761         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4762         name_call for keeping track of any outgoing GetNameOwner call.
4763         Also add for_owner and associated.
4764         (struct _DBusGProxyManager): Add owner_names, which is hash table
4765         that maps a base name to a list of names it owns (that we're
4766         interested in).  Add pending_nameowner_calls which is a list of
4767         all outstanding GetNameOwner; avoids us having to iterate over
4768         every proxy.  Add unassociated_proxies which keeps track of name
4769         proxies with no associated name owner.
4770         (dbus_g_proxy_manager_unref): Destroy owner_names.
4771         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4772         name refcounts.
4773         (find_name_in_info, name_owner_foreach)
4774         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4775         (dbus_g_proxy_manager_monitor_name_owner)
4776         (dbus_g_proxy_manager_unmonitor_name_owner)
4777         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4778         New functions; they manipulate the owner_names mapping.
4779         (got_name_owner_cb): New function.
4780         (get_name_owner): New function, extracted from
4781         dbus_g_proxy_new_for_name_owner.
4782         (dbus_g_proxy_manager_register): For now we need to keep track of
4783         all NameOwnerChanged.  Also if the proxy is for a name, if we
4784         don't already know the name owner, queue a new GetNameOwner
4785         request and add it to our list of unassociated proxies.  Otherwise
4786         inc the refcount.
4787         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4788         cancel any pending GetNameOwner call, etc.
4789         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4790         the owner_names mapping to look up the current names for the
4791         signal source, and dispatch to any proxies for that name.
4792         (dbus_g_proxy_new): Initialize new members.
4793         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4794         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4795         (dbus_g_pending_call_end_valist): New function, extracted from
4796         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4797         but want to use the GLib infrastructure.  Also note how many
4798         arguments in reply were over.
4799         (dbus_g_pending_call_end): New function, just call
4800         dbus_g_pending_call_end_valist.
4801         (dbus_g_proxy_end_call_internal): Just call
4802         dbus_g_pending_call_end_valist.
4803
4804         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4805         of builtin marshaller for STRING_STRING_STRING.
4806
4807         * test/glib/test-dbus-glib.c: 
4808         * test/glib/test-service-glib.c:
4809         * test/glib/test-service-glib.xml:
4810         Extend tests to cover name proxies, destruction of owner proxies,
4811         etc.
4812         
4813         * glib/examples/example-signal-recipient.c
4814         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4815         
4816         * tools/dbus-send.c (main): Print D-BUS error name in addition
4817         to message.
4818
4819 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4820
4821         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4822         cmessage_function_handler): Patch from 
4823         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4824         by using the Py_GILState_Ensure/Release to synchronize with the
4825         python runtime.
4826         
4827 2005-06-28  Ray Strode  <rstrode@redhat.com>
4828
4829         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4830         babysitter helper process on last unref, bug #2813.
4831
4832 2005-06-27  Colin Walters  <walters@verbum.org>
4833
4834         * test/glib/test-dbus-glib.c: 
4835         * test/glib/test-service-glib.c:
4836         * test/glib/test-service-glib.xml:
4837         Test hash table signal emitting.
4838
4839         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4840         types to their fundamental basis types, since this is what
4841         marshallers operate on.  Also add an entry for VOID__BOXED.
4842         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4843
4844 2005-06-26  Havoc Pennington  <hp@redhat.com>
4845
4846         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4847         from Don Park
4848
4849 2005-06-26  Colin Walters  <walters@verbum.org>
4850
4851         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4852         (dbus_g_error_set): New public function from its ashes; used by
4853         both service-side method implementation and GLib bindings
4854         internals.
4855         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4856         (_dbus_glib_test): Add some tests.
4857
4858         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4859
4860         * test/glib/test-service-glib.c (my_object_throw_error): Use
4861         dbus_g_error_set.
4862
4863         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4864         errors thrown by dbus_g_error_set.
4865
4866         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4867
4868         * glib/dbus-gparser.c (validate_signature): Ditto.
4869
4870         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4871         (dbus_g_proxy_end_call_internal): Ditto.
4872
4873         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4874         converts DBUS_ERROR_x to DBUS_GERROR_x.
4875         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4876
4877         * doc/TODO: Remove error TODO.
4878
4879         * doc/dbus-tutorial.xml: Update with documentation about error
4880         handling.
4881
4882         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4883         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4884         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4885
4886 2005-06-22  Colin Walters  <walters@verbum.org>
4887         
4888         Patch from Ross Burton <ross@openedhand.com>
4889
4890         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4891
4892 2005-06-20  Colin Walters  <walters@verbum.org>
4893
4894         * configure.in: Add glib/examples.
4895
4896         * glib/Makefile.am: Add examples/
4897
4898         * glib/examples/.cvsignore
4899         * glib/examples/Makefile.am
4900         * glib/examples/example-client.c
4901         * glib/examples/example-service.c
4902         * glib/examples/example-service.xml
4903         * glib/examples/example-signal-emitter.c
4904         * glib/examples/example-signal-emitter.xml
4905         * glib/examples/example-signal-recipient.c:
4906         New files; GLib binding examples, ported from
4907         python/examples.
4908
4909 2005-06-20  Colin Walters  <walters@verbum.org>
4910
4911         * dbus/dbus-glib.h: 
4912         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4913         dbus_g_proxy_call.
4914
4915         * glib/dbus-binding-tool-glib.c: 
4916         * doc/dbus-tutorial.xml: 
4917         * test/glib/test-dbus-glib.c: Update for rename.
4918         
4919 2005-06-20  Colin Walters  <walters@verbum.org>
4920
4921         Patch suggested by Ross Burton <ross@openedhand.com>
4922
4923         * glib/dbus-gobject.c (export_signals): Free signal name.
4924         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4925         memory leak.  Add a bit of documentation.
4926         (dbus_g_method_return_error): Free context, and note we do
4927         so.
4928
4929 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4930
4931         * dbus/dbus-glib.h:
4932         * glib/dbus-gobject.c:
4933         * glib/dbus-gproxy.c:
4934         * glib/dbus-gvalue.c: Predeclare structs as 
4935         typedef struct _Something Something instead of 
4936         typedef struct Something Something, so we can 
4937         redeclare the prototypes. Other GNOME libraries 
4938         do this already.
4939
4940 2005-06-17  Colin Walters  <walters@verbum.org>
4941
4942         * tools/dbus-names-model.c (have_names_notify): Fix call
4943         to dbus_g_proxy_end_call.
4944         
4945 2005-06-17  Colin Walters  <walters@verbum.org>
4946
4947         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4948         spew warnings if we get malformed remote signals.
4949
4950         * glib/dbus-gobject.c (propsig_iterate): New function.
4951         (lookup_object_info): New function, extracted from
4952         lookup_object_and_method.
4953         (introspect_properties, introspect_signals): Delete; these
4954         are merged into write_interface.
4955         (write_interface): Write out signals and properties here;
4956         dump the org.gtk.object stuff and use the interface given
4957         in the introspection data blob.  Also fix up property XML.
4958         (lookup_values): New function.
4959         (introspect_interfaces): Gather a mapping from interface to a
4960         list of its methods, signals, and properties, then write out
4961         each interface.
4962         (lookup_object_and_method): Use lookup_object_info.
4963         (struct DBusGSignalClosure): Add interface.
4964         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4965         we can just use the constant data.
4966         (dbus_g_signal_closure_finalize): Don't free signal name.
4967         (signal_emitter_marshaller): Use interface from signal closure.
4968         (export_signals): Only export signals mentioned in introspection
4969         blob.
4970         (dbus_g_connection_register_g_object): Warn if we have no
4971         introspection data for an object.
4972         (funcsig_equal): Remove unused variable.
4973         (dbus_g_object_register_marshaller): Take varargs instead of
4974         list.
4975         (dbus_g_object_register_marshaller_array): New function,
4976         extracted from old dbus_g_object_register_marshaller.
4977
4978         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4979         signals and property data.
4980         (write_quoted_string): New function, extracted from generate_glue.
4981         (generate_glue): Write signals and properties to introspection
4982         blob.
4983
4984         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4985         exported_signals and exported_properties.
4986         (dbus_g_object_register_marshaller): Update prototype.
4987         (dbus_g_object_register_marshaller_array): Prototype.
4988         
4989         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4990
4991         * test/glib/test-service-glib.c: Add new test signals and method
4992         to emit them.
4993
4994         * test/glib/test-service-glib.xml: Add some test signals.
4995
4996         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4997         and my-object-marshal.h
4998         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4999         my-object-marshal.c.
5000         (my-object-marshal.c, my-object-marshal.h): Implement.
5001
5002         * test/glib/.cvsignore: Update.
5003
5004         * doc/TODO: Remove two GLib TODO items fixed by this
5005         patch.
5006
5007 2005-06-16  Colin Walters  <walters@verbum.org>
5008
5009         * doc/TODO: Update for GLib bindings.
5010         
5011 2005-06-16  Colin Walters  <walters@verbum.org>
5012
5013         * glib/dbus-binding-tool-glib.c:
5014         * glib/dbus-gobject.c:
5015         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
5016         from Ross Burton, for his GLib bindings work.
5017
5018 2005-06-16  Colin Walters  <walters@verbum.org>
5019
5020         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
5021         to iterate instead of walking to G_TYPE_INVALID.
5022
5023         Patch based on a patch from Ryan Gammon.
5024
5025 2005-06-16  Colin Walters  <walters@verbum.org>
5026
5027         * bus/bus.c (bus_context_new): Set parser to NULL
5028         after we unref it (Patch from Chris Boscolo, #2174).
5029         
5030 2005-06-16  Colin Walters  <walters@verbum.org>
5031
5032         * python/dbus_bindings.pyx.in: Import size_t,
5033         __int64_t, __uint64_t, and __signed.
5034
5035         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
5036         Define cmsg struct, output it.
5037         (_dbus_read_credentials_unix_socket):
5038         Use cmsg struct.
5039         
5040         Patch from Joe Markus Clarke for FreeBSD support.
5041         
5042 2005-06-16  Colin Walters  <walters@verbum.org>
5043
5044         * tools/dbus-send.c (append_array): Use strtok.
5045         (append_dict): New function.
5046         (type_from_name): New function, extracted from main.
5047         (main): Handle sending dicts.
5048
5049         * tools/dbus-print-message.c (print_iter): Print dict
5050         entries.
5051         
5052 2005-06-16  Colin Walters  <walters@verbum.org>
5053
5054         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
5055         values as the empty string (#2948).
5056         
5057 2005-06-16  Colin Walters  <walters@verbum.org>
5058
5059         * dbus/Makefile.am:
5060         * mono/doc/Makefile.am:
5061         * test/glib/Makefile.am:
5062
5063         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
5064
5065 2005-06-16  Colin Walters  <walters@verbum.org>
5066
5067         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
5068         header byte order from expected byte order (Patch from Chris Wilson, #3475).
5069
5070         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
5071         Increment pointer after swapping fixed array.  Add assertion
5072         for array length.
5073                 
5074 2005-06-15  Colin Walters  <walters@verbum.org>
5075
5076         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
5077         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
5078         
5079 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5080
5081         * NEWS: Update to 0.34
5082
5083 2005-06-15  David Zeuthen  <davidz@redhat.com>
5084
5085         * configure.in (LT_CURRENT): Revert back to 1 as the library
5086         hasn't changed and we've certainly not committed to protocol
5087         stability yet.  All this does is to break ABI. See commit note
5088         from hp@redhat.com 2005-05-05 for details.
5089         
5090 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5091
5092         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
5093         (_dbus_connection_run_builtin_filters): New method
5094         (dbus_connection_dispatch): Run the builtin filters which in turn
5095         runs the peer filter which handles Ping messages.
5096
5097         * doc/TODO: 
5098          - Ping isn't handled: This patch fixes it
5099          
5100          - Add a test case for the Ping message: added TODO item
5101
5102 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5103
5104         * dbus/dbus-message.c:
5105         (dbus_message_has_path): New method
5106         (dbus_message_has_interface): New method
5107         (dbus_message_has_member): New method
5108
5109         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
5110         New method
5111
5112         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
5113         the keyring directory is private to the user
5114
5115         * doc/TODO:
5116          - The convenience functions in dbus-bus.h should perhaps have
5117          the signatures that they would have if they were autogenerated
5118          stubs. e.g. the acquire service function. We should also evaluate
5119          which of these functions to include, in light of the fact that
5120          GLib/Qt native stubs will probably also exist.: Punted
5121
5122          - add dbus_message_has_path(), maybe has_member/interface:
5123          fixed in this patch
5124
5125          - in dbus-keyring.c, enforce that the keyring dir is not
5126          world readable/writable: Fixed in this patch
5127
5128 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5129
5130         * dbus/dbus-marshal-validate.h: Added a new validation
5131         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
5132         out of memory errors when validating signitures
5133
5134         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
5135         in places where we previously used DBUS_VALID and a FALSE return 
5136         value to indicate OOM
5137         
5138         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
5139         Use a stack to track the number of elements inside containers.  The 
5140         stack values are then used to validate that dict entries have only two
5141         elements within them.
5142         (validate_body_helper): check the reason for failure when validating
5143         varients
5144         
5145         * dbus/dbus-message.c (load_message): use 
5146         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
5147         DBUS_VALID and a FALSE return value to indicate OOM
5148
5149         * doc/TODO: remove "- validate dict entry number of fields" as this
5150         patch fixes it
5151
5152 2005-06-14  David Zeuthen  <davidz@redhat.com>
5153
5154         * bus/bus.c (process_config_every_time): Drop existing conf-dir
5155         watches (if applicable) and add new watches
5156
5157         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
5158         (main): Setup SIGIO signal handler if using D_NOTIFY
5159
5160         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
5161
5162         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
5163         (merge_included): Also merge conf_dirs list
5164         (bus_config_parser_unref): Clear conf_dirs list
5165         (include_dir): Add directory to conf_dirs list
5166         (bus_config_parser_get_conf_dirs): New function
5167
5168         * bus/dir-watch.[ch]: New files
5169
5170         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
5171
5172         * configure.in: Add checks for D_NOTIFY on Linux
5173
5174 2005-06-14  Colin Walters  <walters@verbum.org>
5175
5176         * glib/dbus-binding-tool-glib.c:
5177         * glib/dbus-gobject.c:
5178         * glib/dbus-gvalue.c: Fix indentation and brace style.
5179         
5180 2005-06-14  Ross Burton <ross@openedhand.com>.
5181
5182         * glib/dbus-glib.h: Make DBusGMethodInvocation
5183         a private structure.  Rearrange prototypes a bit.
5184         
5185         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
5186         documentation for first_arg_type.
5187         
5188         * glib/dbus-gobject.c: Move DBusGMethodInvocation
5189         here, add documentation.  Move dbus_g_method_return
5190         and dbus_g_method_return_error into public API
5191         section.
5192
5193 2005-06-14  Colin Walters  <walters@verbum.org>
5194
5195         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
5196         Add missing return statements, noticed by Ross Burton.
5197         
5198 2005-06-13  Ross Burton <ross@openedhand.com>.
5199
5200         * glib/dbus-gobject.c: Handle errors on message
5201         demarshalling by sending error message back.
5202         * glib/dbus-gvalue.c: Initialize return variables.
5203
5204 2005-06-13  Colin Walters  <walters@verbum.org>
5205
5206         * glib/Makefile.am: Fix thinko in last patch.
5207
5208 2005-06-13  Colin Walters  <walters@verbum.org>
5209
5210         * glib/Makefile.am: Move dbus-gtype-specialized.c
5211         and dbus-gtype-specialized.h into a _HEADERS variable,
5212         install them.
5213
5214 2005-06-12  Colin Walters  <walters@verbum.org>
5215
5216         Async signals and various bugfixes and testing by
5217         Ross Burton <ross@openedhand.com>.
5218
5219         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
5220         (dbus_gvalue_genmarshal_name_from_type)
5221         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
5222         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
5223         (dbus_g_value_types_init, dbus_gtype_from_signature)
5224         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
5225         (dbus_gtypes_from_arg_signature): New function prototypes.
5226         (dbus_gvalue_demarshal): Take context and error arguments.
5227         (dbus_gvalue_demarshal_variant): New function.
5228         (dbus_gvalue_demarshal_message): New function.
5229         (dbus_gvalue_store): Delete.
5230
5231         * glib/dbus-gvalue.c:
5232
5233         File has been almost entirely rewritten; now we special-case
5234         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
5235         hash tables correctly, etc.  Full support for recursive values
5236         is not yet complete.
5237
5238         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
5239         argument of signal to G_TYPE_POINTER since we now pass a
5240         structure.
5241         (lookup_g_marshaller): Delete in favor of
5242         _dbus_gobject_lookup_marshaller.
5243         (marshal_dbus_message_to_g_marshaller): Use
5244         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
5245         to handle remote signal callbacks.
5246         (dbus_g_proxy_new_from_proxy): New function; creates a new
5247         DBusGProxy by copying an existing one.
5248         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
5249         (dbus_g_proxy_get_path): New functions.
5250         (dbus_g_proxy_marshal_args_to_message): New function;
5251         factored out of existing code.
5252         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
5253         from a varargs array.
5254         (dbus_g_proxy_begin_call_internal): New function.
5255         (dbus_g_proxy_end_call_internal): New function.
5256         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
5257         as arguments; simply invoke dbus_g_proxy_begin_call_internal
5258         after collecting args into value array.
5259         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
5260         invoke dbus_g_proxy_end_call_internal.
5261         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
5262         end_call_internal.
5263         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
5264         types.
5265         (array_free_all): New function.
5266         (dbus_g_proxy_add_signal): Take GTypes.
5267
5268         * glib/dbus-gobject.h:
5269         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5270         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
5271         Prototype.
5272
5273         * glib/dbus-gobject.c: Add a global marshal_table hash which
5274         stores mappings from type signatures to marshallers.  Change lots
5275         of invocations of dbus_gtype_to_dbus_type to
5276         dbus_gtype_to_signature.
5277         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5278         (introspect_signals): Fix test for query.return_type.
5279         (set_object_property): Update invocation of dbus_gvalue_demarshal.
5280         (invoke_object_method): Many changes.  Handle asynchronous
5281         invocations.  Convert arguments with
5282         dbus_gvalue_demarshal_message.  Handle errors.  Use
5283         DBusSignatureIter instead of strlen on args. Handle all arguments
5284         generically.  Special-case variants.
5285         (dbus_g_method_return, dbus_g_method_return_error): New function.
5286         (DBusGSignalClosure): New structure, closes over signal
5287         information.
5288         (dbus_g_signal_closure_new): New function.
5289         (dbus_g_signal_closure_finalize): New function.
5290         (signal_emitter_marshaller): New function; is special marshaller
5291         which emits signals on bus.
5292         (export_signals): New function; introspects object signals and
5293         connects to them.
5294         (dbus_g_object_type_install_info): Take GType instead of
5295         GObjectClass.
5296         (dbus_g_connection_register_g_object): Invoke export_signals.
5297         (dbus_g_connection_lookup_g_object): New function.
5298         (DBusGFuncSignature) New structure; used for mapping type
5299         signatures to marshallers.
5300         (funcsig_hash): New function; hashes DBusGFuncSignature.
5301         (funcsig_equal): New function; compares DBusGFuncSignature.
5302         (_dbus_gobject_lookup_marshaller): New function.
5303         (dbus_g_object_register_marshaller): New function; used to
5304         register a marshaller at runtime for a particular signature.
5305
5306         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
5307
5308         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
5309         which notes a server method implementation should be
5310         asynchronous.
5311
5312         * glib/dbus-binding-tool-glib.c
5313         (dbus_binding_tool_output_glib_server): Call
5314         dbus_g_value_types_init.
5315         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
5316         variants specially.
5317         (dbus_g_type_get_lookup_function): Turn GType into an invocation
5318         of a lookup function.
5319         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
5320         (write_untyped_out_args): New method; write output arguments.
5321         (write_formal_declarations_for_direction): Function for
5322         writing prototypes.
5323         (write_formal_parameters_for_direction): Function for
5324         writing implementations.
5325         (write_typed_args_for_direction): Function for writing
5326         arguments prefixed with GTypes.
5327         (write_async_method_client): Write out async version
5328         of method.
5329
5330         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
5331         (dbus_g_type_get_marshal_name): Move mapping from GType
5332         to marshal name into here.
5333         (dbus_g_type_get_c_name): Move into here.
5334         (compute_marshaller): Convert signature to type with
5335         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5336         (compute_marshaller_name): Ditto.
5337         (compute_marshaller): Handle async signal annotations.
5338         (gather_marshallers): Return if we don't have a known
5339         prefix.
5340         (generate_glue): Collect introspection blob here, and
5341         write all of the blob at the end.  This allows an object
5342         with multiple interfaces to work.
5343         Mark async methods in introspection blob.
5344
5345         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5346         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5347         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5348
5349         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5350         avoids people accidentally using DBUS_TYPE_* which should
5351         not be necessary anymore.
5352         Do include dbus-gtype-specialized.h, which are utilities
5353         for GLib container types.
5354         Add various #defines for types such as
5355         DBUS_TYPE_G_BOOLEAN_ARRAY.
5356         (DBusGValueIterator, DBusGValue): Define, not fully used
5357         yet.
5358         (dbus_g_value_get_g_type): Type for recursive value.
5359         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5360         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5361         (dbus_g_value_free): Prototypes.
5362         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5363         (dbus_g_proxy_set_interface): Prototype.
5364         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5365         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5366         types.
5367         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5368         Accessors.
5369         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5370         doing async invocations.
5371         (dbus_g_method_return, dbus_g_method_return_error):
5372         Prototypes.
5373         * doc/dbus-tutorial.xml: Update GLib section.
5374         
5375         * tools/dbus-viewer.c (load_child_nodes): Update
5376         for new invocation type of dbus_g_proxy_end_call.
5377         (load_from_service_thread_func): Ditto.
5378
5379         * tools/print-introspect.c (main): Ditto.
5380
5381         * tools/dbus-names-model.c (have_names_notify)
5382         (names_model_reload, names_model_set_connection)
5383         Use GTypes.
5384
5385         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5386         needed since Python bindings use GLib bindings.
5387
5388         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5389         Add --prefix argument.
5390
5391         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5392         unneeded --ignore-unsupported arg.
5393         
5394         * test/glib/test-service-glib.c: 
5395         * test/glib/test-service-glib.xml:
5396         * test/glib/test-dbus-glib.c: Add many more tests.
5397
5398 2005-06-06  David Zeuthen  <davidz@redhat.com>
5399
5400         * doc/TODO: Add item about need to remove deprecated functions.
5401
5402         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5403
5404         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5405         to repair the ABI which was broken with the last commit.
5406
5407 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5408
5409         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5410         (dbus_connection_disconnect): renamed to dbus_connection_close 
5411         for API symmetry with dbus_connection_open
5412         (_dbus_connection_open_internal): 
5413         s/dbus_connection_disconnect/dbus_connection_close
5414
5415         * dbus/dbus-bus.c (dbus_bus_get):
5416         s/dbus_connection_disconnect/dbus_connection_close
5417
5418         * bus/connection.c (bus_connections_unref, 
5419         bus_connections_setup_connection, bus_connections_expire_incomplete):
5420         s/dbus_connection_disconnect/dbus_connection_close
5421
5422         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5423         kill_client_connection_unchecked, check_hello_connection):
5424         s/dbus_connection_disconnect/dbus_connection_close
5425
5426         * bus/bus.c (new_connection_callback):
5427         s/dbus_connection_disconnect/dbus_connection_close
5428
5429         * tools/dbus-send.c (main):
5430         s/dbus_connection_disconnect/dbus_connection_close
5431
5432         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5433         s/dbus_connection_disconnect/dbus_connection_close
5434         
5435         * test/test-service.c (path_message_func, filter_func):
5436         s/dbus_connection_disconnect/dbus_connection_close
5437         
5438         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5439         
5440 2005-05-25  Colin Walters  <walters@verbum.org>
5441
5442         * dbus/dbus-protocol.h: Move various bus service #defines such
5443           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5444           dbus/dbus-shared.h.
5445         * dbus/dbus-shared.h: Various defines moved here.
5446         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5447
5448 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5449
5450         * python/__init__.py: Python bindings deserve a minor version
5451         update.  Upped to (0, 40, 2)
5452
5453 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5454
5455         * python/decorators.py: add explicitly_pass_message decorator
5456         for passing in the dbus message as keyword for edge case signal
5457         handling
5458
5459         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5460         to conform with what dbus expects for match rules
5461         (SignalMatchRule.execute): add the dbus message as a keyword
5462         if the signal handler has requested it
5463
5464         * python/examples/example/signal-recipient.py: added some more
5465         examples on how to hook up to signals
5466
5467 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5468
5469         * python/decorators.py: import dbus_bindings
5470
5471         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5472         SignalMatchNode): new classes that implement wildcard signal
5473         callback matching using a tree lookup. Heavily modified from a
5474         patch sent by Celso Pinto (fd.o bug #3241)
5475
5476         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5477         use new match classes to handle signals.
5478
5479 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5480         
5481         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5482
5483 2005-05-18  Havoc Pennington  <hp@redhat.com>
5484
5485         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5486         gettext. Not really worth requiring yet perhaps, but any
5487         production quality 1.0 would require it so we should go ahead and
5488         get things set up. We do have a couple token calls to
5489         bindtextdomain in the code already.
5490
5491 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5492
5493         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5494         when using recursive g_main_loops
5495
5496         * python/_dbus.py (class Bus): add the ProxyObjectClass
5497         alias for ProxyObject to make it easier for the Twisted 
5498         networking framework to integrate dbus.
5499
5500         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5501         alias for ProxyMethod to make it easier for the Twisted 
5502         networking framework to integrate dbus. 
5503
5504 2005-05-11  Ross Burton  <ross@openedhand.com>
5505
5506         * glib/dbus-glib-tool.c: Add --prefix argument.
5507         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5508         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5509         Add prefix argument.
5510         (generate_glue): Pass prefix argument down.
5511         (dbus_binding_tool_output_glib_server): Pass prefix to
5512         glib-genmarshal.
5513         
5514 2005-05-11  Colin Walters  <walters@verbum.org>
5515
5516         * tools/dbus-send.c (append_array): New function.
5517         (append_arg): Broken out from main.
5518         (main): Add cheesy hack to send arrays and variants.
5519         (usage): Update.
5520         * tools/dbus-print-message.c (print_iter): Broken out
5521         from main.
5522
5523 2005-05-11  Colin Walters  <walters@verbum.org>
5524
5525         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5526         New function, returns signature string for signature iter.
5527         * dbus/dbus-signature.h: Prototype it.
5528         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5529         New function, returns signature string for message iter.
5530         (dbus_message_iter_get_array_len): New function, returns
5531         length of array.
5532         (dbus_message_iter_get_fixed_array): Fix assertion; this
5533         function should be used when the iter is pointing to the
5534         contents of an array
5535         * dbus/dbus-message.h: Prototypes.
5536         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5537         New function; returns length of an array.
5538         * dbus/dbus-marshal-recursive.h: Prototype it.
5539         
5540 2005-05-11  Colin Walters  <walters@verbum.org>
5541
5542         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5543         compilation error.
5544         
5545 2005-05-08  Havoc Pennington  <hp@redhat.com>
5546
5547         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5548         daemon's pid, not the parent's pid, to the file descriptor.
5549         Reported by Taj Morton.
5550
5551 2005-05-05  Havoc Pennington  <hp@redhat.com>
5552
5553         * configure.in (LT_*): add notes on how the libtool versioning
5554         works to save thinking. Increment soname to indicate protocol
5555         breakage (though really the library interface hasn't changed I
5556         guess)
5557
5558         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5559         verify the GUID received from server matches what we were
5560         expecting, if we had an expectation
5561
5562         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5563         (_dbus_auth_get_guid_from_server): new function
5564         (send_begin): parse the OK args
5565
5566         * doc/dbus-specification.xml: add GUID to the auth protocol
5567
5568 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5569
5570         * Fix my name in previous changelog ;)
5571
5572         * python/proxies.py (ProxyObject.__getattr__): add further patch
5573         from Anthony Baxter to throw an AttributeError when python 
5574         __special__ functions are called instead of marshling them over 
5575         the bus (Bug#1685 comment 3).
5576
5577 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5578
5579         * python/Makefile.am: changed to use pyexecdir for the binding
5580         shared libraries (Bug#2494)
5581
5582         * python/exceptions.py: bring exceptions over from the bindings
5583         so they can be used in applications (Bug#2036)
5584         Make all exceptions derive from DBusException
5585
5586         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5587         of classes so that print obj doesn't throw an exception (Bug #1685)
5588
5589 2005-05-03  Ross Burton  <ross@openedhand.com>
5590
5591         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5592         Return if we get an error during registration.  Set up a
5593         weak reference on object to unregister if object is destroyed.
5594         (unregister_gobject): New function.
5595         
5596 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5597
5598         * python/dbus_bindings.pyx.in: 
5599         - added new type classes for hinting to the marashaler what type 
5600         to send over the wire
5601         - added int16 and uint16 marshalers
5602         - Fixed a bug in the type constants that caused int32 to go out
5603         as uint16 over the wire
5604         * python/dbus.py: split up into different files and renamed _dbus.py
5605         * python/__init__.py, python/_util.py, python/decorators.py, 
5606         python/exceptions.py, python/proxies.py, python/services.py,
5607         python/types.py: new files split off from dbus.py
5608         * python/Makefile.am: Add new files, remove dbus.py and 
5609         install all python files to <python module dir>/dbus
5610         * python/examples/*: Added #!/usr/bin/env python to the top of
5611         every example.  Patch provided by Tatavarty Kalyan
5612
5613 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5614
5615         * NEWS: Update to 0.33
5616
5617 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5618
5619         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5620         method for doing async calls
5621         (_pending_call_notification): New C function for handling pendning call
5622         callbacks
5623         (set_notify): New method for setting pending call notification
5624         
5625         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5626         Async capabilities added to remote method calls
5627         (Sender): class removed
5628         (RemoteService): class removed
5629         (ObjectTree): class removed for now
5630         (RemoteObject): Renamed to ProxyObject
5631         (RemoteMethod): Renamed to ProxyMethod
5632         (method): Decorator added for decorating python methods as dbus methods
5633         (signal): Decorator added for decorating python methods as signal emitters
5634         (ObjectType): Metaclass added for generating introspection data and the
5635         method callback vtable
5636         (Interface): Wrapper class added to wrap objects in a dbus interface
5637         (Object): Uses ObjectType as its metaclass and exports Introspect
5638         of the org.freedesktop.DBus.Introspectable interface
5639         (ValidationException, UnknownMethodException): new exceptions
5640
5641         * python/examples/*: Modified to fit with the new bindings
5642
5643 2005-04-23  Havoc Pennington  <hp@redhat.com>
5644
5645         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5646         reported by Tony Houghton
5647
5648         * test/test-service.c (main): test
5649         dbus_connection_get_object_path_data()
5650
5651         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5652         the exact_match
5653         (_dbus_object_tree_get_user_data_unlocked): new function used by
5654         dbus_connection_get_object_path_data()
5655         (do_register): add assertion test for get_user_data_unlocked
5656         (object_tree_test_iteration): more tests
5657
5658         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5659         new function from Dan Reed to let you get the user data from 
5660         dbus_connection_register_object_path()
5661
5662 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5663
5664         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5665         in numerous places that did not account for the NULL terminator
5666         (signature_from_seed): changed the manual string copy loop to 
5667         just use strcpy instead
5668         make check should now pass
5669
5670 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5671
5672         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5673         so that it allows messages that are not signals to pass in 
5674         NULL as the interface.
5675
5676 2005-04-18  David Zeuthen  <davidz@redhat.com>
5677
5678         * glib/dbus-gmain.c (io_handler_destroy_source): 
5679         (timeout_handler_destroy_source, connection_setup_free): 
5680         Also unref the source to avoid memory leaks.
5681
5682 2005-04-13  David Zeuthen  <davidz@redhat.com>
5683
5684         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5685         more reasonable, yet still totally arbitrary, value :-). 
5686
5687 2005-04-13  David Zeuthen  <davidz@redhat.com>
5688
5689         * doc/TODO: Added an "important for 1.0" item about selinux
5690         allow/deny messages
5691
5692 2005-04-13  David Zeuthen  <davidz@redhat.com>
5693
5694         * bus/selinux.c: Add c-file-style to top of file
5695         (log_audit_callback): Don't free the data here anymore
5696         (bus_selinux_check): Don't take spid and tpid since appending
5697         that to auxdata may OOM.
5698         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5699         to the caller if we are OOM by taking an error object.
5700         (bus_selinux_allows_send): -do-
5701
5702         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5703         and bus_selinux_allows_send
5704
5705         * bus/bus.c (bus_context_check_security_policy): Pass error and
5706         pass on OOM thrown by bus_selinux_allows_send()
5707
5708         * bus/services.c (bus_registry_acquire_service): Pass error and
5709         pass on OOM thrown by bus_selinux_allows_acquire_service()
5710
5711 2005-04-13  Havoc Pennington  <hp@redhat.com>
5712
5713         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5714         message at a time to avoid monopolizing the main loop, bug 
5715         #2953 from Benjamin Otte
5716
5717 2005-04-09  Havoc Pennington  <hp@redhat.com>
5718
5719         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5720         possible overlap, fix from Daniel Reed
5721         (fixup_alignment): fix signedness warnings
5722         (_dbus_string_append_unichar): ditto
5723
5724 2005-04-09  Havoc Pennington  <hp@redhat.com>
5725
5726         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5727
5728         * glib/dbus-glib-tool.c (main): fix warning
5729
5730         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5731
5732         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5733         add a new function that can be used in simple applications that
5734         don't have a main loop and are willing to block
5735
5736 2005-04-05  David Zeuthen  <davidz@redhat.com>
5737
5738         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5739
5740         * glib/dbus-gmain.c:
5741         (io_handler_destroy_source): Remove from list of IO handlers
5742         of the ConnectionSetup object
5743         (timeout_handler_destroy_source): -do- for timeout handlers
5744         (io_handler_source_finalized): Don't remove from list since
5745         we now do that in io_handler_destroy_source(). Renamed from
5746         io_handler_source_destroyed
5747         (timeout_handler_source_destroyed): -do- for timeout handlers
5748         (connection_setup_free): It is now safe to iterate over all
5749         IO and timeout handlers as the _destroy_source removes them
5750         from the list synchronously
5751
5752 2005-03-30  Havoc Pennington  <hp@redhat.com>
5753
5754         * configure.in: change check to gtk 2.4
5755
5756         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5757         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5758         to 2.4
5759
5760 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5761
5762         * News: Update 0.32
5763
5764         * HACKING: Fixed realease instructions.  configure.in should be updated to
5765           the next release by the person who made the last release.
5766
5767 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5768
5769         * python/lvalue_cast_post_process.py - removed.  Patch has been
5770           submitted to Pyrex maintainers that fixes gcc4.0 errors
5771
5772         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5773
5774 2005-03-24  Daniel Reed  <n@ml.org>
5775
5776         * tools/Makefile.am: Make print-introspect and
5777         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5778
5779 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5780
5781         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5782
5783         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5784           had in Red Hat packages for a while but for some reason never 
5785           got merged upstream
5786           (_dbus_is_a_number): New checks if a string
5787           can be converted to a number and does the conversion if it can
5788           (_dbus_user_database_lookup): Add check to see if the given username
5789           is a udi.  This allows udi's to be used instead of usernames in the
5790           config file.
5791           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5792           is a gdi.  This allows gdi's to be used instead of groupnames in the
5793           config file.
5794
5795 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5796
5797         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5798           code so that it compiles with gcc4.0
5799
5800         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5801           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5802           results back to dbus_binding.c
5803
5804 2005-03-20  Colin Walters  <walters@verbum.org>
5805
5806         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5807
5808         * configure.in: Require GTK+ 2.6.
5809         
5810 2005-03-20  Colin Walters  <walters@verbum.org>
5811
5812         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5813
5814 2005-03-17  Tom Parker  <palfrey@tevp.net>
5815
5816         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5817         print DBUS_UID_UNSET; instead print passed username.  Also
5818         be sure to actually use gid looked up in cache.
5819         
5820         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5821         for DBUS_GID_UNSET and groupname.
5822
5823 2005-03-17  Colin Walters  <walters@verbum.org>
5824
5825         * bus/print-introspect.c: Move to tools/.
5826         * bus/run-with-tmp-session-bus.sh: Ditto.
5827         
5828         * glib/Makefile.am (dbus-glib-bindings.h): Move
5829         generation to tools/Makefile.am.
5830
5831         * test/glib/run-test.sh: Update to handle move
5832         of run-with-tmp-session-bus.sh.
5833
5834         * test/glib/test-service-glib.c: Update to handle
5835         move of dbus-glib-bindings.h.
5836
5837         * tools/print-introspect.c: Moved here
5838         from bus/, and ported to GLib bindings.
5839
5840         * tools/run-with-tmp-session-bus.sh: Moved here
5841         from bus/.
5842
5843         * tools/Makefile.am: Generate dbus-glib-bindings.h
5844         and dbus-bus-introspect.xml here.
5845
5846         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5847         Update.
5848
5849 2005-03-17  Colin Walters  <walters@verbum.org>
5850
5851         * bus/driver.c (write_args_for_direction): Use
5852         _dbus_string_get_const_data to retrieve string;
5853         _dbus_string_get_const_data_len doesn't actually return
5854         a NULL-terminated substring.
5855
5856         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5857         (main): Change to use org_freedesktop_DBus_request_name
5858         instead of using g_proxy_begin_call/end_call.
5859
5860 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5861
5862         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5863         generating the finalizer.  Fixes from Ben Maurer.
5864
5865 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5866
5867         * mono/BusDriver.cs: Update method names: ListServices
5868         becomes ListNames; GetOwner becomes GetNameOwner.
5869
5870         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5871         onto the eval stack when removing the delegate.
5872
5873 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5874
5875         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5876         LT_CURRENT.  Set it to the autoconf variable.
5877                                                                                 
5878         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5879         classes that disconnects the signal handler delegate from the
5880         service object.  Fixes a big leak of proxy objects on the
5881         client side of things.  Patch from Ben Maurer
5882         <bmaurer@ximian.com>
5883
5884 2005-03-12  Colin Walters  <walters@verbum.org>
5885
5886         * bus/driver.c (write_args_for_direction): New function,
5887         parses a type signature into arguments and outputs to
5888         XML.
5889         (bus_driver_handle_introspect): Use it instead of
5890         hardcoding XML for certain signatures.
5891         
5892         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5893         dependency on dbus-daemon.
5894
5895         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5896         argument, pass it to dbus_binding_tool_output_glib_client.
5897
5898         * glib/dbus-binding-tool-glib.c
5899         (generate_client_glue): Protect against multiple inclusion.
5900         (dbus_binding_tool_output_glib_client): Add
5901         G_BEGIN_DECLS/G_END_DECLS.
5902
5903         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5904         Change to just take iface prefix directly.
5905         (write_formal_parameters): Clarify error message.
5906         (check_supported_parameters): New function; checks to see type
5907         signatures of method parameters are supported.
5908         (generate_client_glue): Handle ignore_unsupported flag.
5909         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5910         parameter.
5911
5912         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5913         --ignore-unsupported by default until glib bindings
5914         support arrays.
5915
5916 2005-03-11  Colin Walters  <walters@verbum.org>
5917
5918         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5919         install it.
5920
5921         * bus/print-introspect.c: New file; prints introspection
5922         data for a given name and object path.
5923
5924         * bus/run-with-tmp-session-bus.sh: New file, refactored
5925         from test/glib/run-test.sh.  Creates a temporary session
5926         bus and runs another program.
5927
5928         * test/glib/run-test.sh: Refactor to invoke
5929         run-with-tmp-session-bus.sh.
5930
5931         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5932         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5933         macros instead of hardcoding.
5934
5935         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5936
5937 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5938
5939         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5940         this unref; it doesn't match up evenly in some codepaths.
5941         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5942         this evenly matches with the ref near the top of this function.
5943
5944 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5945
5946         * dbus/dbus-object-tree.c
5947         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5948         and we try to unregister a path that's not registered, still go
5949         through the process of unlocking and don't just return.
5950
5951 2005-03-09  Colin Walters  <walters@verbum.org>
5952
5953         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5954         to this are generated for client-side wrappers.  Invokes a
5955         D-BUS method and returns reply values.  
5956
5957         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5958         function; writes signature string for argument direction.
5959         (write_args_for_direction): Change to pass input values directly
5960         instead of via address, and fix indentation.
5961         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5962         make generated wrappers inlineable.
5963
5964         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5965         note about using dbus_type_is_fixed.
5966
5967         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5968         dbus/dbus-signature.c as dbus_type_is_fixed.
5969
5970         All callers updated.
5971
5972         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5973         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5974
5975         * dbus/dbus-signature.h: Prototype.
5976
5977         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5978         error printf code.
5979
5980         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5981         appropriate instead of just freeing it.
5982         (main): Free returned strings using g_free.
5983
5984         * test/glib/Makefile.am (test-service-glib-glue.h)
5985         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5986
5987         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5988         simply maps a simple D-BUS type to GType.
5989         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5990         GType.
5991         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5992         initialize the value with it.
5993         (dbus_gvalue_binding_type_from_type): Unused, delete.
5994         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5995         various types instead of unmarshalling to value data directly.
5996         Remove can_convert boolean.
5997         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5998         returning directly instead of using can_convert boolean.
5999         (dbus_gvalue_store): New function; not related to D-BUS per-se.
6000         Stores a GValue in a pointer to a value of its corresponding C
6001         type.
6002
6003         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
6004         add dbus_gvalue_store.
6005
6006 2005-03-08  Joe Shaw  <joeshaw@novell.com>
6007
6008         Fix a bunch of lifecycle and memory management problems
6009         in the mono bindings.
6010
6011         * mono/Arguments.cs (Arguments): Implement IDisposable
6012
6013         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
6014         strictly a static class.
6015
6016         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
6017         delegates into this file.
6018         (Connection): Implement IDisposable.
6019         (Dispose): Disconnect the connection and set the raw connection
6020         pointer to IntPtr.Zero.
6021         (~Connection): Call Dispose().
6022         (RegisterObjectPath): Added.  Manages the registration of object
6023         paths so we can cleanly disconnect them at dispose/finalize time.
6024         (UnregisterObjectPath): Ditto.
6025         (set_RawConnection): Unregister all of the object paths when
6026         changing the underlying DBusConnection.  Add them back onto the
6027         new connection, if any.
6028
6029         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
6030         more unmanaged resources anymore, so it's not necessary.  Move all
6031         the DBusObjectPathVTable stuff out of here.
6032         (Handler): Save references to our delegates so that they don't get
6033         finalized.  Call Connection.RegisterObjectPath() instead of
6034         dbus_connection_register_object_path() directly.
6035         (Message_Called): Dispose the message after we're finished with
6036         it.
6037
6038         * mono/Message.cs (Message): Implement IDisposable.
6039         (Dispose): Dispose the Arguments, and set the RawMessage to
6040         IntPtr.Zero.
6041         (SendWithReplyAndBlock): We own the ref to the reply that comes
6042         back from dbus_connection_send_with_reply_and_block() so add a
6043         comment about that and unref it after we've constructed a managed
6044         MethodReturn class around it.  Fixes a big, big leak.
6045
6046         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
6047         method.
6048         (BuildSignalHandler): After we've sent the Signal message, dispose
6049         of it.
6050         (BuildMethod): Dispose of the method call and reply messages after
6051         we've sent the message and extracted the data we want from the
6052         reply.
6053
6054         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
6055         anymore.
6056         (Service_FilterCalled): Dispose of the message after we're
6057         finished with it.
6058
6059 2005-03-08  Joe Shaw  <joeshaw@novell.com>
6060
6061         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
6062         After we attach our pending call to the connection, unref
6063         it.  Fixes a leak.
6064  
6065         * mono/Connection.cs (set_RawConnection): Disconnect our
6066         filter and match callbacks from the old connection and
6067         reconnect them to the new connection, if any.
6068
6069         * mono/DBusType/Array.cs: "Code" is a static member, so
6070         don't use "this" to refer to it.  Fix for stricter checking
6071         in Mono 1.1.4.
6072  
6073         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
6074         object path that we pass into unmanaged code.
6075  
6076         * mono/DBusType/String.cs (Append): Don't leak the string
6077         that we pass into unmanged code.
6078
6079 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
6080         * NEWS: Update for 0.31
6081
6082         * configure.in: Release 0.31
6083         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
6084
6085         * qt/Makefile.am: fixed build
6086
6087         * dbus/Makefile.am: soname bump for libdbus
6088
6089         * glib/Makefile.am: soname bump for libdbus-glib
6090
6091 2005-03-05  Havoc Pennington  <hp@redhat.com>
6092
6093         * dbus/dbus-sysdeps.c:
6094         (pseudorandom_generate_random_bytes_buffer): fix to have no return
6095         value
6096         (_dbus_generate_random_bytes_buffer): fix return value
6097
6098         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
6099         checks actually work, from Tom Parker <fdo@tevp.net>
6100
6101 2005-03-01  Colin Walters  <walters@verbum.org>
6102
6103         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
6104         functions copied from dbus-glib-tool.c.
6105         (main): Convert lots of error code to use them.
6106         Also add some testing for introspection bits.
6107
6108 2005-03-01  Colin Walters  <walters@verbum.org>
6109         
6110         * doc/TODO: Remove introspection signature TODO.
6111
6112 2005-02-27  Colin Walters  <walters@verbum.org>
6113
6114         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
6115         Change return value to const char * instead of int so we can do
6116         full signatures.
6117         (struct PropertyInfo, struct ArgInfo): Store char *.
6118         (property_info_new, arg_info_new): Update parameters, strdup.
6119         (property_info_unref, arg_info_unref): Free.
6120
6121         * glib/dbus-gidl.h: Update prototypes.
6122
6123         * glib/dbus-gparser.c (basic_type_from_string): Delete.
6124         (validate_signature): New function, just validates signature and
6125         sets GError.
6126         (parse_property, parse_arg): Invoke validate_signature.  Store
6127         signature instead of just type code.
6128
6129         * glib/dbus-gvalue.c (base_type_from_signature): New utility
6130         function to return a primary type for a signature, dropping
6131         information about types in container types.
6132         (dbus_gvalue_genmarshal_name_from_type)
6133         (dbus_gvalue_binding_type_from_type)
6134         (dbus_gvalue_ctype_from_type): Update to take full signature
6135          instead of type code.
6136         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
6137
6138         * glib/dbus-gvalue.h: Update prototypes for above.
6139
6140         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
6141         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
6142         (introspect_properties, introspect_signals, write_interface):
6143         Update to handle signatures, and remove usage of
6144         _dbus_gutils_type_to_string.
6145         (handle_introspect): Print out type codes instead of e.g. "string"
6146         in hardcoded introspection XML; also use x_AS_STRING constants
6147         instead of hardcoding in string.
6148
6149         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
6150         to string.  Remove usage of _dbus_gutils_type_to_string.
6151
6152         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
6153
6154         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
6155         deletion.
6156         
6157         * glib/dbus-binding-tool-glib.c (compute_marshaller)
6158         (compute_marshaller_name, generate_glue): Handle signature change
6159         to string.
6160         (write_formal_parameters, write_args_for_direction): Ditto, and
6161         remove FIXME.
6162
6163         * tools/dbus-tree-view.c (type_to_string): Delete.
6164         (info_set_func_text): Update to print full signatures.
6165
6166         * test/glib/test-service-glib.xml: Change types to new
6167         introspection format.
6168
6169 2005-02-26  Havoc Pennington  <hp@redhat.com>
6170
6171         * doc/TODO: remove the "guid" item
6172
6173         * test/glib/test-profile.c (no_bus_thread_func): use open_private
6174         (with_bus_thread_func): use open_private
6175
6176         * dbus/dbus-connection.c (dbus_connection_open_private): new
6177         function that works like the old dbus_connection_open()
6178         (dbus_connection_open): now returns an existing connection if
6179         possible
6180
6181         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
6182         through the GUID to the transport
6183
6184         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
6185         GUID in hex-encoded form.
6186
6187         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
6188         pass GUID argument in to the transport
6189
6190         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
6191         guid argument
6192
6193         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
6194
6195         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
6196
6197 2005-02-25  Havoc Pennington  <hp@redhat.com>
6198
6199         * doc/dbus-specification.xml: document the GUID thing
6200
6201         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
6202         globally unique ID for the server, and put a "guid=hexencoded"
6203         field in the address
6204
6205         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
6206
6207         * dbus/dbus-message.c: ditto
6208
6209         * dbus/dbus-dataslot.c: ditto
6210
6211         * dbus/dbus-list.c: ditto
6212
6213         * dbus/dbus-internals.h: wait, just include
6214         dbus-threads-internal.h here
6215         
6216         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
6217         use in main library
6218
6219         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
6220
6221 2005-02-24  Colin Walters  <walters@verbum.org>
6222
6223         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
6224
6225 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
6226
6227         * glib/Makefile.am: added dbus-gobject.h to sources list
6228         so distcheck doesn't fail
6229         
6230 2005-02-24  Havoc Pennington  <hp@redhat.com>
6231
6232         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
6233         you must disconnect before unref, since locking and other things
6234         are screwed up otherwise. Fix assorted other locking stuff.
6235
6236         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
6237         fix compilation
6238
6239         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
6240         into a private header and don't export from the library
6241
6242         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
6243
6244 2005-02-24  Colin Walters  <walters@verbum.org>
6245         
6246         * dbus/dbus-signature.c: New file; implements various functions
6247         related to type signatures.  Includes an interator for parsing,
6248         validation functions.
6249         (dbus_type_is_basic): Moved here from
6250         dbus-marshal-basic.c:_dbus_type_is_basic.
6251         (dbus_type_is_container): Moved here from
6252         dbus-marshal-basic.c:_dbus_type_is_container.
6253
6254         All callers of _dbus_type_is_container and _dbus_type_is_basic
6255         updated, and include dbus-signature.h.
6256
6257         * dbus/dbus-signature.h: New file; prototypes for the above.
6258
6259         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
6260         dbus-signature.h.
6261
6262         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
6263         function factored out of _dbus_first_type_in_signature.
6264         (_dbus_first_type_in_signature_c_str): New function; returns first
6265         type code for a type signature character.
6266
6267         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
6268         handle function moves.
6269
6270         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
6271
6272         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
6273         function; skips to next complete type in type signature.
6274         Implemented using previous skip_one_complete_type.  Now
6275         skip_one_complete_type just delegates to
6276         _dbus_type_signature_next.
6277
6278         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
6279         to dbus-signature.c
6280         (_dbus_type_is_container): Ditto.
6281
6282         * doc/dbus-specification.xml: Update introspection sample to
6283         use real type signatures.
6284
6285         * dbus/dbus-test.h: Prototype signature test.
6286
6287         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
6288         signature tests.
6289
6290         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
6291
6292 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
6293
6294         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
6295         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
6296
6297 2005-02-21  Colin Walters  <walters@verbum.org>
6298
6299         * dbus/dbus-test-main.c (main): Take optional specific test
6300         argument.
6301
6302         * dbus/dbus-test.c (run_test): New function, runs a test function
6303         with no data directory.
6304         (run_data_test): Like above, but takes data directory.
6305         (dbus_internal_do_not_use_run_tests): Take
6306         specific test argument.  Replace lots of cut n' paste code
6307         with run_test and run_data_test.
6308
6309         * dbus/dbus-test.h: Update prototype for
6310         dbus_internal_do_not_use_run_tests.
6311
6312 2005-02-20  Havoc Pennington  <hp@redhat.com>
6313
6314         Fix bugs reported by Daniel P. Berrange
6315         
6316         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
6317         (protected_change_watch): new function
6318         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
6319         (_dbus_server_add_watch): change to work like the
6320         dbus-connection.c equivalents; like those, probably kind of
6321         busted, but should at least mostly work for now
6322         (dbus_server_disconnect): drop the lock if we were already
6323         disconnected, patch from Daniel P. Berrange
6324
6325         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
6326         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
6327         same stuff
6328
6329         * doc/TODO: todo about unscrewing this mess
6330
6331 2005-02-19  Colin Walters  <walters@verbum.org>
6332
6333         * glib/dbus-binding-tool-glib.c
6334         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6335
6336         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6337         as errno.h and sys/stat.h.
6338         (lose): New function, prints error with
6339         newline and exits.
6340         (lose_gerror): Similar, but takes GError for message.
6341         (main): Add --output argument to specify output file to write to,
6342         instead of always printing to stdout.  In this mode, determine
6343         timestamps on source files to see whether any are newer than the
6344         target file.  If not, exit.  Also convert a number of error
6345         messages to use lose (since it's shorter), and switch to using
6346         g_io_channel_shutdown.
6347
6348 2005-02-19  Havoc Pennington  <hp@redhat.com>
6349
6350         * glib/dbus-gobject.c
6351         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6352
6353         * glib/dbus-glib.c: fix doxygen warnings
6354
6355         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6356         is found on an <arg>
6357
6358 2005-02-17  Colin Walters  <walters@verbum.org>
6359
6360         * glib/dbus-gobject.h: Don't export
6361         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6362         
6363         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6364         (invoke_object_method): Handle it.
6365
6366         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6367         Handle rename.
6368         
6369 2005-02-17  Colin Walters  <walters@verbum.org>
6370
6371         * bus/.cvsignore, doc/.cvsignore
6372         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6373         Update.
6374
6375 2005-02-17  Colin Walters  <walters@verbum.org>
6376         
6377         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6378         Rename to DBUS_SERVICE_DBUS.
6379         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6380         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6381         Change the value from "org.freedesktop.Local"
6382         to "org.freedesktop.DBus.Local".
6383         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6384         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6385         DBUS_INTERFACE_INTROSPECTABLE.
6386         Change the value from "org.freedesktop.Introspectable"
6387         to "org.freedesktop.DBus.Introspectable".
6388         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6389         DBUS_INTERFACE_PROPERTIES.
6390         Change the value from "org.freedesktop.Properties"
6391         to "org.freedesktop.DBus.Properties".
6392         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6393         DBUS_INTERFACE_PEER.
6394         Change the value from "org.freedesktop.Peer"
6395         to "org.freedesktop.DBus.Peer".
6396         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6397         DBUS_INTERFACE_LOCAL.
6398         Change the value from "org.freedesktop.Local"
6399         to "org.freedesktop.DBus.Local".
6400
6401         All other users of those constants have been changed.
6402
6403         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6404
6405         * glib/dbus-gobject.c (handle_introspect): Use constants.
6406
6407         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6408
6409 2005-02-17  Colin Walters  <walters@verbum.org>
6410
6411         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6412         (parse_node, parse_interface, parse_method, parse_signal)
6413         (parse_property, parse_annotation): Lose if we're currently in an
6414         annotation.
6415         (parse_annotation): New function.
6416         (parser_start_element, parser_end_element): Handle annotation.
6417         (parse_method, parse_interface): Remove support for c_name attribute,
6418         switch to annotations.
6419
6420         * glib/dbus-gidl.h (interface_info_get_binding_names)
6421         (method_info_get_binding_names)
6422         (interface_info_get_binding_name, method_info_get_binding_name)
6423         (interface_info_set_binding_name, method_info_set_binding_name):
6424         Remove.
6425         (interface_info_get_annotations, method_info_get_annotations)
6426         (interface_info_get_annotation, method_info_get_annotation)
6427         (interface_info_add_annotation, method_info_add_annotation):
6428         Prototype.
6429
6430         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6431         for "bindings".
6432         (struct MethodInfo): Ditto.
6433         Straightfoward conversion of binding methods into annotation methods
6434         as prototyped.
6435
6436         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6437
6438         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6439
6440         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6441         Use new annotation API.
6442
6443         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6444         annotation element.
6445         
6446         * doc/dbus-specification.xml: Discuss introspection annotations,
6447         include list of well-known annotations.
6448
6449         * test/glib/test-service-glib.xml: Make validate against new DTD.
6450
6451 2005-02-17  Colin Walters  <walters@verbum.org>
6452
6453         This patch is based on initial work from
6454         Paul Kuliniewicz <kuliniew@purdue.edu>.
6455
6456         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6457         initialization of GValue from dbus type to here.
6458         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6459         for the "glib-genmarshal" program from a DBus type.
6460         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6461         into the C name for it we use in the glib bindings.
6462         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6463         glib C type (not GValue).
6464         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6465
6466         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6467         from dbus-gobject.c.
6468
6469         * glib/dbus-gutils.h: Prototype it.
6470
6471         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6472         (marshal_dbus_message_to_g_marshaller): Use new shared function
6473         dbus_glib_marshal_dbus_message_to_gvalue_array.
6474
6475         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6476         Will be changed once we have annotations.
6477
6478         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6479         GStaticRWLock.  Callers updated.
6480         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6481         (string_table_next): New function for iterating over zero-terminated
6482         string value array.
6483         (string_table_lookup): New function; retrieves specific entry in
6484         array.
6485         (get_method_data): New function; look up method data in object data chunk.
6486         (object_error_domain_prefix_from_object_info)
6487         (object_error_code_from_object_info): New functions, but not implemented yet.
6488         (method_interface_from_object_info): New function; retrieve interface name.
6489         (method_name_from_object_info): New function; retrieve method name.
6490         (method_arg_info_from_object_info): New function; retrieve argument data.
6491         (arg_iterate): New function; iterates over serialized argument data.
6492         (method_dir_signature_from_object_info): New function; returns a
6493         GString holding type signature for arguments for just one
6494         direction (input or output).
6495         (method_input_signature_from_object_info)
6496         (method_output_signature_from_object_info): New functions.
6497         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6498         converts dbus message arguments into a GValue array.  Used for both
6499         signal handling and method invocation.
6500         (struct DBusGlibWriteIterfaceData): New utility structure.
6501         (write_interface): New function; generate introspection XML for
6502         an interface.
6503         (introspect_interfaces): New function; gathers all interface->methods,
6504         generates introspection XML for them.
6505         (handle_introspect): Invoke introspect_interfaces.
6506         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6507         (lookup_object_and_method): New function; examines an incoming message
6508         and attempts to match it up (via interface, method name, and argument
6509         signature) with a known object and method.
6510         (gerror_domaincode_to_dbus_error_name): New function; converts a
6511         GError domain and code into a DBus error name.  Needs GError data
6512         added to object introspection to work well.
6513         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6514         GError.
6515         (invoke_object_method): New function to invoke an object method
6516         looked up via lookup_object_and_method.  Parses the incoming
6517         message, turns it into a GValue array, then invokes the marshaller
6518         specified in the DBusGMethodInfo.  Creates a new message with
6519         either return values or error message as appropriate.
6520         (gobject_message_function): Invoke lookup_object_and_method and
6521         invoke_object_method.
6522
6523         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6524         (enum DBusBindingOutputMode): New enum for binding output modes.
6525         (pretty_print): Print binding names.
6526         (dbus_binding_tool_error_quark): GError bits.
6527         (version): Fix typo.
6528         (main): Create GIOChannel for output.  Parse new --mode argument,
6529         possible values are "pretty-print", "glib-server", "glib-client".
6530         Use mode to invoke appropriate function.
6531         
6532         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6533
6534         * glib/dbus-glib-tool.h: New header, just includes GError bits
6535         for now.
6536
6537         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6538         maps binding style to name.
6539         (struct MethodInfo): Ditto.
6540         (get_hash_keys, get_hash_key): Utility function, returns keys for
6541         a GHashTable.
6542         (interface_info_new, method_info_new): Initialize bindings.
6543         (interface_info_unref, method_info_unref): Destroy bindings.
6544         (method_info_get_binding_names, method_info_get_binding_name)
6545         (interface_info_get_binding_names, interface_info_get_binding_name):
6546         Functions for retrieving binding names.
6547         (method_info_set_binding_name, interface_info_set_binding_name):
6548         Functions for setting binding names.
6549
6550         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6551         for glib binding generation.
6552
6553         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6554         and client-side glib glue generation.
6555
6556         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6557         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6558         dbus-glib-tool.h.
6559
6560         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6561         of using GClosureMarshal directly.
6562         (struct DBusGObjectInfo): Add n_infos member.
6563
6564         * test/glib/test-service-glib.xml: New file; contains introspection data
6565         for MyTestObject used in test-service-glib.c.
6566
6567         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6568         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6569         (my_object_uppercase, my_object_many_args): New test methods.
6570         (main): Use dbus_g_object_class_install_info to include generated object
6571         info.
6572
6573         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6574         as well as client-side bindings.
6575
6576         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6577         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6578         using both the dbus_gproxy stuff directly as well as the generated bindings.
6579
6580 2005-02-15  Havoc Pennington  <hp@redhat.com>
6581
6582         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6583         complete a pending call, don't run filters first.
6584
6585         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6586         dbus_pending_call_steal_reply
6587
6588         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6589         _dbus_connection_block_pending_call
6590         (dbus_pending_call_get_reply): change to steal_reply and return a
6591         ref
6592
6593         * dbus/dbus-connection.c
6594         (dbus_connection_send_with_reply_and_block): port to work in terms
6595         of DBusPendingCall
6596         (_dbus_connection_block_pending_call): replace block_for_reply
6597         with this
6598
6599 2005-02-14  Havoc Pennington  <hp@redhat.com>
6600
6601         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6602         properly handle looking up group information by name; fix 
6603         from j@bootlab.org
6604
6605 2005-02-13  Havoc Pennington  <hp@redhat.com>
6606
6607         * dbus/dbus-connection.c (dbus_connection_return_message) 
6608         (dbus_connection_borrow_message): hold dispatch lock while message
6609         is outstanding
6610         (_dbus_connection_block_for_reply): hold dispatch lock while we
6611         block for the reply, so nobody steals our reply
6612         (dbus_connection_pop_message): hold the dispatch lock while we
6613         pluck the message
6614
6615 2005-02-13  Havoc Pennington  <hp@redhat.com>
6616
6617         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6618         (_dbus_connection_release_dispatch)
6619         (_dbus_connection_acquire_io_path)
6620         (_dbus_connection_release_io_path): make the mutex and condvar
6621         control access to the "acquired" flag. Drop the connection lock
6622         while waiting on the condvar. Hopefully these are baby steps in
6623         roughly the right direction.
6624
6625 2005-02-13  Havoc Pennington  <hp@redhat.com>
6626
6627         * dbus/dbus-connection.c: use separate mutexes for the condition
6628         variables; this is some kind of baseline for sanity, but the
6629         condition variables still aren't used correctly afaict
6630
6631 2005-02-13  Havoc Pennington  <hp@redhat.com>
6632
6633         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6634         fix a double-unlock
6635
6636         * dbus/dbus-connection.c
6637         (_dbus_connection_detach_pending_call_unlocked): add this
6638
6639         Initial semi-correct pass through to fix thread locking; there are
6640         still some issues with the condition variable paths I'm pretty
6641         sure
6642         
6643         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6644         lock/unlock calls
6645
6646         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6647         rename to add _unlocked
6648         (struct DBusConnection): move "dispatch_acquired" and
6649         "io_path_acquired" to use only one bit each.
6650         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6651         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6652         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6653         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6654         (_dbus_connection_remove_timeout) 
6655         (_dbus_connection_toggle_timeout): drop lock when calling out to
6656         user functions; done in a hacky/bad way.
6657         (_dbus_connection_send_and_unlock): add a missing unlock
6658         (_dbus_connection_block_for_reply): add a missing unlock
6659
6660         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6661         drop lock in a hacky probably unsafe way to call out to user
6662         function
6663
6664 2005-02-12  Havoc Pennington  <hp@redhat.com>
6665
6666         * tools/dbus-tree-view.c (info_set_func_text): display more
6667         details on args
6668
6669         * bus/driver.c (bus_driver_handle_list_services): list the bus
6670         driver
6671
6672         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6673
6674         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6675         (method_info_get_n_args): new function
6676
6677 2005-02-12  Havoc Pennington  <hp@redhat.com>
6678
6679         * bus/driver.c (bus_driver_handle_introspect): add introspection
6680         for bus driver
6681
6682 2005-02-12  Havoc Pennington  <hp@redhat.com>
6683
6684         * bus/driver.c: put the signature of each bus driver method in the
6685         table of handlers and check it on incoming calls; this isn't
6686         really useful, but going to add introspect support in a minute.
6687
6688 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6689
6690         * mono/Connection.cs: The unpredictability of finalizers in mono
6691         prevents us from deterministically disconnecting the filters from
6692         the Service class's finalizer, so move tracking of filters and
6693         matches here.  Add API for that.
6694
6695         * mono/Service.cs: Remove the code, add code which calls the
6696         methods now on the Connection class.
6697
6698 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6699
6700         * python/dbus.py (class Sender): added to support dbus signals better
6701         (Bus::add_signal_receiver): added expand_args parameter which defaults
6702         to True.  When expand args is True the signal handler will pass the 
6703         message arguments as parameters to the signal handler.  If False
6704         revert to previous behavior where the signal handler must get the
6705         argument list from the message.  This is to help port applications
6706         like HAL that have a tendancy to send variable length argument lists.
6707         self._match_rule_to_receivers is now a dict of dicts.
6708         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6709         removing it from a list
6710         (Bus::_signal_func): change signal handlers so that interface,
6711         signal_name, service, path and message are packed into a Sender
6712         object and that is passed to the handler.  If expand_args is True
6713         extract the args list from the message and append it to the parameter
6714         list
6715         
6716         * python/dbus_bindings.pyx.in (class Signature): added to support 
6717         signiature types
6718         (MessageIter::__init__): changed iteration limit to match D-BUS
6719         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6720         STRUCT and VARIENT type support
6721         (MessageIter::python_value_to_dbus_sig): made recursive to support
6722         recursive types
6723         (MessageIter::append*): added Signature, dict, tuple 
6724         support
6725
6726         * python/examples/example-client.py: added examples of getting tuples
6727         and dicts
6728
6729         * python/examples/example-service.py: added examples of sending tuples
6730         and dicts
6731
6732         * python/examples/example-signal-recipient.py: Fixed to handle new
6733         signal callback format
6734
6735 2005-02-10  Havoc Pennington  <hp@redhat.com>
6736
6737         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6738         (call dbus_g_proxy_add_signal)
6739
6740         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6741         escape the hostname
6742         (_dbus_server_new_for_domain_socket): escape the path
6743
6744         * dbus/dbus-address.c (dbus_address_escape_value): new
6745         (dbus_address_unescape_value): new
6746         (dbus_parse_address): unescape values
6747
6748         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6749
6750         * doc/dbus-specification.xml: explain how to escape values in
6751         addresses
6752
6753 2005-02-10  Havoc Pennington  <hp@redhat.com>
6754
6755         * dbus/dbus-message-factory.c (generate_special): modify test to
6756         avoid using a non-basic dict key
6757
6758         * dbus/dbus-marshal-validate-util.c: add test for the below
6759
6760         * doc/dbus-specification.xml: require that dict keys are a basic
6761         type
6762
6763         * dbus/dbus-marshal-validate.c
6764         (_dbus_validate_signature_with_reason): require that dict key is a
6765         basic type
6766
6767 2005-02-10  Havoc Pennington  <hp@redhat.com>
6768
6769         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6770         change to be _and_unlock instead of _unlocked
6771
6772         * dbus/dbus-connection.c
6773         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6774         have no_update so we can find this bug quickly in future
6775
6776 2005-02-10  Havoc Pennington  <hp@redhat.com>
6777
6778         * dbus/dbus-message-util.c (verify_test_message): tests for string
6779         array
6780
6781         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6782         support for arrays of string/signature/path
6783
6784 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6785
6786         * dbus/dbus-connection.c
6787         (_dbus_connection_queue_received_message_link,
6788         _dbus_connection_message_sent): Add the path to
6789         the verbose output.
6790         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6791         _dbus_connection_send_preallocated_unlocked(), updated the
6792         dispatch status, and unlocks.  Fixes a bug where certain
6793         situations (like a broken pipe) could cause a Disconnect message
6794         to not be sent, tricking the bus into thinking a service was still
6795         there when the process had quit.
6796         (_dbus_connection_send_preallocated): Call
6797         _dbus_connection_send_preallocated_and_unlock().
6798         (_dbus_connection_send_and_unlock): Added.  Calls
6799         _dbus_connection_send_preallocated_and_unlock().
6800         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6801         (dbus_connection_send_with_reply): Update the dispatch status and
6802         unlock.
6803
6804         * mono/Service.cs (~Service): Added.  Removes the filter so that
6805         we don't get unmanaged code calling back into a GCed delegate.
6806         (RemoveFilter); Added.
6807
6808 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6809
6810         * dbus/dbus-message.c (dbus_message_iter_open_container):
6811         - Removed check for iterator type being an array because
6812         get_arg_type does not work with writer iterators
6813         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6814
6815 2005-02-07  Havoc Pennington  <hp@redhat.com>
6816
6817         * doc/dbus-specification.xml: some more language cleanups; add
6818         stuff about how to deal with invalid protocol and extension
6819         points; add _ to allowed chars in auth commands; add EXTENSION_
6820         auth command prefix
6821
6822 2005-02-06  Havoc Pennington  <hp@redhat.com>
6823
6824         * s/expected/required/ in a couple places for clarity
6825
6826 2005-02-07  Colin Walters  <walters@verbum.org>
6827
6828         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6829         sender or proposed_recipient.
6830
6831 2005-02-06  Havoc Pennington  <hp@redhat.com>
6832
6833         * dbus/dbus-message-factory.c (generate_special): more tests
6834
6835         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6836         array length that exceeds the maximum
6837
6838 2005-02-05  Havoc Pennington  <hp@redhat.com>
6839
6840         * dbus/dbus-message-factory.c (generate_special): more test cases,
6841         increasing coverage
6842
6843         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6844         reason why a signature was invalid
6845
6846         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6847         skip the length of the string before we look at it in validation
6848
6849         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6850         equal_substring
6851
6852         * dbus/dbus-message.c (_dbus_message_loader_new): default
6853         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6854
6855 2005-02-05  Havoc Pennington  <hp@redhat.com>
6856
6857         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6858         if the signature of a variant was empty
6859         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6860         struct with no element type)
6861
6862         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6863         mangled messages to break things
6864
6865 2005-02-04  Havoc Pennington  <hp@redhat.com>
6866
6867         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6868         g_quark_try_string() so it actually can return 0
6869         (dbus_g_proxy_connect_signal): ditto
6870
6871 2005-02-04  Havoc Pennington  <hp@redhat.com>
6872
6873         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6874         bogus warning
6875         (tristring_from_message): assert cleanly on null path/interface
6876         (should not be possible though I decided later)
6877         (dbus_g_proxy_dispose): move proxy manager unregistration here
6878         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6879         g_return_if_fail() checks
6880
6881 2005-02-04  Havoc Pennington  <hp@redhat.com>
6882
6883         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6884
6885         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6886         (with some minor changes)
6887
6888         * doc/dbus-specification.xml: add deprecated attribute to
6889         introspection format
6890
6891 2005-01-31  Havoc Pennington  <hp@redhat.com>
6892
6893         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6894         think it's sort of right
6895
6896 2005-01-30  Havoc Pennington  <hp@redhat.com>
6897
6898         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6899
6900 2005-01-30  Havoc Pennington  <hp@redhat.com>
6901
6902         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6903
6904         * autogen.sh: change to autotools 1.9
6905
6906         * glib/dbus-gproxy.c: completely change how signals work
6907         (dbus_g_proxy_add_signal): new function to specify signature of a
6908         signal
6909         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6910         and g_warning if the incoming message has the wrong signature.
6911
6912 2005-01-30  Havoc Pennington  <hp@redhat.com>
6913
6914         * tools/dbus-names-model.c (have_names_notify): fix this
6915
6916         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6917         up the string array handling a bit 
6918
6919 2005-01-30  Havoc Pennington  <hp@redhat.com>
6920
6921         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6922         (dbus_g_pending_call_cancel): new function
6923
6924         * dbus/dbus-glib.h: move GType decls for connection/message here;
6925         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6926         here, just kind of rationalizing how we handle all that
6927
6928         * tools/dbus-names-model.c: new file for a tree model listing the
6929         services on a bus
6930
6931         * tools/dbus-tree-view.c (model_new): use proper typing on the
6932         model rows
6933
6934 2005-01-30  Havoc Pennington  <hp@redhat.com>
6935
6936         * glib/dbus-gmain.c: add a custom GSource back that just checks
6937         whether the message queue has anything in it; otherwise, there are 
6938         cases where we won't see messages in the queue since there was no 
6939         IO visible to the glib main loop
6940
6941         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6942         increase default message timeout to 25 seconds
6943
6944 2005-01-30  Havoc Pennington  <hp@redhat.com>
6945
6946         * test/glib/test-profile.c (no_bus_stop_server): remove the
6947         warning about the g_warning that I just fixed
6948
6949         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6950         custom source, seems to be a lot easier to understand and work
6951         better.
6952
6953 2005-01-30  Havoc Pennington  <hp@redhat.com>
6954
6955         I think this main loop thing is conceptually broken, but here are 
6956         some band aids. I'll maybe rewrite it in a minute.
6957         
6958         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6959         custom GSource, so don't pass it in; confusing
6960         (gsource_server_finalize, gsource_connection_finalize): add
6961         finalize handlers that remove all the watches.  
6962
6963 2005-01-30  Havoc Pennington  <hp@redhat.com>
6964
6965         * glib/dbus-gobject.c (introspect_properties): fix the XML
6966         generated
6967
6968         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6969         which effectively detects the use of freed messages
6970
6971         * glib/dbus-gobject.c (handle_introspect): modify and return the
6972         reply message instead of the incoming message
6973
6974         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6975         gee, maybe it should SEND THE XML instead of just making a string
6976         and freeing it again ;-)
6977
6978         * tools/dbus-print-message.c (print_message): improve printing of
6979         messages
6980
6981         * configure.in: add debug-glib.service to the output
6982
6983 2005-01-30  Havoc Pennington  <hp@redhat.com>
6984
6985         dbus-viewer introspected and displayed the bus driver
6986         
6987         * dbus/dbus-object-tree.c 
6988         (object_tree_test_iteration): add tests for a handler registered on "/"
6989
6990         * dbus/dbus-object-tree.c
6991         (_dbus_decompose_path): fix to handle path "/" properly
6992         (run_decompose_tests): add tests for path decomposition
6993         
6994         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6995         properly
6996
6997         * glib/dbus-gobject.c (handle_introspect): fix quotes
6998
6999         * test/glib/run-test.sh: support launching the bus, then running
7000         dbus-viewer
7001
7002         * test/glib/test-service-glib.c (main): put in a trivial gobject
7003         subclass and register it on the connection
7004
7005         * bus/driver.c (bus_driver_handle_introspect): implement
7006         introspection of the bus driver service
7007
7008         * dbus/dbus-protocol.h: add #defines for the XML namespace,
7009         identifiers, doctype decl
7010
7011         * bus/driver.c (bus_driver_handle_get_service_owner): handle
7012         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
7013         returning the service unchanged.
7014         (bus_driver_handle_message): remove old check for reply_serial in
7015         method calls, now the message type deals with that
7016         (bus_driver_handle_message): handle NULL interface
7017
7018         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
7019
7020         * glib/dbus-gloader-expat.c (description_load_from_string): allow
7021         -1 for len
7022
7023         * tools/dbus-viewer.c: add support for introspecting a service on
7024         a bus
7025
7026         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
7027         (dbus_g_pending_call_unref): add
7028
7029 2005-01-29  Havoc Pennington  <hp@redhat.com>
7030
7031         * tools/dbus-tree-view.c: add support for displaying properties.
7032         (run dbus-viewer with an introspect xml file as arg, then resize
7033         the window so the tree elements show up, not sure what that is)
7034
7035         * glib/dbus-gobject.c (handle_introspect): return
7036         org.freedesktop.Properties and org.freedesktop.Introspectable
7037         interfaces when we are introspected.
7038
7039         * doc/dbus-specification.xml: allow empty interface name when 
7040         Get/Set a property
7041
7042 2005-01-29  Havoc Pennington  <hp@redhat.com>
7043
7044         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
7045         though it uses glib, it could be extended for any binding in
7046         principle
7047
7048         * glib/dbus-gobject.c (gobject_message_function): change to the
7049         new way properties work
7050
7051         * dbus/dbus-protocol.h: add the new interfaces
7052
7053         * doc/dbus-specification.xml: document the introspection format,
7054         Introspectable interface, and add an org.freedesktop.Properties
7055         interface.
7056
7057         * glib/dbus-gparser.c: add support for a <property> element
7058
7059         * glib/dbus-gidl.c: add PropertyInfo
7060
7061         * glib/dbus-gobject.c (handle_introspect): put the outermost
7062         <node> outside the signal and property descriptions.
7063         (introspect_properties): export properties as <property> rather
7064         than as method calls
7065
7066 2005-01-28  Havoc Pennington  <hp@redhat.com>
7067
7068         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
7069         related to authentication protocol
7070
7071 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
7072
7073         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
7074                 - BUS_ACTIVATION -> BUS_STARTER
7075                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
7076                 - class MessageIter (__init__): Added recursion checking 
7077                 so we throw a nice error instead of just disconnecting from the
7078                 bus.
7079                 (get): Added arg_type parameter for recursion.
7080                 Removed the nil type
7081                 Added signiture type placeholder (not implemented)
7082                 Added struct type placeholder (not implemented)
7083                 Added varient type placeholder (not implemented)
7084                 Commented out dict type for now     
7085                 (get_element_type): renamed from get_array_type
7086                 (get_*): changed to use the dbus_message_iter_get_basic API
7087                 (get_*_array): removed in favor of recursive get_array method
7088                 (get_array): new recursive method which calls get to marshal
7089                 the elements of the array
7090                 (value_to_dbus_sig): New method returns the corrasponding
7091                 dbus signiture to a python value
7092                 (append): Comment out dict handling for now
7093                 Handle lists with the new recursive API
7094                 Comment out None handling for now
7095                 (append_nil): removed
7096                 (append_*): changed to use dbus_message_iter_append_basic API
7097                 (append_*_array): removed in favor of recursive append_array 
7098                 method
7099                 (__str__): Make it easier to print out recursive iterators
7100                 for debugging
7101                 - class Message (__str__): moved type inspection to the
7102                 MessageIter class' __str__ method
7103                 (get_iter): Added an append parameter wich defaults to False
7104                 If True use the new API's to create an append iterator
7105
7106         * python/dbus.py: Update to use new bindings API
7107                 - TYPE_ACTIVATION -> TYPE_STARTER
7108                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
7109                 - class ActivationBus -> class StarterBus
7110                 - class RemoteObject (__call__): get an append iterator
7111                 - (_dispatch_dbus_method_call): get an append iterator
7112                 - class Object (emit_signal): get an append iterator
7113
7114         * python/examples/: Fixed up the examples to work with the new API
7115                 
7116 2005-01-28  Joe Shaw  <joeshaw@novell.com>
7117
7118         * configure.in: Bump version up to 0.30.
7119
7120         * HACKING: Add a release item to bump the version number up after 
7121         a release.
7122
7123 2005-01-28  Havoc Pennington  <hp@redhat.com>
7124
7125         * doc/dbus-specification.xml: update to describe 16-bit types and
7126         dict entries
7127
7128         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
7129         assertion
7130
7131         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
7132         type
7133
7134         * dbus/dbus-marshal-recursive.c: implement
7135
7136 2005-01-27  Havoc Pennington  <hp@redhat.com>
7137
7138         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
7139
7140         * configure.in: find the right type for 16 and 32 bit ints as well
7141         as 64
7142
7143         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
7144         the 16-bit types so people don't have to stuff them in 32-bit or
7145         byte arrays.
7146
7147 2005-01-27  Havoc Pennington  <hp@redhat.com>
7148
7149         * dbus/dbus-message.c: byteswap the message if you init an
7150         iterator to read/write from it
7151         
7152         * dbus/dbus-marshal-byteswap.c: new file implementing 
7153         _dbus_marshal_byteswap()
7154
7155         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
7156
7157 2005-01-26  Havoc Pennington  <hp@redhat.com>
7158         
7159         * dbus/dbus-marshal-validate-util.c: break this out (and fix
7160         build, apparently - nobody noticed?)
7161         
7162 2005-01-26  Havoc Pennington  <hp@redhat.com>
7163
7164         * dbus/dbus-marshal-recursive.h: remove todo comment
7165
7166 2005-01-25  Joe Shaw  <joeshaw@novell.com>
7167
7168         * Land the mono binding changes to conform to the new APIs.
7169
7170         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
7171         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
7172
7173         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
7174         type code as a string.
7175         (InitAppending): Rename dbus_message_append_iter_init() to
7176         dbus_message_iter_init_append().
7177
7178         * mono/BusDriver.cs: Rename ServiceEventHandler to
7179         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
7180         Rename ServiceOwnerChanged to NameOwnerChanged.
7181
7182         * mono/Connection.cs: Rename BaseService to UniqueName, and the
7183         underlying C call.
7184
7185         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
7186
7187         * mono/Service.cs: Rename Exists to HasOwner, internally rename
7188         dbus_bus_acquire_service() to dbus_bus_request_name().
7189
7190         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
7191         of Type.UnderlyingSystemType to get the correct element type for
7192         the array.
7193         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
7194         dbus_message_get_{element|arg}_type() instead of
7195         dbus_message_iter_init_array_iterator().
7196         (Append): Replace dbus_message_iter_append_array() with
7197         dbus_message_iter_open_container() and
7198         dbus_message_iter_close_container().
7199
7200         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
7201         types have been removed.
7202         
7203         * mono/DBusType/*.cs: Replace calls of
7204         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
7205         but specify the type in the DllImport extern declaration.  Ditto
7206         for dbus_message_iter_append_[type]() ->
7207         dbus_message_iter_append_basic().
7208
7209         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
7210         NameOwnerChangedHandler.
7211
7212 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
7213
7214         * python/dbus_bindings.pyx.in: Rename of methods and bindings
7215                 - get_base_service -> get_unique_name
7216                 - bus_get_base_service -> bus_get_unique_name
7217                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
7218                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
7219                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
7220                 - bus_activate_service -> bus_start_service_by_name
7221                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
7222                 - bus_acquire_service -> bus_request_name
7223                 - dbus_bus_acquire_service -> dbus_bus_request_name
7224                 - bus_service_exists -> bus_name_has_owner
7225                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
7226
7227         * python/dbus.py: Rename of methods
7228                 - activate_service -> start_service_by_name
7229                 - bus_acquire_service -> bus_request_name
7230                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
7231                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
7232
7233         
7234 2005-01-24  Joe Shaw  <joeshaw@novell.com>
7235
7236         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
7237         signature for the method that can't be found.
7238
7239         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
7240         the message has any arguments, we need to call
7241         _dbus_type_reader_get_current_type(), not
7242         _dbus_type_reader_has_next().
7243
7244 2005-01-24  Havoc Pennington  <hp@redhat.com>
7245
7246         * dbus/dbus-message-factory.c: more testing of message validation
7247
7248         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
7249         header
7250
7251 2005-01-23  Havoc Pennington  <hp@redhat.com>
7252
7253         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
7254         get this all working, not many tests in the framework yet though
7255
7256 2005-01-22  Havoc Pennington  <hp@redhat.com>
7257
7258         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
7259         tutorial, based on work from David Wheeler.
7260
7261 2005-01-21  Havoc Pennington  <hp@redhat.com>
7262
7263         * dbus/dbus-bus.c: add more return_if_fail checks
7264
7265         * dbus/dbus-message.c (load_message): have the "no validation"
7266         mode (have to edit the code to toggle the mode for now though)
7267
7268         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
7269         skips all validation; I want to use this at least for benchmark
7270         baseline, I'm not sure if it should be a publicly-available switch.
7271
7272 2005-01-21  Havoc Pennington  <hp@redhat.com>
7273
7274         * glib/dbus-gmain.c: don't put the GLib bindings in the same
7275         toplevel doxygen group as the low-level API stuff
7276
7277         * dbus/dbus.h: note that libdbus is the low-level API
7278
7279 2005-01-20  Havoc Pennington  <hp@redhat.com>
7280
7281         * update-dbus-docs.sh: script to update docs on the web site, only
7282         works for me though. neener.
7283
7284 2005-01-20  Havoc Pennington  <hp@redhat.com>
7285
7286         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
7287         code can reveal bugs in it
7288
7289 2005-01-20  Havoc Pennington  <hp@redhat.com>
7290
7291         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
7292         select() version, patches from Tor Lillqvist
7293
7294 2005-01-20  Havoc Pennington  <hp@redhat.com>
7295
7296         * doc/dbus-tutorial.xml: replace > with &gt;
7297
7298         * bus/services.c (bus_registry_acquire_service): validate the name
7299         and return a better error if it's no good.
7300
7301         * doc/dbus-specification.xml: note NO_AUTO_START change
7302
7303         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
7304         from AUTO_START, we're toggling the default
7305
7306         * bus/dispatch.c: adapt the tests to change of auto-start default
7307
7308 2005-01-18  Havoc Pennington  <hp@redhat.com>
7309
7310         * rename dbus-daemon-1 to dbus-daemon throughout
7311
7312 2005-01-18  Havoc Pennington  <hp@redhat.com>
7313
7314         * Throughout, grand renaming to strip out the use of "service",
7315         just say "name" instead (or "bus name" when ambiguous).  Did not
7316         change the internal code of the message bus itself, only the
7317         programmer-facing API and messages.
7318         
7319         * doc/dbus-specification.xml: further update the message bus section
7320         
7321         * bus/config-parser.c (all_are_equiv): fix bug using freed string
7322         in error case
7323
7324 2005-01-17  Havoc Pennington  <hp@redhat.com>
7325
7326         * dbus/dbus-types.h: remove 16-bit types since we don't use them
7327         ever
7328
7329         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7330         "invalid name character" not only non-ASCII
7331
7332         * doc/dbus-specification.xml: further update spec, message bus 
7333         parts are still out-of-date but the marshaling etc. stuff is now
7334         accurate-ish
7335
7336 2005-01-17  Havoc Pennington  <hp@redhat.com>
7337
7338         * doc/dbus-specification.xml: partially update spec
7339
7340 2005-01-17  Havoc Pennington  <hp@redhat.com>
7341
7342         * Throughout, align variant bodies according to the contained
7343         type, rather than always to 8. Should save a fair bit of space in
7344         message headers.
7345         
7346         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7347         fix handling of case where p == end
7348
7349         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7350
7351 2005-01-17  Havoc Pennington  <hp@redhat.com>
7352
7353         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7354
7355         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7356         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7357         are marshaling/unmarshaling a boolean.
7358
7359 2005-01-16  Havoc Pennington  <hp@redhat.com>
7360
7361         This is about it on what can be disabled/deleted from libdbus
7362         easily, back below 150K anyhow. Deeper cuts are more work than 
7363         just turning the code off as I've done here.
7364         
7365         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7366         signed int convenience funcs
7367
7368         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7369         verbose mode
7370
7371         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7372         things out of libdbus
7373
7374         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7375         
7376         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7377         tests-enabled-only, though it should probably be deleted)
7378
7379         * dbus/dbus-message-util.c: same stuff
7380
7381         * dbus/dbus-auth-util.c: same stuff
7382
7383 2005-01-16  Havoc Pennington  <hp@redhat.com>
7384
7385         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7386
7387         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7388         way for stripping down dbus-userdb.c stuff included in libdbus.
7389         Rename _dbus_parse_uid for consistency.
7390
7391 2005-01-16  Havoc Pennington  <hp@redhat.com>
7392
7393         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7394         name the assertion failed in
7395
7396         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7397         (_dbus_return_val_if_fail): assert that the name of the function
7398         containing the check doesn't start with '_', since we only want to 
7399         use checks on public functions
7400         
7401         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7402         checks to assertions
7403
7404         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7405         change checks to asserts for private function
7406
7407         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7408         to asserts for private function
7409
7410         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7411         broken assertion that was breaking make check
7412         (_dbus_type_reader_array_is_empty): remove this rather than fix
7413         it, was only used in assertions
7414
7415 2005-01-16  Havoc Pennington  <hp@redhat.com>
7416
7417         * test/unused-code-gc.py: hacky script to find code that's used
7418         only by the bus (not libdbus) or used only by tests or not used at
7419         all. It has some false alarms, but looks like we can clean up a
7420         lot of size from libdbus.
7421
7422         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7423         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7424         
7425 2005-01-16  Havoc Pennington  <hp@redhat.com>
7426
7427         * Add and fix docs according to Doxygen warnings throughout
7428         source.
7429         
7430         * dbus/dbus-marshal-recursive.c
7431         (_dbus_type_reader_array_is_empty): change this to just call
7432         array_reader_get_array_len() and make it static
7433
7434         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7435         from get_array_type
7436         (dbus_message_iter_init_append): rename from append_iter_init
7437
7438         * dbus/dbus-marshal-recursive.c
7439         (_dbus_type_reader_get_element_type): rename from
7440         _dbus_type_reader_get_array_type
7441
7442 2005-01-15  Havoc Pennington  <hp@redhat.com>
7443
7444         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7445
7446         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7447         when DBUS_DISABLE_ASSERT
7448         (_dbus_marshal_set_basic): be sure we align for the string length
7449
7450         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7451         this look faster
7452
7453         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7454         inline macro version
7455         (_dbus_string_set_byte): provide inline macro version
7456
7457 2005-01-15  Havoc Pennington  <hp@redhat.com>
7458
7459         * Land the new message args API and type system.
7460
7461         This patch is huge, but the public API change is not 
7462         really large. The set of D-BUS types has changed somewhat, 
7463         and the arg "getters" are more geared toward language bindings;
7464         they don't make a copy, etc.
7465
7466         There are also some known issues. See these emails for details
7467         on this huge patch:
7468         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7469         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7470         
7471         * dbus/dbus-marshal-*: all the new stuff
7472
7473         * dbus/dbus-message.c: basically rewritten
7474
7475         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7476         freed blocks to be all non-nul bytes so using freed memory is less
7477         likely to work right
7478
7479         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7480         DBUS_FAIL_MALLOC=N environment variable, so you can do
7481         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7482         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7483         thorough.
7484
7485         * qt/message.cpp: port to the new message args API
7486         (operator<<): use str.utf8() rather than str.unicode()
7487         (pretty sure this is right from the Qt docs?)
7488
7489         * glib/dbus-gvalue.c: port to the new message args API
7490
7491         * bus/dispatch.c, bus/driver.c: port to the new message args API
7492
7493         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7494         "locked" flag to TRUE and align_offset to 0; I guess we never
7495         looked at these anyhow, but seems cleaner.
7496
7497         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7498         move allocation padding macro to this header; use it to implement
7499         (_DBUS_STRING_STATIC): ability to declare a static string.
7500
7501         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7502         change to return TRUE if the interface is not set.
7503
7504         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7505         to dbus-marshal-validate.[hc]
7506
7507         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7508         dbus-internals.c
7509
7510         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7511         to dbus-marshal-*.[hc]
7512
7513         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7514         function here from dbus-marshal.c
7515
7516 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7517
7518         * NEWS: Update for 0.23.
7519
7520         * configure.in: Release 0.23.
7521
7522 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7523
7524         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7525         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7526         behind.
7527
7528         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7529         uninstall"
7530
7531         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7532         is an enum, get the enum's underlying type.  Another mono
7533         1.1.3 fix.
7534
7535 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7536
7537         Patch from Sjoerd Simons <sjoerd@luon.net>
7538
7539         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7540         DESTDIR.  It breaks stuff.
7541
7542 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7543
7544         Patch from Tambet Ingo <tambet@ximian.com>
7545
7546         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7547         calling type.GetElementType().  The code previously depended on
7548         broken Mono behavior, which was fixed in Mono 1.1.3.
7549
7550         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7551         Activator.CreateInstance() so that the class's constructor is
7552         called with the right parameters.
7553
7554 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7555
7556         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7557
7558         * dbus/dbus-connection.c
7559         (_dbus_connection_queue_received_message_link): Call
7560         _dbus_connection_remove_timeout() instead of the _locked()
7561         variant, since it's always called from
7562         _dbus_connection_handle_watch(), which handles the locking.
7563         Removed the _locked() variant since it's no longer used.
7564
7565 2005-01-03  Havoc Pennington  <hp@redhat.com>
7566
7567         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7568         return
7569         
7570 2004-12-26  Havoc Pennington  <hp@redhat.com>
7571
7572         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7573
7574 2005-01-03  Havoc Pennington  <hp@redhat.com>
7575
7576         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7577         floating point
7578
7579         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7580
7581 2005-01-02  Havoc Pennington  <hp@redhat.com>
7582
7583         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7584
7585 2005-01-01  Havoc Pennington  <hp@redhat.com>
7586
7587         * configure.in: add -Wfloat-equal
7588
7589 2005-01-01  Havoc Pennington  <hp@redhat.com>
7590
7591         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7592         for a variety of reasons '==' doesn't do this.
7593
7594 2004-12-31  Havoc Pennington  <hp@redhat.com>
7595
7596         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7597         I keep wishing I had
7598
7599 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7600
7601         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7602
7603 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7604
7605         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7606         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7607         dbus-protocol.h.  Because they are defines and not enums they are not
7608         autogenerated.
7609
7610 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7611
7612         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7613         dbus_bus_activate_service
7614
7615         * python/dbus.py (Bus.activate_service): activate a service on the
7616         bus.
7617
7618 2004-12-24  Havoc Pennington  <hp@redhat.com>
7619
7620         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7621         file format has also changed and I haven't adapted to that yet
7622         
7623         * Makefile.am: load .gcno files from latest gcc
7624
7625 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7626         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7627
7628         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7629         lowlevel binding
7630
7631         * python/dbus.py (get_unix_user): Added binding to 
7632         call dbus_bindings.bus_get_unix_user
7633
7634         * python/extract.py: Modified the proto_pat regex to
7635         handle unsigned long
7636
7637 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7638
7639         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7640         better POSIX compliance.
7641
7642 2004-12-19  Havoc Pennington  <hp@redhat.com>
7643
7644         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7645         (_dbus_string_insert_8_aligned): new functions
7646
7647         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7648
7649 2004-12-18  Havoc Pennington  <hp@redhat.com>
7650
7651         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7652         macro
7653
7654         * dbus/dbus-message.c: fix a comment, and add a still-unused
7655         not-implemented function
7656
7657         * dbus/dbus-marshal.h: fix comment
7658
7659         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7660
7661 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7662
7663         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7664         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7665         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7666         Type.UnderlyingSystemType to get the actual system type
7667         underneath.  This code previously depended on the broken Mono
7668         behavior, which was fixed in 1.1.3.
7669
7670 2004-11-27  Havoc Pennington  <hp@redhat.com>
7671
7672         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7673         are disabled
7674         (_dbus_string_get_const_data): inline when asserts are disabled
7675
7676         * dbus/dbus-message.c: record the _dbus_current_generation of
7677         creation so we can complain if dbus_shutdown() is used improperly.
7678         Do this only if checks are enabled.
7679
7680         * dbus/dbus-connection.c: ditto
7681         
7682 2004-11-26  Havoc Pennington  <hp@redhat.com>
7683
7684         * test/glib/test-profile.c: add with_bus mode to profile echoes
7685         that go through the bus.
7686
7687         * test/glib/run-test.sh: add ability to run test-profile
7688
7689         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7690         config file reload.
7691
7692 2004-11-26  Havoc Pennington  <hp@redhat.com>
7693
7694         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7695         thing was implemented
7696
7697 2004-11-26  Havoc Pennington  <hp@redhat.com>
7698
7699         * test/glib/test-profile.c: tweak a bit, add support for some
7700         made-up minimal malloc overhead with plain sockets, since in 
7701         real life some sort of buffers are unavoidable thus we could 
7702         count them in the theoretical best case
7703
7704 2004-11-26  Havoc Pennington  <hp@redhat.com>
7705
7706         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7707         where I was trying to cache one too many messages
7708
7709 2004-11-26  Havoc Pennington  <hp@redhat.com>
7710
7711         * dbus/dbus-message.c: reimplement message cache as an array which 
7712         makes the cache about twice as fast and saves maybe 1.5% overall
7713
7714 2004-11-26  Havoc Pennington  <hp@redhat.com>
7715
7716         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7717         message cache lock here
7718
7719 2004-11-26  Havoc Pennington  <hp@redhat.com>
7720
7721         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7722         the "char byte_order" next to each other to save 4 bytes
7723         (dbus_message_new_empty_header): reduce preallocation, since the
7724         message cache should achieve a similar effect
7725         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7726         message cache that keeps a few DBusMessage around in a pool,
7727         another 8% speedup or so.
7728
7729         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7730
7731 2004-11-25  Havoc Pennington  <hp@redhat.com>
7732
7733         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7734         to write, without reading or blocking, try it before the poll()
7735         and skip the poll() if nothing remains to write. This is about a
7736         3% speedup in the echo client/server
7737
7738 2004-11-25  Havoc Pennington  <hp@redhat.com>
7739
7740         The primary change here is to always write() once before adding
7741         the write watch, which gives us about a 10% performance increase.
7742         
7743         * dbus/dbus-transport-unix.c: a number of modifications to cope
7744         with removing messages_pending
7745         (check_write_watch): properly handle
7746         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7747         messages_pending stuff
7748         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7749         AUTHENTICATED cases
7750         (unix_handle_watch): after writing, see if the write watch can be
7751         removed
7752         (unix_do_iteration): assert that write_watch/read_watch are
7753         non-NULL rather than testing that they aren't, since they 
7754         aren't allowed to be NULL. check_write_watch() at the end so 
7755         we add the watch if we did not finish writing (e.g. got EAGAIN)
7756
7757         * dbus/dbus-transport-protected.h: remove messages_pending call,
7758         since it resulted in too much inefficient watch adding/removing; 
7759         instead we now require that the transport user does an iteration 
7760         after queueing outgoing messages, and after trying the first
7761         write() we add a write watch if we got EAGAIN or exceeded our 
7762         max bytes to write per iteration setting
7763
7764         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7765         function
7766
7767         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7768         freed and then accessed, valgrind flagged this bug, fix it
7769
7770         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7771         as the last valid field plus 1, where really it is equal to the
7772         last valid field. Corrects some message corruption issues.
7773
7774         * dbus/dbus-mainloop.c: verbosity changes
7775
7776         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7777         instead of aborting in one of the test codepaths
7778
7779         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7780         caused not printing the pid ever again if a verbose was missing
7781         the newline at the end
7782         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7783
7784         * dbus/dbus-connection.c: verbosity changes; 
7785         (dbus_connection_has_messages_to_send): new function
7786         (_dbus_connection_message_sent): no longer call transport->messages_pending
7787         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7788         try to write() immediately, so we can avoid the write watch. This
7789         is the core purpose of this patchset
7790         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7791         dump the outgoing message queue, so nobody will get confused
7792         trying to send them or thinking stuff is pending to be sent
7793
7794         * bus/test.c: verbosity changes
7795
7796         * bus/driver.c: verbosity/assertion changes
7797
7798         * bus/dispatch.c: a bunch of little tweaks to get it working again
7799         because this patchset changes when/where you need to block.
7800
7801 2004-11-23  Havoc Pennington  <hp@redhat.com>
7802
7803         * test/glib/test-profile.c: modify to accept a plain_sockets
7804         argument in which case it will bench plain sockets instead of
7805         libdbus, for comparison purposes.
7806
7807 2004-11-22  Havoc Pennington  <hp@redhat.com>
7808
7809         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7810         threads for more time, so sysprof can get a grip on it.
7811
7812         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7813         pointless variable
7814
7815 2004-11-13  Havoc Pennington  <hp@redhat.com>
7816
7817         * test/glib/test-profile.c: fix this thing up a bit
7818
7819         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7820         preallocation sizes by a fair bit; not sure if this will be an
7821         overall performance win or not, but it does reduce reallocs.
7822
7823         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7824         the test hack that forced constant realloc if asserts are
7825         disabled, so we can profile sanely. Sprinkle in some
7826         _DBUS_UNLIKELY() which are probably pointless, but before I
7827         noticed the real performance problem I put them in.
7828         (_dbus_string_validate_utf8): micro-optimize this thing a little
7829         bit, though callgrind says it didn't help; then special-case
7830         ascii, which did help a lot; then be sure we detect nul bytes as
7831         invalid, which is a bugfix.
7832         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7833         superstition; use memset to nul the padding instead of a manual
7834         loop.
7835         (_dbus_string_get_length): inline this as a
7836         macro; it showed up in the profile because it's used for loop
7837         tests and so forth
7838
7839 2004-11-10  Colin Walters  <walters@verbum.org>
7840
7841         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7842         for extra paranoia.
7843
7844 2004-11-09  Colin Walters  <walters@verbum.org>
7845
7846         * dbus/dbus-string.c (_dbus_string_get_length): New
7847         function, writes DBusString to C buffer.
7848
7849         * dbus/dbus-string.h: Prototype it.
7850
7851         * dbus/dbus-message.c (dbus_message_type_to_string): New
7852         function, converts message type into C string.
7853
7854         * dbus/dbus-message.h: Prototype it.
7855
7856         * bus/selinux.c (bus_selinux_check): Take source pid,
7857         target pid, and audit data.  Pass audit data to
7858         avc_has_perm.
7859         (log_audit_callback): New function, appends extra
7860         audit information.
7861         (bus_selinux_allows_acquire_service): Also take
7862         service name, add it to audit data.
7863         (bus_selinux_allows_send): Also take message
7864         type, interface, method member, error name,
7865         and destination, and add them to audit data.
7866         (log_cb): Initialize func_audit.
7867         
7868         * bus/selinux.h (bus_selinux_allows_acquire_service)
7869         (bus_selinux_allows_send): Update prototypes 
7870
7871         * bus/services.c (bus_registry_acquire_service): Pass
7872         service name to bus_selinux_allows_acquire_service.
7873
7874         * bus/bus.c (bus_context_check_security_policy): Pass
7875         additional audit data.  Move assignment of dest
7876         to its own line.
7877
7878 2004-11-07  Colin Walters  <walters@verbum.org>
7879
7880         * dbus/dbus-transport-unix.c (do_authentication): Always
7881         initialize auth_completed.
7882         
7883 2004-11-07  Colin Walters  <walters@verbum.org>
7884
7885         * bus/bus.c (load_config): Break into three
7886         separate functions: process_config_first_time_only,
7887         process_config_every_time, and process_config_postinit.
7888         (process_config_every_time): Move call of
7889         bus_registry_set_service_context_table into
7890         process_config_postinit.
7891         (process_config_postinit): New function, does
7892         any processing that needs to happen late
7893         in initialization (and also on reload).
7894         (bus_context_new): Instead of calling load_config,
7895         open config parser here and call process_config_first_time_only
7896         and process_config_every_time directly.  Later, after
7897         we have forked but before changing UID,
7898         invoke bus_selinux_full_init, and then call
7899         process_config_postinit.
7900         (bus_context_reload_config): As in bus_context_new,
7901         load parse file inside here, and call process_config_every_time
7902         and process_config_postinit.
7903
7904         * bus/services.h, bus/services.c
7905         (bus_registry_set_service_context_table): Rename
7906         from bus_registry_set_sid_table.  Take string hash from config
7907         parser, and convert them here into SIDs.
7908
7909         * bus/config-parser.c (struct BusConfigParser): Have
7910         config parser only store a mapping of service->context
7911         string.
7912         (merge_service_context_hash): New function.
7913         (merge_included): Merge context string hashes instead
7914         of using bus_selinux_id_table_union.
7915         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7916         simply create a new string hash.
7917         (bus_config_parser_unref): Unref it.
7918         (start_selinux_child): Simply insert strings into hash,
7919         don't call bus_selinux_id_table_copy_over.
7920
7921         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7922         (bus_selinux_id_table_copy_over): Delete.
7923
7924 2004-11-03  Colin Walters  <walters@verbum.org>
7925
7926         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7927         variables.
7928         
7929 2004-11-03  Colin Walters  <walters@verbum.org>
7930
7931         * bus/test-main.c (test_pre_hook): Fix test logic,
7932         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7933
7934 2004-11-02  Colin Walters  <walters@redhat.com>
7935
7936         * bus/selinux.c (bus_selinux_init): Split into two functions,
7937         bus_selinux_pre_init and bus_selinux_post_init.
7938         (bus_selinux_pre_init): Just determine whether SELinux is
7939         enabled.
7940         (bus_selinux_post_init): Do everything else.
7941
7942         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7943         config file, and bus_selinux_post_init after.  This ensures that
7944         we don't lose the policyreload notification thread that
7945         bus_selinux_init created before forking previously.
7946         
7947         * bus/test-main.c (test_pre_hook): Update for split.
7948
7949 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7950
7951         Patch from Johan Fischer <linux@fischaz.com>
7952         
7953         * mono/doc/Makefile.am (install-data-local): Added directory
7954         install for DESTDIR
7955
7956 2004-10-29  Colin Walters  <walters@redhat.com>
7957
7958         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7959         parameter for fd to write pid to.       
7960
7961         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7962         
7963         * bus/bus.c (bus_context_new): Pass print_pid_fd
7964         to _dbus_become_daemon (bug #1720)
7965
7966 2004-10-29  Colin Walters  <walters@redhat.com>
7967
7968         Patch from Ed Catmur <ed@catmur.co.uk>
7969
7970         * mono/doc/Makefile.am (install-data-local): Handle
7971         DESTDIR.
7972
7973 2004-10-29  Colin Walters  <walters@redhat.com>
7974
7975         * bus/.cvsignore, qt/.cvsignore: Update.
7976
7977 2004-10-29  Colin Walters  <walters@redhat.com>
7978
7979         Patch from Kristof Vansant <de_lupus@pandora.be>
7980
7981         * configure.in: Detect Slackware.
7982         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7983         * bus/rc.messagebus.in: New file.
7984
7985 2004-10-29  Colin Walters  <walters@redhat.com>
7986
7987         * tools/dbus-monitor.c (filter_func): Return
7988         DBUS_HANDLER_RESULT_HANDLED in filter function
7989         for now.  See:
7990         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7991
7992 2004-10-29  Colin Walters  <walters@redhat.com>
7993
7994         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7995
7996         * bus/services.c (bus_registry_acquire_service): 
7997         Correctly retrieve service name from DBusString
7998         for printing.
7999
8000 2004-10-29  Colin Walters  <walters@redhat.com>
8001
8002         * dbus/dbus-glib.h: Update documentation to not
8003         refer to internal APIs.
8004
8005 2004-10-27  Joe Shaw  <joeshaw@novell.com>
8006
8007         * mono/Arguments.cs (GetDBusTypeConstructor):
8008         type.UnderlyingSystemType will return "System.Byte" if you do it
8009         on "byte[]", which is not what we want.  So check the type.IsArray
8010         property and use System.Array instead.
8011
8012 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
8013
8014         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
8015         the DBusUserInfo structure since this is passed into the function.
8016         This would cause a double free when the function that allocated
8017         the structure would try to free it when an error occured.
8018
8019         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
8020         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
8021         for service activation to avoid 32bit/64bit parallel install issues
8022
8023 2004-10-21  Colin Walters  <walters@verbum.org>
8024
8025         * AUTHORS: Fix my email address, the @gnu.org one
8026         has been bouncing for some time.  Also add J5.
8027         
8028 2004-10-21  Colin Walters  <walters@verbum.org>
8029
8030         * dbus/dbus-transport-unix.c (do_authentication): Return
8031         authentication status to callers.
8032         (unix_handle_watch): If we completed authentication this round,
8033         don't do another read.  Instead wait until the next iteration,
8034         after we've read any pending data in the auth buffer.
8035         (unix_do_iteration): Ditto.
8036         (unix_handle_watch): Updated for new do_authentication prototype.
8037
8038 2004-10-18  Colin Walters  <walters@verbum.org>
8039
8040         * bus/selinux.c (bus_selinux_enabled): Handle
8041         --disable-selinux case.
8042         
8043 2004-10-18  Colin Walters  <walters@verbum.org>
8044
8045         * bus/selinux.h: Add bus_selinux_enabled.
8046         
8047         * bus/selinux.c (bus_selinux_enabled): Implement it.
8048         
8049         * bus/config-parser.c (struct include): Add
8050         if_selinux_enabled member.
8051         (start_busconfig_child): Parse if_selinux_enabled
8052         attribute for include.
8053         (bus_config_parser_content): Handle it.
8054
8055         * bus/session.conf.in, bus/system.conf.in: Add
8056         inclusion of context mapping to default config files;
8057         conditional on SELinux being enabled.
8058         
8059         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
8060         
8061         * test/data/invalid-config-files/badselinux-1.conf, 
8062         test/data/invalid-config-files/badselinux-2.conf:
8063         Test files for bad syntax.
8064         
8065 2004-10-17  Colin Walters  <walters@verbum.org>
8066
8067         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
8068         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
8069         format specifier mismatches.
8070
8071 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8072
8073         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
8074         format string.
8075
8076         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
8077         pointer (bug #1540, Leonardo Boiko).
8078
8079 2004-09-28  Jon Trowbridge  <trow@ximian.com>
8080
8081         * mono/BusDriver.cs: Changed BusDriver struct to remove
8082         the ServiceCreated and ServiceDeleted events and replace them
8083         with the new ServiceOwnerChanged event.
8084
8085         * mono/example/BusListener.cs: Added a new example program,
8086         which listens for and reports any ServiceOwnerChanged events
8087         on the bus driver.
8088
8089         * mono/example/Makefile.am (DESTDIR): Build changes for the
8090         new BusListener.cs example.
8091
8092 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8093
8094         * bus/signals.c (bus_match_rule_parse): validate the components of
8095         match rules (bug #1439).
8096
8097         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
8098
8099 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8100
8101         * doc/dbus-specification.xml: document ServiceOwnerChanged
8102         signal.
8103         
8104         * bus/driver.c, bus/driver.h, bus/services.c: Use
8105         ServiceOwnerChanged signal instead of ServiceCreated and
8106         ServiceDeleted.
8107         
8108         * bus/dispatch.c: update testcase for the new signal.
8109
8110 2004-09-20  Jon Trowbridge  <trow@ximian.com>
8111
8112         Patch from Nat Friedman <nat@novell.com>
8113
8114         * mono/Makefile.am: A number of small build fixes to allow "make
8115         distcheck" to succeed.
8116
8117         * mono/example/Makefile.am: "make distcheck" fixes.
8118
8119         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
8120         key in @srcdir@.
8121
8122         * test/Makefile.am: "make distcheck" fixes.
8123
8124 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8125
8126         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
8127
8128         * doc/busconfig.dtd: update the DTD for the at_console attribute.
8129
8130         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
8131         messages after the first one (bug #1389).
8132         
8133         * bus/dispatch.c (check_double_hello_message): add a test case for
8134         the double hello message bug.
8135         (check_existent_service_activation): fix check of spawning error.
8136         
8137 2004-09-16  David Zeuthen  <david@fubar.dk>
8138
8139         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
8140
8141 2004-09-12  David Zeuthen  <david@fubar.dk>
8142
8143         Patch from Kay Sievers <kay.sievers@vrfy.org>
8144
8145         * bus/bus.c (bus_context_new):
8146         * bus/bus.h:
8147         * bus/main.c (usage)
8148         (main):
8149         Add commandline option --nofork to override configuration file
8150         setting.
8151
8152 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8153
8154         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
8155         compilers don't like it (bug #974).
8156
8157 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
8158
8159         * qt/connection.*: Applied patch by Jérôme Lodewyck
8160         <lodewyck@clipper.ens.fr> to integrate an existing
8161         connection into the Qt eventloop
8162
8163 2004-08-30  Jon Trowbridge  <trow@ximian.com>
8164
8165         * mono/BusDriver.cs: Added.  This is a class for interacting with
8166         the org.freedesktop.DBus service.
8167
8168         * mono/Message.cs: Added a mechanism to expose the message that is
8169         currently being dispatched via the static Message.Current
8170         property.  Added Message.Sender and Message.Destination
8171         properties.
8172
8173         * mono/Handler.cs: Expose the dispatched message via
8174         Message.Current when handling method calls.
8175
8176         * mono/Service.cs: Expose the dispatched message via
8177         Message.Current when handling signal emissions.
8178         
8179         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
8180         Connection.BaseService property.
8181
8182 2004-08-28  Havoc Pennington  <hp@redhat.com>
8183
8184         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
8185
8186         More fixes from Steve Grubb
8187         
8188         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
8189         (_dbus_listen_tcp_socket): fix fd leak
8190
8191         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
8192         EINTR to a bit lower in the code
8193
8194 2004-08-26  Jon Trowbridge  <trow@ximian.com>
8195
8196         * bus/driver.c (bus_driver_handle_service_exists): Respond with
8197         TRUE if we are inquiring about the existence of the built-in
8198         org.freedesktop.DBus service.
8199
8200 2004-08-25  John Palmieri  <johnp@redhat.com>
8201         * bus/config-parser.c:
8202         (struct PolicyType): Add POLICY_CONSOLE
8203         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
8204         (start_busconfig_child): Sets up console element when
8205         <policy at_console=""> is encountered in a policy file
8206         (append_rule_from_element): Convert console elements to console
8207         rules.
8208
8209         * bus/policy.c: 
8210         (bus_policy_create_client_policy): Add console rules to the client
8211         policy based on if the client is at the console
8212         (bus_policy_append_console_rule): New function for adding a
8213         console rule to a policy
8214         (bus_policy_merge): Handle console rule merging
8215
8216         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
8217         where we check for console user files
8218         
8219         * dbus/dbus-sysdeps.c:
8220         (_dbus_file_exists): New function which checks if the given
8221         file exists
8222         (_dbus_user_at_console): New function which does the system
8223         specific process of checking if the user is at the console
8224
8225         * dbus/dbus-userdb.c:
8226         (_dbus_is_console_user): New function converts a UID to user name
8227         and then calls the system specific _dbus_user_at_console to 
8228         see if the user is at the console and therefor a console user
8229
8230 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8231
8232         * bus/config-parser.c (set_limit):
8233         * bus/dbus-daemon-1.1.in:
8234         * test/data/valid-config-files/many-rules.conf: set the
8235         max_match_rules_per_connection limt from the config file. 
8236
8237         * doc/busconfig.dtd: update the DTD.
8238
8239         * bus/driver.c: remove some unused variables.
8240
8241 2004-08-24  Mikael Hallendal  <micke@imendio.com>
8242
8243         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
8244         it's been replaced by dbus_g_bus_get
8245
8246 2004-08-23  Colin Walters  <walters@redhat.com>
8247
8248         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8249
8250         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
8251
8252         * bus/selinux.c: Create a thread for policy reload notification.
8253         (bus_selinux_get_policy_root): Implement.
8254
8255         * bus/config-parser.c (start_busconfig_child)
8256         (bus_config_parser_content): Support SELinux-root relative
8257         inclusion.
8258
8259         * configure.in <HAVE_SELINUX>: Add -lpthread.
8260         
8261         * bus/test-main.c (test_pre_hook, test_post_hook): New.
8262         (test_post_hook): Move memory checking into here.
8263         (test_pre_hook, test_post_hook): Move SELinux checks in
8264         here, but conditional on a DBUS_TEST_SELINUX environment
8265         variable.  Unfortunately we can't run the SELinux checks
8266         as a normal user, since they won't have any permissions
8267         for /selinux.  So this will have to be tested manually
8268         for now, until we have virtualization for most of
8269         libselinux.
8270         
8271 2004-08-23  Havoc Pennington  <hp@redhat.com>
8272
8273         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
8274         drop supplementary groups, suggested by Steve Grubb
8275
8276 2004-08-20  Colin Walters  <walters@redhat.com>
8277
8278         * bus/config-parser.c (start_busconfig_child): Remove some unused
8279         variables.
8280         
8281         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
8282         warning.
8283
8284 2004-08-17  Joe Shaw  <joeshaw@novell.com>
8285
8286         * configure.in: If --enable-mono is passed in, if we can't find
8287         mono error out.
8288
8289         * mono/Makefile.am: Use /gacutil to install assemblies into the
8290         GAC and not /root.
8291
8292 2004-08-12  Havoc Pennington  <hp@redhat.com>
8293
8294         * NEWS: update for 0.22
8295
8296         * configure.in: release 0.22
8297
8298 2004-08-11  Colin Walters  <walters@redhat.com>
8299
8300         * tools/dbus-send.c (main, usage): Add --reply-timeout
8301         argument.
8302
8303 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8304
8305         * bus/bus.c (process_config_first_time_only): get rid of an unused
8306         DBusError that was causing a memoy leak (bug #989).
8307
8308         * dbus/dbus-keyring.c, dbus/dbus-message.c:
8309         fix compilation on Solaris/Forte C (bug #974)
8310
8311         * bus/main.c (main): plug two minuscule memleaks.
8312
8313 2004-08-10  Havoc Pennington  <hp@redhat.com>
8314
8315         * doc/dbus-tutorial.xml: add some more info on GLib bindings
8316
8317 2004-08-09  Havoc Pennington  <hp@redhat.com>
8318
8319         * COPYING: switch to Academic Free License version 2.1 instead of
8320         2.0, to resolve complaints about patent termination clause.
8321
8322 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
8323
8324         * README: added documentation for the --enable-python 
8325         configure switch.
8326
8327 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8328
8329         * bus/config-parser.c (bus_config_parser_new): fix an invalid
8330         _unref in the SELinux support.
8331
8332         * doc/busconfig.dtd: update DTD for SELinux support.
8333
8334         * bus/config-loader-libxml.c: fix error handler and parser
8335         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8336
8337         * configure.in: remove the warning about libxml2.
8338
8339         * dbus/dbus-bus.c: silence doxygen warning.
8340
8341 2004-07-31  Colin Walters  <walters@redhat.com>
8342
8343         * configure.in: Move #error in SELinux check to its own line.
8344
8345 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8346
8347         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8348         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8349         dbus_error_set.
8350
8351         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8352         broken by the change in the _SET_OOM macros.
8353
8354 2004-07-31  Colin Walters  <walters@redhat.com>
8355
8356         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8357         BUS_SET_OOM.
8358
8359 2004-07-31  Colin Walters  <walters@redhat.com>
8360
8361         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8362         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8363         AC_MSG_CHECKING.
8364
8365 2004-07-24  Havoc Pennington  <hp@redhat.com>
8366
8367         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8368
8369         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8370         functionality
8371
8372         * configure.in: add --enable-selinux
8373         
8374         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8375
8376         * bus/main.c (main): initialize and shut down selinux
8377
8378         * bus/connection.c: store SELinux ID on each connection, to avoid 
8379         repeated getting of the string context and converting it into 
8380         an ID
8381
8382         * bus/bus.c (bus_context_get_policy): new accessor, though it
8383         isn't used
8384         (bus_context_check_security_policy): check whether the security
8385         context of sender connection can send to the security context of
8386         recipient connection
8387
8388         * bus/config-parser.c: add parsing for <selinux> and <associate>
8389         
8390         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8391         implement dbus_connection_get_unix_fd()
8392
8393         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8394         function, used by the selinux stuff
8395         
8396 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8397
8398         * bus/config-loader-libxml.c: complete the implementation of
8399         libxml backend for config file loader. Doesn't work with full OOM
8400         test yet. 
8401         
8402         * configure.in: change error when selecting libxml into a warning.
8403         
8404         * test/data/invalid-config-files: add two non-well-formed XML
8405         files. 
8406         
8407         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8408         
8409         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8410         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8411         be necessary to read all the buffer. (bug #894)
8412
8413         * bus/activation.c (bus_activation_activate_service): fix a
8414         potential assertion failure (bug #896). Small optimization in the
8415         case of auto-activation messages.
8416
8417         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8418         add test case for byte-through-vararg bug (#901). patch by Kimmo
8419         Hämäläinen. 
8420
8421 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8422
8423         * python/dbus.py:
8424         * python/dbus_bindings.pyx.in:
8425         Add dbus.init_gthreads (), allow emit_signal to pass
8426         arguments to the signal.
8427         
8428 2004-07-24  Havoc Pennington  <hp@redhat.com>
8429
8430         * AUTHORS: add some people, not really comprehensively, let me
8431         know if I missed you
8432
8433 2004-07-24  Havoc Pennington  <hp@redhat.com>
8434
8435         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8436         Owen
8437
8438         * test/Makefile.am (DIST_SUBDIRS): here also
8439
8440 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8441
8442         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8443         breaking build on Solaris, reported by Farhad Saberi on the ML.
8444
8445         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8446         va_arg invocation to account for integer promotion in the case of
8447         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8448
8449         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8450         _dbus_list_get_first_link, not _dbus_list_get_first.
8451
8452         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8453
8454         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8455         handler functions so that the asserts in _dbus_object_subtree_unref
8456         do not fail.
8457
8458         * dbus/dbus-transport-unix.c (do_reading):
8459         _dbus_transport_queue_messages return value is of type
8460         dbus_bool_t, not DBusDispatchStatus.
8461         
8462 2004-07-19  David Zeuthen  <david@fubar.dk>
8463
8464         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8465
8466         * bus/dispatch.c:
8467         (check_get_connection_unix_user): Debug says GetProperty; but the
8468         method is called GetConnectionUnixUser
8469         (check_get_connection_unix_process_id): New function
8470         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8471         also call check_get_connection_unix_process_id()
8472         
8473         * bus/driver.c:
8474         (bus_driver_handle_get_connection_unix_process_id): New function,
8475         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8476         interface
8477         
8478         * dbus/dbus-auth.c:
8479         (handle_server_data_external_mech): Set pid from the credentials
8480         obtained from the socket
8481         
8482         * dbus/dbus-connection.c:
8483         (dbus_connection_get_unix_process_id): New function
8484         
8485         * dbus/dbus-connection.h: 
8486         Add prototype for dbus_connection_get_unix_process_id
8487         
8488         * dbus/dbus-transport.c:
8489         (_dbus_transport_get_unix_process_id): New function
8490         
8491         * dbus/dbus-transport.h:
8492         Add prototype for _dbus_transport_get_unix_process_id
8493         
8494 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8495
8496         * dbus/dbus-message.c: Message counter fix, patch by Christian
8497         Hammond <chipx86@gnupdate.org>
8498
8499 2004-07-18  Seth Nickell  <seth@gnome.org>
8500
8501         * python/dbus.py:
8502         * python/dbus_bindings.pyx.in:
8503         * python/tests/test-client.py:
8504
8505         Add dbus.ByteArray and dbus_bindings.ByteArray
8506         types so that byte streams can be passed back.
8507
8508         Give jdahlin the heaps of credit that are so
8509         rightfully his.
8510         
8511 2004-07-12  Seth Nickell  <seth@gnome.org>
8512
8513         * python/dbus.py:
8514
8515         Add message argument to the default object_method_handler
8516         function.
8517         
8518         * python/dbus_bindings.pyx.in:
8519
8520         Automatically return NIL when passed an empty list
8521         (we can't pass back a list since lists are typed
8522         and we don't have any idea what type the the client
8523         intended the list to be... :-( )
8524         
8525 2004-07-10  Seth Nickell  <seth@gnome.org>
8526
8527         * python/examples/Makefile.am:
8528
8529         Fix distcheck breakage caused by new examples.
8530
8531 2004-07-10  Seth Nickell  <seth@gnome.org>
8532
8533         * python/dbus.py:
8534
8535         Add "message" argument to service-side dbus.Object
8536         methods. This will break existing services written
8537         using the python bindings, but will allow extraction
8538         of all the message information (e.g. who its from).
8539
8540         Add improved "object oriented" signal handling/emission.
8541         
8542         * python/examples/example-service.py:
8543
8544         Nix this example.
8545         
8546         * python/examples/example-signal-emitter.py:
8547         * python/examples/example-signal-recipient.py:
8548
8549         Two new examples that show how to emit and receive
8550         signals using the new APIs.
8551         
8552         * python/examples/example-signals.py:
8553         * python/examples/gconf-proxy-service.py:
8554         * python/examples/gconf-proxy-service2.py:
8555
8556         Add "message" argument to service methods.
8557
8558 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8559
8560         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8561         * dbus/bus.c (dbus_bus_get_unix_user)
8562         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8563         method of org.freedesktop.DBus interface.
8564
8565         * bus/dispatch.c: test case
8566
8567 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8568
8569         * python/Makefile.am: switched include directory from glib/ to dbus/
8570         since dbus-glib.h moved
8571  
8572 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8573
8574         * configure.in: prevent building the gcj stuff and libxml loader
8575         since they are broken.
8576
8577 2004-06-20  Havoc Pennington  <hp@redhat.com>
8578
8579         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8580         codes from the dbus error names
8581         
8582         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8583         as dbus/dbus-glib.h and that breakage is now visible due to 
8584         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8585         
8586         * glib/dbus-glib.h: s/gproxy/g_proxy/
8587
8588         * dbus/dbus-shared.h: new header to hold stuff shared with
8589         binding APIs
8590         
8591         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8592         than dbus-errors.h
8593
8594         * glib/dbus-glib.h (dbus_set_g_error): move to
8595         dbus-glib-lowlevel.h
8596
8597         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8598         of stuff to enable this
8599
8600         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8601
8602         * a bunch of other changes with the same basic "separate glib 
8603         bindings from dbus.h" theme
8604         
8605 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8606
8607         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8608
8609         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8610
8611 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8612
8613         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8614         the reply value of the ServiceExists message.
8615
8616 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8617
8618         * python/dbus_bindings.pyx.in: No longer need to parse path
8619         elements and pass them as arrays of strings.  The C API now
8620         accepts plain path strings.
8621         (_build_parsed_path): removed 
8622
8623 2004-06-07  Havoc Pennington  <hp@redhat.com>
8624
8625         * doc/TODO: remove auto-activation item since it's done; sort
8626         items by importance/milestone
8627
8628 2004-06-07  Havoc Pennington  <hp@redhat.com>
8629
8630         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8631         random signature when using REQUIRED_FIELDS (this hack won't work
8632         in the long term)
8633
8634         * dbus/dbus-message.c: change the signature to be a header field,
8635         instead of message->signature special-case string. Incremental
8636         step forward. Then we can fix up code to send the signature in the
8637         message, then fix up code to validate said signature, then fix up
8638         code to not put the typecodes inline, etc.
8639         (load_one_message): don't make up the signature after the fact
8640         (decode_header_data): require signature field for the known
8641         message types
8642
8643         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8644
8645         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8646
8647 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8648
8649         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8650
8651         * mono/Handler.cs: Updated to follow new path argument for
8652         (un-)registering objects.
8653
8654         * mono/example/Makefile.am:
8655         * mono/Makefile.am:
8656         * configure.in: Bumped required version for mono and use new -pkg
8657         syntax for deps
8658
8659 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8660
8661         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8662         registration functions take the path argument as char* instead of
8663         char**.
8664
8665         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8666         split off the path decompostion part of
8667         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8668         warnings. 
8669
8670         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8671         
8672 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8673  
8674         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8675         machine approach.  A state is implemented as a function that
8676         handles incoming events as specified for that state.
8677         
8678         * doc/dbus-specification.xml: Update auth protocol state machine
8679         specification to match implementation.  Remove some leftover
8680         base64 examples.
8681
8682 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8683
8684         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8685         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8686         quiet doxygen.
8687
8688         * Doxyfile.in: remove deprecated options.
8689
8690         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8691         glib/test-thread.h, glib/test-thread-client.c,
8692         glib/test-thread-server.c, glib/test-profile.c,
8693         glib/test-dbus-glib.c: remove these unused files.
8694
8695 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8696
8697         * dbus/dbus-object-tree.c
8698         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8699         non-fallback handlers (bug #684).
8700         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8701         (find_subtree_recurse): report wether the returned subtree is an
8702         exact match or a "fallback" match higher up in the tree.
8703         (object_tree_test_iteration): update test case.
8704
8705 2004-06-01  Seth Nickell  <seth@gnome.org>
8706
8707         * python/dbus_bindings.pyx.in:
8708         * python/tests/test-client.py:
8709
8710         Round off basic type support. Add dicts (yay!), and 
8711         remaining array types.
8712
8713         Make MessageIter more general so it works for dicts too.
8714
8715         Mark all loop variables as C integers.
8716         
8717 2004-05-31  Havoc Pennington  <hp@redhat.com>
8718
8719         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8720         "in" before "out"
8721
8722         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8723
8724         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8725         option that runs the tests, and start filling in some code
8726         including for starters just dumping the interfaces to stdout
8727
8728         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8729
8730         * test/data/valid-introspection-files/lots-of-types.xml: test of
8731         an example introspection file
8732
8733         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8734         "node" (I think...)
8735
8736 2004-05-31  Seth Nickell  <seth@gnome.org>
8737
8738         * python/dbus_bindings.pyx.in:
8739         * python/tests/test-client.py:
8740
8741         Test Suite: 1
8742         Python Bindings: 0
8743
8744         Fix string array memory trashing bug... oops...
8745
8746 2004-05-30  Seth Nickell  <seth@gnome.org>
8747
8748         * python/dbus.py:
8749
8750         Add a nicer-but-less-flexible alternate API for handling 
8751         calls to virtual objects in dbus.ObjectTree.
8752
8753         Screw up the argument order to the dbus.Object constructor
8754         for consistency with dbus.ObjectTree (and to make dbus_methods
8755         optional for future extension)
8756         
8757         * python/examples/Makefile.am:
8758         * python/examples/gconf-proxy-service.py:
8759         * python/examples/gconf-proxy-service2.py:
8760
8761         Alternate implementation of gconf-proxy-service using the
8762         nicer dbus.ObjectTree API.
8763         
8764         * python/examples/example-service.py:
8765         * python/tests/test-server.py
8766
8767         Reverse the argument order to deal with dbus.Object constructor
8768         changes.
8769         
8770 2004-05-30  Seth Nickell  <seth@gnome.org>
8771
8772         * python/examples/example-client.py:
8773         * python/examples/example-service.py:
8774
8775         Take it back. Lists seem to work but they're broken
8776         in the test suite. Make the base examples use
8777         lists (works fine).
8778
8779 2004-05-30  Seth Nickell  <seth@gnome.org>
8780
8781         * python/dbus_bindings.pyx.in:
8782         * python/tests/test-client.py:
8783
8784         Add some more tests and fix errors that crop up.
8785         Unfortunately, currently it seems like marshalling
8786         and unmarshalling of lists is completely broken :-(
8787
8788 2004-05-30  Seth Nickell  <seth@gnome.org>
8789
8790         * python/dbus_bindings.pyx.in:
8791
8792         Add support for ObjectPath type.
8793
8794         * python/dbus.py:
8795
8796         Refactor message handling code to a common function.
8797         
8798         * python/tests/test-client.py:
8799         * python/tests/test-server.py:
8800
8801         Add tests that check to make sure values of all types
8802         can be echoed from a service w/o mangling.
8803         
8804 2004-05-29  Seth Nickell  <seth@gnome.org>
8805
8806         * python/dbus.py:
8807
8808         Add ObjectTree class which allows implementation
8809         of trees of "virtual" objects. Basically the python
8810         wrapper for "register_fallback".
8811         
8812         * python/examples/Makefile.am
8813         * python/examples/gconf-proxy-client.py:
8814         * python/examples/gconf-proxy-service.py:
8815
8816         Implement a simple GConf proxy service that supports
8817         get/set on string and int GConf keys using the ObjectTree.
8818         
8819 2004-05-29  Seth Nickell  <seth@gnome.org>
8820
8821         * python/dbus.py:
8822         * python/examples/example-client.py:
8823         * python/examples/example-service.py:
8824         * python/examples/list-system-services.py:
8825
8826         Add SessionBus, SystemBus and ActivationBus classes
8827         so you don't need to know the special little BUS_TYPE
8828         flag.
8829         
8830 2004-05-29  Havoc Pennington  <hp@redhat.com>
8831
8832         * bus/config-parser.c (process_test_valid_subdir): temporarily
8833         stop testing config parser OOM handling, since expat has issues
8834         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8835
8836         * bus/dbus-daemon-1.1.in: change requested_reply to
8837         send_requested_reply/receive_requested_reply so we can send the
8838         replies, not just receive them.
8839
8840         * bus/config-parser.c: parse the new
8841         send_requested_reply/receive_requested_reply
8842
8843         * bus/policy.c (bus_client_policy_check_can_send): add
8844         requested_reply argument and use it
8845
8846         * bus/bus.c (bus_context_check_security_policy): pass through
8847         requested_reply status to message send check
8848
8849         * bus/system.conf.in: adapt to requested_reply change
8850         
8851 2004-05-28  Havoc Pennington  <hp@redhat.com>
8852
8853         * test/glib/test-service-glib.c (main): remove unused variable
8854
8855         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8856
8857         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8858         from the enum, no longer in use.
8859
8860         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8861         works right.
8862
8863         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8864         whether error_name passed in is a valid error name.
8865
8866 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8867
8868         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8869         OBJECT_PATH and OBJECT_PATH_ARRAY
8870
8871 2004-05-28  Seth Nickell  <seth@gnome.org>
8872
8873         * python/examples/Makefile.am:
8874
8875         Forget to add Makefile.am. Do not pass go.
8876
8877 2004-05-28  Michael Meeks  <michael@ximian.com>
8878
8879         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8880         fix no int64 case.
8881
8882         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8883
8884         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8885         (_dbus_message_iter_get_basic_type_array): impl.
8886         drastically simplify ~all relevant _get methods to use these.
8887         (_dbus_message_iter_append_basic_array),
8888         (dbus_message_iter_append_basic): impl
8889         drastically simplify ~all relevant _append methods to use these.
8890
8891         * dbus/dbus-message-builder.c (parse_basic_type) 
8892         (parse_basic_array, lookup_basic_type): impl.
8893         (_dbus_message_data_load): prune scads of duplicate /
8894         cut & paste coding.
8895
8896         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8897         (_dbus_demarshal_basic_type): implement,
8898         (demarshal_and_validate_len/arg): beef up debug.
8899         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8900
8901 2004-05-27  Seth Nickell  <seth@gnome.org>
8902
8903         * configure.in:
8904         * python/Makefile.am:
8905
8906         Include the example python apps in the tarball.
8907         
8908         * python/examples/list-system-services.py
8909
8910         Add a python new example that fetches the list of services
8911         from the system bus.
8912         
8913 2004-05-27  Seth Nickell  <seth@gnome.org>
8914
8915         * python/dbus.py:
8916         * python/dbus_bindings.pyx.in:
8917
8918         Fix failure to notify that a signal was not handled,
8919         resulted in hung functions.
8920         
8921 2004-05-25  Colin Walters  <walters@redhat.com>
8922
8923         * tools/dbus-monitor.c (main): Monitor all types of messages.
8924
8925 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8926
8927         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8928         which unregisters the object path and disposes the handler.
8929
8930 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8931  
8932         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8933          
8934         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8935         operands to && so we call dbus_message_iter_next () for the last
8936         argument also.
8937
8938 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8939
8940         * dbus/dbus-object-tree.c
8941         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8942         children even if the requested path isn't registered.
8943         (object_tree_test_iteration): test object_tree_list_registered.
8944
8945         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8946         it to 0.
8947         
8948 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8949
8950         * doc/TODO: Remove resolved items.
8951
8952         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8953         field.
8954         
8955         * bus/connection.c (bus_connections_expect_reply): Enforce the
8956         per-connection limit on pending replies.
8957         
8958         Patch from Jon Trowbridge <trow@ximian.com>:
8959  
8960         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8961         up a watch that triggers a config reload when one end of the pipe
8962         becomes readable.
8963         (signal_handler): Instead of doing the config reload in our SIGHUP
8964         handler, just write to the reload pipe and let the associated
8965         watch handle the reload when control returns to the main loop.
8966  
8967         * bus/driver.c (bus_driver_handle_reload_config): Added.
8968         Implements a ReloadConfig method for requesting a configuration
8969         file reload via the bus driver.
8970  
8971 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8972
8973         * HACKING: Updated release instructions concerning the wiki page.
8974
8975 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8976
8977         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8978         filter against auth->allowed_mechs; we only add allowed mechs in
8979         record_mechanisms().
8980  
8981         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8982         ALLOWED_MECHS to auth-script format so we can set the list of
8983         allowed mechanisms.
8984  
8985         * data/auth/client-out-of-mechanisms.auth-script: New test to
8986         check client disconnects when it is out of mechanisms to try.
8987  
8988         * dbus/dbus-auth.c (process_command): Remove check for lines
8989         longer that 1 MB; we only buffer up maximum 16 kB.
8990  
8991         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8992         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8993         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8994         assume there might be unused bytes.
8995  
8996         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8997         client-out-of-mechs, it is handled in process_reject(). Move check
8998         for max failures to send_rejected(), as it's a server-only thing.
8999
9000         * dbus/dbus-auth.c: Factor out protocol reply code into functions
9001         send_auth(), send_data(), send_rejected(), send_error(),
9002         send_ok(), send_begin() and send_cancel().
9003
9004 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
9005
9006         Remove base64 encoding, replace with hex encoding. Original patch
9007         from trow@ximian.com, added error handling.
9008
9009         * dbus/dbus-string.c (_dbus_string_base64_encode)
9010         (_dbus_string_base64_decode): Remove.
9011         (_dbus_string_hex_decode): Add end_return argument so we can
9012         distinguish between OOM and invalid hex encoding.
9013         (_dbus_string_test): Remove base64 tests and add test case for
9014         invalid hex.
9015
9016         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
9017         Replace base64 with hex.
9018
9019         * test/data/auth/invalid-hex-encoding.auth-script: New test case
9020         for invalid hex encoded data in auth protocol.
9021
9022 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9023
9024         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
9025         leak.
9026
9027 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
9028
9029         * mono/dbus-sharp.dll.config.in: Added for GAC
9030         * mono/dbus-sharp.snk: Added for GAC
9031         * mono/Assembly.cs.in: Added for GAC
9032         * mono/Makefile.am: Changes for GAC installation        
9033         * configure.in: Added refs for dbus-sharp.dll.config.in and
9034         Assembly.cs.in. More fixes for mono testing
9035         * mono/example/Makefile.am: Changed var to CSC
9036         * Makefile.am: Changed flag name to DBUS_USE_CSC
9037
9038 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
9039
9040         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
9041         * mono/doc/*: Added documentation framework
9042         * configure.in: Added monodoc check
9043         * README: Added description of mono configure flags
9044
9045 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
9046
9047         * doc/dbus-specification.xml: Added a "Required" column to the 
9048         header fields table and changed the "zero or more" verbage in
9049         the above paragraph to read "The header must contain the required 
9050         named header fields and zero or more of the optional named header 
9051         fields".
9052         * test/data/invalid-messages/*.message: Added the required PATH 
9053         named header field to the tests so that they don't fail on 
9054         'Missing path field'
9055
9056 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
9057
9058         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
9059         the stack by implicitly defining variable and parameter types and
9060         removing the hack of defining C pointers as python objects and later
9061         casting them.
9062
9063 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
9064
9065         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
9066
9067 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
9068
9069         * mono/DBusType/Dict.cs: Handle empty dicts
9070         * mono/DBusType/Array.cs: Handle empty arrays
9071         * mono/Arguments.cs: Handle empty arguments
9072
9073 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
9074
9075         * dbus-sharp.pc.in: Modified to include include Libs and Requires
9076         field
9077
9078 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
9079
9080         * test/data/valid-messages/standard-*.message: Update message
9081         test scripts to new header field names.
9082
9083 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
9084
9085         * test/break-loader.c (randomly_do_n_things): tracked down buffer
9086         overflow to times_we_did_each_thing array which would chop off the
9087         first character of the failure_dir string. Increased the size of
9088         the array to 7 to reflect the number of random mutation functions
9089         we have.
9090
9091 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
9092
9093         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
9094         unix_server->watch here, it is unreffed in disconnect.
9095         (_dbus_server_new_for_tcp_socket): convert NULL host to
9096         "localhost" here so we don't append NULL to address.
9097         
9098         * dbus/dbus-server.c (_dbus_server_test): Add test case for
9099         various addresses, including tcp with no explicit host.
9100
9101 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9102
9103         * dbus/dbus-message.c (decode_header_data, decode_string_field):
9104         fix incorrect setting of .name_offset in the HeaderField (it was
9105         off by two bytes, positioned right after the name and typecode)
9106
9107         * bus/bus.c (bus_context_new, bus_context_unref): test before
9108         calling dbus_server_free_data_slot and _dbus_user_database_unref
9109         in case of an error.
9110
9111         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
9112         by libdbus-gtool.
9113
9114 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
9115
9116         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
9117         _dbus_poll() instead of select().
9118
9119 2004-04-15  Jon Trowbridge  <trow@ximian.com>
9120
9121         * bus/main.c (signal_handler): Reload the configuration files
9122         on SIGHUP.
9123         (main): Set up our SIGHUP handler.
9124
9125         * bus/bus.c (struct BusContext): Store the config file, user and
9126         fork flag in the BusContext.
9127         (process_config_first_time_only): Added.  Contains the code
9128         (previously in bus_context_new) for setting up the BusContext from
9129         the BusConfigParser that should only be run the first time the
9130         config files are read.
9131         (process_config_every_time): Added.  Contains the code (previously
9132         in bus_context_new) for setting up the BusContext from the
9133         BusConfigParser that should be run every time the config files are
9134         read.
9135         (load_config): Added.  Builds a BusConfigParser from the config
9136         files and passes the resulting structure off to
9137         process_config_first_time_only (assuming this is the first time)
9138         and process_config_every_time.
9139         (bus_context_new): All of the config-related code has been moved
9140         to process_config_first_time_only and process_config_every_time.
9141         Now this function just does the non-config-related initializations
9142         and calls load_config.
9143         (bus_context_reload_config): Added.
9144
9145 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9146
9147         * bus/driver.c (bus_driver_handle_get_service_owner):
9148         implement a GetServiceOwner method.
9149         * doc/dbus-specification.xml: document it.
9150         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
9151         
9152         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
9153         implement, using the bus GetServiceOwner method.
9154
9155         * test/glib/test-dbus-glib.c:
9156         use dbus_gproxy_new_for_service_owner so that we can receive the
9157         signal. 
9158
9159 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
9160
9161         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9162         dbus/dbus-message.c, dbus/dbus-protocol.h
9163         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
9164
9165         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9166         dbus/dbus-message.c, dbus/dbus-protocol.h
9167         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
9168
9169         * dbus/dbus-internals.c (_dbus_header_field_to_string):
9170         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
9171         DBUS_HEADER_FIELD_SENDER resolves to "sender"
9172
9173         * doc/dbus-specification.xml (Header Fields Table):
9174         s/SERVICE/DESTINATION
9175         s/SENDER_SERVICE/SENDER
9176
9177
9178 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9179
9180         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
9181         a few seconds.
9182
9183 2004-04-13  Michael Meeks  <michael@ximian.com>
9184
9185         * glib/dbus-gobject.c (handle_introspect): split out
9186         (introspect_properties): this.
9187         (handle_introspect): implement this.
9188
9189         * test/glib/Makefile.am: use the absolute path so the bus
9190         daemon's chdir ("/") doesn't kill us dead.
9191
9192         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
9193
9194 2004-04-12  Jon Trowbridge  <trow@ximian.com>
9195
9196         * bus/config-parser.c (struct BusConfigParser): Added
9197         included_files field.
9198         (seen_include): Added.  Checks whether or not a file has already
9199         been included by any parent BusConfigParser.
9200         (bus_config_parser_new): Copy the parent's included_files.
9201         (include_file): Track which files have been included, and fail on
9202         circular inclusions.
9203         (process_test_valid_subdir): Changed printf to report if we are
9204         testing valid or invalid conf files.
9205         (all_are_equiv): Changed printf to be a bit clearer about
9206         what we are actually doing.
9207         (bus_config_parser_test): Test invalid configuration files.
9208
9209 2004-04-09  Jon Trowbridge  <trow@ximian.com>
9210
9211         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
9212         argument.  If non-null, the newly-constructed BusConfigParser will
9213         be initialized with the parent's BusLimits instead of the default
9214         values.
9215         (include_file): When including a config file, pass in
9216         the current parser as the parent and then copy the BusLimits
9217         from the included BusConfigParser pack to the current parser.
9218         (process_test_valid_subdir): Renamed from process_test_subdir.
9219         (process_test_equiv_subdir): Added.  Walks through a directory,
9220         descending into each subdirectory and loading the config files
9221         it finds there.  If any subdirectory contains two config files
9222         that don't produce identical BusConfigParser structs, fail.
9223         For now, the BusConfigParser's BusPolicies are not compared.
9224         (bus_config_parser_test): Call both process_test_valid_subdir and
9225         process_test_equiv_subdir.
9226
9227         * bus/config-loader-libxml.c (bus_config_load): Take a parent
9228         argument and pass it along to the call to bus_config_parser_new.
9229         Also made a few small changes to allow this code to compile.
9230
9231         * bus/config-loader-expat.c (bus_config_load): Take a parent
9232         argument and pass it along to the call to bus_config_parser_new.
9233
9234         * bus/bus.c (bus_context_new): Load the config file
9235         with a NULL parent argument.
9236
9237 2004-03-29  Michael Meeks  <michael@ximian.com>
9238
9239         * glib/dbus-gobject.c (introspect_properties): split
9240         out, fix mangled 'while' flow control.
9241         (introspect_signals): implement.
9242         (handle_introspect): update.
9243
9244 2004-03-29  Michael Meeks  <michael@ximian.com>
9245
9246         * glib/dbus-gobject.c (set_object_property): split out / 
9247         re-work, use the property type, and not the message type(!)
9248         (get_object_property): ditto.
9249
9250         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
9251         (dbus_gvalue_marshal): make this code re-usable, needed
9252         for signals too, also on both proxy and server side.
9253         Re-write for more efficiency / readability.
9254
9255 2004-03-29  Michael Meeks  <michael@ximian.com>
9256
9257         * dbus/dbus-message.c
9258         (dbus_message_new_error_printf): impl.
9259
9260         * dbus/dbus-connection.c
9261         (dbus_connection_unregister_object_path): fix warning.
9262
9263         * configure.in: fix no-mono-installed situation.
9264
9265 2004-03-27  Havoc Pennington  <hp@redhat.com>
9266
9267         Patch from Timo Teräs:
9268         
9269         * tools/dbus-send.c (main): if --print-reply, assume type is
9270         method call; support boolean type args
9271         
9272         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
9273         bunch of memleak and logic bugs
9274         
9275 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9276
9277         * mono/Arguments.cs:
9278         * mono/Introspector.cs:
9279         * mono/Handler.cs:
9280         * mono/InterfaceProxy.cs:
9281         * mono/Message.cs
9282         * mono/ProxyBuilder.cs:
9283         * mono/Service.cs:
9284         Added InterfaceProxy class to avoid building proxies for every
9285         object.
9286
9287         * dbus-message.h:
9288         * dbus-message.c (dbus_message_append_args_valist)
9289         (dbus_message_iter_get_object_path)
9290         (dbus_message_iter_get_object_path_array)
9291         (dbus_message_iter_append_object_path)
9292         (dbus_message_iter_append_object_path_array):
9293         Added object_path iter functions to handle OBJECT_PATH arguments
9294         
9295 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9296
9297         First checkin of mono bindings.
9298         * configure.in:
9299         * Makefile.am:
9300         Build stuff for the bindings
9301         * dbus-sharp.pc.in: Added for pkgconfig
9302         
9303 2004-03-21  Havoc Pennington  <hp@redhat.com>
9304
9305         * test/test-service.c (main): remove debug spew
9306
9307 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9308
9309         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
9310         arrays
9311
9312         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
9313         (dbus_message_iter_init_array_iterator)
9314         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
9315         indicate whether the iterator is empty
9316
9317         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
9318         warnings
9319
9320 2004-03-19  Havoc Pennington  <hp@redhat.com>
9321
9322         * NEWS: 0.21 updates
9323
9324         * configure.in: 0.21
9325
9326         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
9327         
9328         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
9329         you don't need pyrex to make dist
9330
9331         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
9332         sources; run moc
9333         
9334 2004-03-18  Richard Hult  <richard@imendio.com>
9335
9336         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9337         (dbus_message_set_auto_activation): Add doxygen docs.
9338
9339 2004-03-16  Richard Hult  <richard@imendio.com>
9340
9341         * bus/activation.c: (bus_activation_service_created),
9342         (bus_activation_send_pending_auto_activation_messages),
9343         (bus_activation_activate_service):
9344         * bus/activation.h:
9345         * bus/dispatch.c: (bus_dispatch),
9346         (check_nonexistent_service_auto_activation),
9347         (check_service_auto_activated),
9348         (check_segfault_service_auto_activation),
9349         (check_existent_service_auto_activation), (bus_dispatch_test):
9350         * bus/driver.c: (bus_driver_handle_activate_service):
9351         * bus/services.c: (bus_registry_acquire_service):
9352         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9353         (dbus_message_get_auto_activation):
9354         * dbus/dbus-message.h:
9355         * dbus/dbus-protocol.h: Implement auto-activation.
9356         
9357         * doc/dbus-specification.xml: Add auto-activation to the spec.
9358
9359 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9360
9361         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9362         fix a bug with CUSTOM types.
9363
9364         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9365         a unit test for this bug (used to fail).
9366
9367 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9368
9369         * bus/activation.c:
9370         (babysitter_watch_callback): notify all pending activations waiting for
9371           the same exec that the activation failed.
9372         (bus_activation_activate_service): shortcut the activation if we 
9373           already waiting for the same executable to start up.
9374
9375 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9376
9377         * bus/activation.c: 
9378         - Added service file reloading. 
9379           Each service files directory is kept in an hash table in 
9380           BusActivation and each BusActivationEntry knows what .service-file it
9381           was read from. So when you try to activate a service the bus will 
9382           check if it's been updated, removed or if new .service-files has 
9383           been installed.
9384         - Test code at the bottom for the service file reloading.
9385         * bus/test-main.c: (main):
9386         * bus/test.h:
9387         - added service reloading test.
9388         * dbus/dbus-sysdeps.c: 
9389         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9390
9391 2004-03-08  Michael Meeks  <michael@ximian.com>
9392
9393         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9394         bail immediately if disconnected, to avoid busy loop.
9395
9396         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9397         cleanup cut/paste/inefficiency.
9398
9399 2004-03-01  David Zeuthen  <david@fubar.dk>
9400
9401         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9402         bug where args were used twice. This bug resulted in a segfault
9403         on a Debian/PPC system when starting the messagebus daemon. Include
9404         dbus-sysdeps.h for DBUS_VA_COPY
9405
9406         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9407
9408         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9409         appropriate va_copy implementation. From GLib
9410         
9411 2004-02-24  Joe Shaw  <joe@ximian.com>
9412
9413         * bus/services.c (bus_registry_acquire_service): We need to pass
9414         in the service name to dbus_set_error() to prevent a crash.
9415
9416 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9417
9418         * AUTHORS: Reveal my True identity.
9419
9420 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9421
9422         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9423         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9424
9425 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9426
9427         * doc/TODO: Added not about better error check of configuration files.
9428
9429 2003-12-02  Richard Hult  <richard@imendio.com>
9430
9431         * Update AFL version to 2.0 throughout the source files to reflect
9432         the update that was done a while ago.
9433
9434 2003-12-02  Richard Hult  <richard@imendio.com>
9435
9436         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9437         wrote_dict_key to FALSE on the iter that the dict is appended to,
9438         just like when appending other types. Fixes a bug where a dict
9439         couldn't be put inside a dict.
9440         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9441         (message_iter_test, _dbus_message_test): Add test case for dict
9442         inside dict.
9443
9444 2003-12-01  David Zeuthen  <david@fubar.dk>
9445
9446         * python/dbus.py: Add the actual message when calling the reciever
9447         of a signal such that parameters can be inspected. Add the method
9448         remove_signal_receiver
9449         
9450 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9451
9452         * bus/*.[ch]:
9453         * dbus/*.[ch]:
9454         * glib/*.[ch]: Made ref functions return the pointer
9455
9456 2003-11-25  Zack Rusin  <zack@kde.org>
9457
9458         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9459
9460         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9461         wrappers,
9462
9463         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9464         the Integrator and to better fit with the server,
9465
9466 2003-11-24  Zack Rusin  <zack@kde.org>
9467
9468         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9469         the integrator handles it now
9470
9471         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9472         since QTimer wasn't really meant to be used the way DBusTimeout is
9473
9474 2003-11-24  Zack Rusin  <zack@kde.org>
9475
9476         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9477         Integrator class which integrates D-BUS with the Qt event loop,
9478
9479         * qt/connection.h, qt/connection.cpp: Move all the code which
9480         was dealing with D-BUS integration to the Integrator class,
9481         and start using Integrator,
9482
9483 2003-11-23  Zack Rusin  <zack@kde.org>
9484
9485         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9486         wrapper
9487
9488         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9489         switching namespaces to DBusQt, reworking the class,
9490
9491         * Makefile.cvs: switching dependencies so that it matches KDE 
9492         schematics,
9493         
9494         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9495         the library
9496
9497 2003-11-19  Havoc Pennington  <hp@redhat.com>
9498
9499         * NEWS: update
9500
9501         * configure.in: bump version to 0.20
9502
9503         * configure.in (have_qt): add yet another place to look for qt
9504         (someone hand trolltech a .pc file...)
9505
9506 2003-11-01  Havoc Pennington  <hp@redhat.com>
9507
9508         * doc/dbus-specification.xml: add state machine docs on the auth
9509         protocol; just a first draft, I'm sure it's wrong.      
9510
9511 2003-10-28  David Zeuthen  <david@fubar.dk>
9512
9513         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9514         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9515         
9516 2003-10-28  Havoc Pennington  <hp@redhat.com>
9517
9518         * dbus/dbus-message.c (get_next_field): delete unused function
9519
9520 2003-10-28  Havoc Pennington  <hp@redhat.com>
9521
9522         * bus/expirelist.c (do_expiration_with_current_time): detect
9523         failure of the expire_func due to OOM
9524
9525         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9526
9527         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9528         NoReply error that's now created by the bus when the service exits
9529
9530 2003-10-28  Havoc Pennington  <hp@redhat.com>
9531
9532         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9533         tests for set_path, set_interface, set_member, etc.
9534
9535         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9536
9537         * dbus/dbus-message.c (set_string_field): always just delete and
9538         re-append the field; accept NULL for deletion
9539         (re_align_fields_recurse): reimplement
9540         
9541 2003-10-26  Havoc Pennington  <hp@redhat.com>
9542
9543         * dbus/dbus-connection.c: fix docs to properly describe the
9544         disconnected message
9545         (_dbus_connection_notify_disconnected): remove this function; 
9546         we can't synchronously add the disconnected message, we have to 
9547         do it after we've queued any remaining real messages
9548         (_dbus_connection_get_dispatch_status_unlocked): queue the
9549         disconnect message only if the transport has finished queueing all
9550         its real messages and is disconnected.
9551         (dbus_connection_disconnect): update the dispatch status here
9552
9553 2003-10-22  Havoc Pennington  <hp@redhat.com>
9554
9555         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9556
9557         * bus/connection.c (bus_transaction_send_from_driver): set the
9558         destination to the connection's base service
9559
9560 2003-10-20  Havoc Pennington  <hp@redhat.com>
9561
9562         hmm, make check is currently not passing.
9563         
9564         * doc/dbus-specification.xml: add requirement that custom type
9565         names follow the same rules as interface names.
9566
9567         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9568         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9569         'map'
9570
9571         * doc/dbus-specification.xml: update type codes to match
9572         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9573         CUSTOM. Add type OBJECT_PATH to the spec.
9574
9575 2003-10-17  Havoc Pennington  <hp@redhat.com>
9576
9577         * bus/driver.c (create_unique_client_name): use "." as separator
9578         in base service names instead of '-'
9579
9580         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9581         byte at the end of the string
9582
9583         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9584         optimization macros since string validation seems to be a slow
9585         point.
9586         
9587         * doc/dbus-specification.xml: restrict valid
9588         service/interface/member/error names. Add test suite code for the
9589         name validation.
9590
9591         * dbus/dbus-string.c: limit service/interface/member/error names 
9592         to [0-9][A-Z][a-z]_
9593
9594         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9595         format arg to verbose spew
9596
9597         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9598         memory, return instead of g_error
9599
9600         * test/test-service.c (path_message_func): support emitting a
9601         signal on request
9602
9603         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9604         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9605         assuming the activation bus was the session bus so that services
9606         started manually will still register.
9607         (init_connections_unlocked): fix so that in OOM situation we get
9608         the same semantics when retrying the function
9609         
9610         * test/test-service.c (main): change to use path registration, to
9611         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9612         than DBUS_BUS_SESSION
9613
9614 2003-10-16  Havoc Pennington  <hp@redhat.com>
9615
9616         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9617
9618         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9619         coverage of the tests
9620         (coverage-report.txt): don't move the .da and .bbg files around
9621
9622 2003-10-16  Havoc Pennington  <hp@redhat.com>
9623
9624         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9625         to put there
9626
9627 2003-10-16  Havoc Pennington  <hp@redhat.com>
9628
9629         * bus/connection.c (bus_pending_reply_expired): either cancel or
9630         execute, not both
9631         (bus_connections_check_reply): use unlink, not remove_link, as we
9632         don't want to free the link; fixes double free mess
9633
9634         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9635         where no reply was received
9636
9637         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9638         fix a refcount leak
9639
9640         * bus/signals.c (match_rule_matches): add special cases for the
9641         bus driver, so you can match on sender/destination for it.
9642
9643         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9644         DBUS_PRINT_BACKTRACE is set
9645
9646         * dbus/dbus-internals.c: add pid to assertion failure messages
9647
9648         * dbus/dbus-connection.c: add message type code to the debug spew
9649
9650         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9651         sender=foo not service=foo
9652
9653         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9654         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9655         DBUS_ACTIVATION_ADDRESS instead
9656
9657         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9658         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9659
9660         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9661         context struct
9662
9663         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9664         (dbus_message_iter_get_object_path_array): new function (half
9665         finished, disabled for the moment)
9666         
9667         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9668         DBUS_MESSAGE_TYPE_ERROR
9669
9670         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9671         avoid redirecting stderr to /dev/null
9672         (babysit): close stdin if not doing the "exit_with_session" thing
9673
9674         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9675         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9676         stdout/stdin, so things don't get confused
9677         
9678         * bus/system.conf.in: fix to allow replies, I modified .conf
9679         instead of .conf.in again.
9680
9681 2003-10-14  David Zeuthen  <david@fubar.dk>
9682
9683         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9684         argtype to arg_type when raising unknown arg type exception.
9685         Changed type list to reflect the changes in dbus-protocol.h so 
9686         the bindings actually work.
9687
9688 2003-10-14  Havoc Pennington  <hp@redhat.com>
9689
9690         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9691         to have a bug keeping it from outputting the .da files sometimes
9692         (string_get_string): don't append garbage nul bytes to the string.
9693
9694 2003-10-15  Seth Nickell  <seth@gnome.org>
9695
9696         * python/Makefile.am:
9697
9698         Include dbus_h_wrapper.h in the dist tarball.
9699
9700 2003-10-14  Havoc Pennington  <hp@redhat.com>
9701
9702         * bus/bus.c (bus_context_check_security_policy): revamp this to
9703         work more sanely with new policy-based requested reply setup
9704
9705         * bus/connection.c (bus_transaction_send_from_driver): set bus
9706         driver messages as no reply
9707
9708         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9709         requested_reply attribute on allow/deny rules
9710
9711         * bus/system.conf: add <allow requested_reply="true"/>
9712
9713         * bus/driver.c (bus_driver_handle_message): fix check for replies
9714         sent to the bus driver, which was backward. How did this ever work
9715         at all though? I think I'm missing something.
9716
9717         * dbus/dbus-message.c (decode_header_data): require error and
9718         method return messages to have a reply serial field to be valid
9719         (_dbus_message_loader_queue_messages): break up this function;
9720         validate that reply serial and plain serial are nonzero; 
9721         clean up the OOM/error handling.
9722         (get_uint_field): don't return -1 from this
9723         (dbus_message_create_header): fix signed/unsigned bug
9724
9725         * bus/connection.c (bus_connections_expect_reply): save serial of
9726         the incoming message, not reply serial
9727
9728 2003-10-14  Havoc Pennington  <hp@redhat.com>
9729
9730         * bus/connection.c: implement pending reply tracking using
9731         BusExpireList
9732
9733         * bus/bus.c (bus_context_check_security_policy): verify that a
9734         reply is pending in order to allow a reply to be sent. Deny 
9735         messages of unknown type.
9736
9737         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9738
9739         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9740         (bus_context_get_reply_timeout): new
9741
9742 2003-10-13  Seth Nickell  <seth@gnome.org>
9743
9744         * python/Makefile.am:
9745
9746         Pass "make distcheck": remove a couple files from DIST_FILES
9747         that weren't included in the final version.
9748
9749 2003-10-12  Havoc Pennington  <hp@pobox.com>
9750
9751         Added test code that 1) starts an actual bus daemon and 2) uses
9752         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9753         more testing possible, but this is the basic framework.
9754         
9755         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9756         empty proxy lists from the proxy list hash
9757
9758         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9759         couple of return_if_fail checks
9760
9761         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9762         to allocate, so everything is cleared to NULL as it should be.
9763
9764         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9765         source as data to dbus_connection_set_timeout_functions() as the 
9766         timeout functions expected
9767
9768         * test/glib/run-test.sh: add a little script to start up a message
9769         bus and run tests using it
9770
9771         * tools/dbus-launch.1: updates
9772
9773         * tools/dbus-launch.c (main): add --config-file option
9774
9775         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9776         that could never be reached.
9777
9778         * dbus/dbus-message.c (dbus_message_new_method_return) 
9779         (dbus_message_new_error, dbus_message_new_signal): set the
9780         no-reply-expected flag on all these. Redundant, but may
9781         as well be consistent.
9782
9783 2003-10-11  Havoc Pennington  <hp@pobox.com>
9784
9785         * test/decode-gcov.c (function_solve_graph): make broken block
9786         graph a nonfatal error since it seems to be broken. Need to debug
9787         this.
9788
9789         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9790         can't just check type > INVALID < LAST anymore
9791
9792         * dbus/dbus-message.c (dbus_message_get_signature): new function
9793         (dbus_message_has_signature): new function
9794         (struct DBusMessage): add signature field (right now it isn't sent
9795         over the wire, just generated on the fly)
9796         (dbus_message_copy): copy the signature, and init strings to
9797         proper length to avoid some reallocs
9798         (dbus_message_iter_init_array_iterator): return void, since it
9799         can't fail
9800         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9801         (_dbus_message_loader_queue_messages): add silly temporary hack to
9802         fill in message->signature on load
9803
9804         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9805         characters, so they are relatively human-readable.
9806
9807 2003-10-11  Havoc Pennington  <hp@pobox.com>
9808
9809         * dbus/dbus-message.c (_dbus_message_test): add more test
9810         coverage, but #if 0 for now since they uncover a bug 
9811         not fixed yet; I think in re_align_field_recurse()
9812         (re_align_field_recurse): add FIXME about broken assertion
9813
9814         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9815
9816         * bus/connection.c: share a couple code bits with expirelist.c
9817
9818         * bus/expirelist.h, bus/expirelist.c: implement a generic
9819         expire-items-after-N-seconds facility, was going to share between
9820         expiring connections and replies, decided not to use for expiring
9821         connections for now.
9822
9823         * COPYING: include AFL 2.0 (still need to change all the file headers)
9824
9825 2003-10-09  Havoc Pennington  <hp@redhat.com>
9826
9827         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9828         gcc 3.3. Not that we do anything about it yet.
9829
9830         * bus/signals.c (bus_match_rule_parse): impose max length on the
9831         match rule text
9832
9833         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9834
9835 2003-10-09  Havoc Pennington  <hp@redhat.com>
9836
9837         Make matching rules theoretically work (add parser).
9838         
9839         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9840         the case where destination is explicitly specified as bus driver
9841         and someone else is eavesdropping.
9842         
9843         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9844         definition of eavesdropping and assertion
9845
9846         * tools/dbus-send.c (main): use dbus_message_type_from_string
9847
9848         * bus/signals.c (bus_match_rule_parse): implement
9849
9850         * dbus/dbus-message.c (dbus_message_type_from_string): new
9851
9852         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9853
9854 2003-10-02  Havoc Pennington  <hp@pobox.com>
9855
9856         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9857         dbus_gproxy_oneway_call
9858
9859         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9860         (dbus_server_setup_with_g_main): fix to allow calling them more
9861         than once on the same args
9862         (dbus_bus_get_with_g_main): new function
9863
9864 2003-10-02  Havoc Pennington  <hp@redhat.com>
9865
9866         * doc/dbus-tutorial.xml: write some stuff
9867
9868 2003-09-29  Havoc Pennington  <hp@pobox.com>
9869
9870         * configure.in: split checks for Doxygen from XML docs, check for
9871         xmlto
9872
9873         * doc/Makefile.am: XML-ify all the docs, and add a blank
9874         dbus-tutorial.xml
9875
9876 2003-09-29  Havoc Pennington  <hp@pobox.com>
9877
9878         * Merge dbus-object-names branch. To see the entire patch 
9879         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9880         it's huuuuge though.
9881         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9882         
9883 2003-09-28  Havoc Pennington  <hp@pobox.com>
9884
9885         * HACKING: update to reflect new server
9886
9887 2003-09-26  Seth Nickell  <seth@gnome.org>
9888
9889         * python/dbus.py:
9890         * python/examples/example-signals.py:
9891
9892         Start implementing some notions of signals. The API
9893         is really terrible, but they sort of work (with the
9894         exception of being able to filter by service, and to
9895         transmit signals *as* a particular service). Need to
9896         figure out how to make messages come from the service
9897         we registered :-(
9898         
9899         * python/dbus_bindings.pyx.in:
9900
9901         Removed duplicate message_handler callbacks.
9902         
9903 2003-09-25  Havoc Pennington  <hp@redhat.com>
9904
9905         * bus/session.conf.in: fix my mess
9906
9907 2003-09-25  Havoc Pennington  <hp@pobox.com>
9908
9909         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9910
9911 2003-09-25  Seth Nickell  <seth@gnome.org>
9912
9913         * python/examples/example-service.py:
9914
9915         Johan notices complete wrong code in example-service, but
9916         completely wrong in a way that works exactly the same (!).
9917         Johan is confused, how could this possibly work? Example
9918         code fails to serve purpose of making things clear.
9919         Seth fixes.
9920
9921 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9922
9923         * doc/dbus-specification.sgml: don't require header fields
9924         to be 4-byte aligned and specify that fields should be
9925         distinguished from padding by the fact that zero is not
9926         a valid field name.
9927         
9928         * doc/TODO: remove re-alignment item and add item to doc
9929         the OBJECT_PATH type.
9930         
9931         * dbus/dbus-message.c:
9932         (HeaderField): rename the original member to value_offset
9933         and introduce a name_offset member to keep track of where
9934         the field actually begins.
9935         (adjust_field_offsets): remove.
9936         (append_int_field), (append_uint_field),
9937         (append_string_field): don't align the start of the header
9938         field to a 4-byte boundary.
9939         (get_next_field): impl finding the next marhsalled field
9940         after a given field.
9941         (re_align_field_recurse): impl re-aligning a number of
9942         already marshalled fields.
9943         (delete_field): impl deleting a field of any type and
9944         re-aligning any following fields.
9945         (delete_int_or_uint_field), (delete_string_field): remove.
9946         (set_int_field), (set_uint_field): no need to re-check
9947         that we have the correct type for the field.
9948         (set_string_field): ditto and impl re-aligning any
9949         following fields.
9950         (decode_header_data): update to take into account that
9951         the fields aren't 4-byte aligned any more and the new
9952         way to distinguish padding from header fields. Also,
9953         don't exit when there is too much header padding.
9954         (process_test_subdir): print the directory.
9955         (_dbus_message_test): add test to make sure a following
9956         field is re-aligned correctly after field deletion.
9957         
9958         * dbus/dbus-string.[ch]:
9959         (_dbus_string_insert_bytes): rename from insert_byte and
9960         allow the insert of multiple bytes.
9961         (_dbus_string_test): test inserting multiple bytes.
9962
9963         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9964         warning note to docs about having to re-align any
9965         marshalled values following the string.
9966         
9967         * dbus/dbus-message-builder.c:
9968         (append_string_field), (_dbus_message_data_load):
9969         don't align the header field.
9970         
9971         * dbus/dbus-auth.c: (process_test_subdir): print the
9972         directory.
9973         
9974         * test/break-loader.c: (randomly_add_one_byte): upd. for
9975         insert_byte change.
9976         
9977         * test/data/invalid-messages/bad-header-field-alignment.message:
9978         new test case.
9979         
9980         * test/data/valid-messages/unknown-header-field.message: shove
9981         a dict in the unknown field.
9982
9983 2003-09-25  Seth Nickell  <seth@gnome.org>
9984
9985         * python/dbus.py:
9986         * python/dbus_bindings.pyx.in:
9987
9988         Handle return values.
9989         
9990         * python/examples/example-client.py:
9991         * python/examples/example-service.py:
9992
9993         Pass back return values from the service to the client.
9994         
9995 2003-09-24  Seth Nickell  <seth@gnome.org>
9996
9997         * python/dbus.py:
9998
9999         Connect Object methods (when you are sharing an object) up... pass
10000         in a list of methods to be shared. Sharing all the methods just
10001         worked out too weird. You can now create nice Services over the
10002         DBus in Python. :-)
10003         
10004         * python/dbus_bindings.pyx.in:
10005
10006         Keep references to user_data tuples passed into C functions so 
10007         Python doesn't garbage collect on us.
10008
10009         Implement MethodReturn and Error subclasses of Message for creating
10010         DBusMessage's of those types.
10011         
10012         * python/examples/example-client.py:
10013         * python/examples/example-service.py:
10014
10015         Simple example code showing both how create DBus services and objects,
10016         and how to use them.
10017
10018 2003-09-23  Havoc Pennington  <hp@pobox.com>
10019
10020         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
10021
10022 2003-09-23  Havoc Pennington  <hp@redhat.com>
10023
10024         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
10025         (dbus_gproxy_disconnect_signal): implement
10026         (dbus_gproxy_manager_remove_signal_match): implement
10027         (dbus_gproxy_manager_add_signal_match): implement
10028         (dbus_gproxy_oneway_call): implement
10029
10030 2003-09-23  Havoc Pennington  <hp@pobox.com>
10031
10032         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
10033         subclass. This means dropping the transparent thread safety of the
10034         proxy; you now need a separate proxy per-thread, or your own
10035         locking on the proxy. Probably right anyway.
10036         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
10037
10038 2003-09-22  Havoc Pennington  <hp@redhat.com>
10039
10040         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
10041
10042 2003-09-21  Seth Nickell  <seth@gnome.org>
10043
10044         First checkin of the Python bindings.
10045         
10046         * python/.cvsignore:
10047         * python/Makefile.am:
10048         * python/dbus_bindings.pyx.in:
10049         * python/dbus_h_wrapper.h:
10050
10051         Pieces for Pyrex to operate on, building a dbus_bindings.so
10052         python module for low-level access to the DBus APIs.
10053         
10054         * python/dbus.py:
10055
10056         High-level Python module for accessing DBus objects.
10057
10058         * configure.in:
10059         * Makefile.am:
10060
10061         Build stuff for the python bindings.
10062
10063         * acinclude.m4:
10064
10065         Extra macro needed for finding the Python C header files.
10066
10067 2003-09-21  Havoc Pennington  <hp@pobox.com>
10068
10069         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
10070         implementing the proxy manager, didn't get very far.
10071
10072         * dbus/dbus-bus.c (dbus_bus_add_match): new
10073         (dbus_bus_remove_match): new
10074
10075         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
10076         path_name argument; adjust the other not-yet-implemented 
10077         gproxy constructors to be what I think they should be.
10078
10079 2003-09-21  Havoc Pennington  <hp@pobox.com>
10080
10081         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
10082         by default for message bus connections.
10083
10084         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
10085         exit_on_disconnect flag is set and we process the disconnected
10086         signal.
10087         (dbus_connection_set_exit_on_disconnect): new function
10088
10089 2003-09-21  Havoc Pennington  <hp@pobox.com>
10090
10091         Get matching rules mostly working in the bus; only actually
10092         parsing the rule text remains. However, the client side of
10093         "signal connections" hasn't been started, this patch is only the
10094         bus side.
10095         
10096         * dbus/dispatch.c: fix for the matching rules changes
10097         
10098         * bus/driver.c (bus_driver_handle_remove_match)
10099         (bus_driver_handle_add_match): send an ack reply from these
10100         method calls
10101
10102         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
10103         arguments, reported by Seth Nickell
10104
10105         * bus/config-parser.c (append_rule_from_element): support
10106         eavesdrop=true|false attribute on policies so match rules 
10107         can be prevented from snooping on the system bus.
10108
10109         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
10110         and "destination" in attribute names; fix some docs bugs; 
10111         add eavesdrop=true|false attribute
10112
10113         * bus/driver.c (bus_driver_handle_add_match)
10114         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
10115         messages
10116
10117         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
10118         rid of broadcast service concept, signals are just always broadcast
10119
10120         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
10121         mostly implement matching rules stuff (currently only exposed as signal
10122         connections)
10123
10124 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
10125
10126         * doc/dbus-specification.sgml: Change the header field name
10127         to be an enum and update the rest of the spec to reference
10128         the fields using the conventinal name.
10129
10130         * dbus/dbus-protocol.h: update to reflect the spec.
10131
10132         * doc/TODO: add item to remove the 4 byte alignment requirement.
10133         
10134         * dbus/dbus-message.c: Remove the code to generalise the
10135         header/body length and serial number header fields as named
10136         header fields so we can reference field names using the 
10137         protocol values.
10138         (append_int_field), (append_uint_field), (append_string_field):
10139         Append the field name as a byte rather than four chars.
10140         (delete_int_or_uint_field), (delete_string_field): reflect the
10141         fact that the field name and typecode now occupy 4 bytes instead
10142         of 8.
10143         (decode_string_field), (decode_header_data): update to reflect
10144         protocol changes and move the field specific encoding from
10145         decode_string_field() back into decode_header_data().
10146         
10147         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
10148         Add utility to aid debugging.
10149         
10150         * dbus/dbus-message-builder.c:
10151         (append_string_field), (_dbus_message_data_load): Update to
10152         reflect protocol changes; Change the FIELD_NAME directive
10153         to HEADER_FIELD and allow it to take the field's conventional
10154         name rather than the actual value.
10155         
10156         * test/data/*/*.message: Update to use HEADER_FIELD instead
10157         of FIELD_NAME; Always align the header on an 8 byte boundary
10158         *before* updating the header length.
10159
10160 2003-09-15  Havoc Pennington  <hp@pobox.com>
10161
10162         * dbus/dbus-pending-call.c: add the get/set object data
10163         boilerplate as for DBusConnection, etc. Use generic object data
10164         for the notify callback.
10165
10166         * glib/dbus-gparser.c (parse_node): parse child nodes
10167
10168         * tools/dbus-viewer.c: more hacking on the dbus-viewer
10169         
10170         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
10171         contain functions shared between the convenience lib and the
10172         installed lib
10173
10174         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
10175         -export-symbols-regex to the GLib library
10176
10177         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
10178         fix the locking in here, and add a default handler for
10179         Introspect() that just returns sub-nodes.
10180
10181 2003-09-14  Havoc Pennington  <hp@pobox.com>
10182
10183         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
10184         rather than gfoo consistent
10185
10186         * glib/dbus-gproxy.h: delete for now, move contents to
10187         dbus-glib.h, because the include files don't work right since we
10188         aren't in the dbus/ subdir.
10189         
10190         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
10191         (dbus_gproxy_end_call): finish
10192         (dbus_gproxy_begin_call): finish
10193
10194         * glib/dbus-gmain.c (dbus_set_g_error): new
10195
10196         * glib/dbus-gobject.c (handle_introspect): include information
10197         about child nodes in the introspection
10198
10199         * dbus/dbus-connection.c (dbus_connection_list_registered): new
10200         function to help in implementation of introspection
10201
10202         * dbus/dbus-object-tree.c
10203         (_dbus_object_tree_list_registered_and_unlock): new function
10204
10205 2003-09-12  Havoc Pennington  <hp@pobox.com>
10206
10207         * glib/dbus-gidl.h: add common base class for all the foo_info
10208         types
10209
10210         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
10211         similar to kdcop
10212
10213         * test/Makefile.am: try test srcdir -ef . in addition to test
10214         srcdir = ., one of them should work (yeah lame)
10215         
10216         * glib/Makefile.am: build the "idl" parser stuff as a convenience
10217         library
10218         
10219         * glib/dbus-gparser.h: make description_load routines return
10220         NodeInfo* not Parser*
10221
10222         * Makefile.am (SUBDIRS): build test dir after all library dirs
10223
10224         * configure.in: add GTK+ detection
10225
10226 2003-09-07  Havoc Pennington  <hp@pobox.com>
10227
10228         * Make Doxygen contented.
10229
10230 2003-09-07  Havoc Pennington  <hp@pobox.com>
10231
10232         * doc/dbus-specification.sgml: more updates
10233
10234 2003-09-06  Havoc Pennington  <hp@pobox.com>
10235
10236         * doc/dbus-specification.sgml: partial updates
10237
10238         * bus/dbus-daemon-1.1.in: fix the config file docs for the
10239         zillionth time; hopefully I edited the right file this time.
10240
10241         * bus/config-parser.c (append_rule_from_element): support
10242         send_type, send_path, receive_type, receive_path
10243
10244         * bus/policy.c: add message type and path to the list of things
10245         that can be "firewalled"
10246
10247 2003-09-06  Havoc Pennington  <hp@pobox.com>
10248
10249         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
10250         (dbus_connection_register_object_path): make this not handle
10251         messages to paths below the given path
10252
10253 2003-09-03  Havoc Pennington  <hp@pobox.com>
10254
10255         * test/glib/Makefile.am: add this with random glib-linked test
10256         programs
10257
10258         * glib/Makefile.am: remove the random test programs from here,
10259         leave only the unit tests
10260
10261         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
10262         uscore/javacaps conversion, and fix     
10263         (get_object_property, set_object_property): change to .NET
10264         convention for mapping props to methods, set_FooBar/get_FooBar, 
10265         since one language has such a convention we may as well copy it. 
10266         Plus real methods in either getFooBar or get_foo_bar style won't 
10267         collide with this convention.
10268
10269 2003-09-01  Havoc Pennington  <hp@pobox.com>
10270
10271         * glib/dbus-gparser.c: implement
10272
10273         * glib/dbus-gobject.c: start implementing skeletons support
10274
10275         * configure.in: when disabling checks/assert, also define
10276         G_DISABLE_ASSERT and G_DISABLE_CHECKS
10277
10278 2003-09-01  Havoc Pennington  <hp@pobox.com>
10279
10280         * glib/Makefile.am: rearrange a bunch of files and get "make
10281         check" framework set up
10282
10283 2003-08-31  Havoc Pennington  <hp@pobox.com>
10284
10285         * fix build with --disable-tests
10286
10287 2003-08-30  Havoc Pennington  <hp@pobox.com>
10288
10289         * dbus/dbus-connection.c: purge DBusMessageHandler
10290
10291         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
10292         use callbacks everywhere
10293
10294 2003-08-30  Havoc Pennington  <hp@pobox.com>
10295
10296         * test/data/valid-config-files/system.d/test.conf: change to 
10297         root for the user so warnings don't get printed
10298
10299         * dbus/dbus-message.c: add dbus_message_get_path,
10300         dbus_message_set_path
10301         
10302         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
10303         dispatching to a path
10304
10305         * dbus/dbus-string.c (_dbus_string_validate_path): add
10306
10307         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
10308         (_dbus_marshal_object_path): implement
10309
10310         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
10311         to contain the path to the target object
10312         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
10313         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
10314
10315 2003-08-30  Havoc Pennington  <hp@pobox.com>
10316
10317         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
10318
10319 2003-08-29  Havoc Pennington  <hp@pobox.com>
10320
10321         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
10322         registered
10323         (struct DBusObjectSubtree): shrink this
10324         a lot, since we may have a lot of them
10325         (_dbus_object_tree_free_all_unlocked): implement
10326         (_dbus_object_tree_dispatch_and_unlock): implement
10327
10328 2003-08-29  Havoc Pennington  <hp@pobox.com>
10329
10330         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
10331
10332 2003-08-28  Havoc Pennington  <hp@pobox.com>
10333
10334         purge DBusObjectID
10335         
10336         * dbus/dbus-connection.c: port to no ObjectID, create a
10337         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10338
10339         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10340         everything except UnregisterFunction and MessageFunction
10341         
10342         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10343         add DBUS_TYPE_OBJECT_PATH
10344         
10345         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10346         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10347         path-based object IDs
10348
10349 2003-08-25  Havoc Pennington  <hp@pobox.com>
10350
10351         Just noticed that dbus_message_test is hosed, I wonder when I
10352         broke that. I thought make check was passing earlier...
10353         
10354         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10355         container tree, will replace most of dbus-object-registry
10356
10357         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10358         screwup
10359
10360 2003-08-19  Havoc Pennington  <hp@pobox.com>
10361
10362         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10363         (dbus_message_is_error): fix this function
10364
10365         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10366         match
10367
10368         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10369         reflect clarified man page
10370         (bus_client_policy_check_can_send): ditto
10371         
10372         * bus/session.conf.in: fixup
10373
10374         * bus/system.conf.in: fixup
10375
10376 2003-08-18  Havoc Pennington  <hp@redhat.com>
10377
10378         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10379
10380         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10381         dumb bug created earlier (wrong order of args to
10382         decode_header_data())
10383         
10384         * tools/dbus-send.c: port
10385
10386         * tools/dbus-print-message.c (print_message): port
10387
10388         * test/data/*messages: port all messages over
10389         
10390         * dbus/dbus-message-builder.c: support including 
10391         message type
10392         
10393         * bus/driver.c: port over
10394         
10395         * bus/dispatch.c: port over to new stuff
10396
10397         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10398         rename disconnect signal to "Disconnected"
10399
10400 2003-08-17  Havoc Pennington  <hp@pobox.com>
10401
10402         This doesn't compile yet, but syncing up so I can hack on it from
10403         work. What are branches for if not broken code? ;-)
10404         
10405         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10406         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10407         DBUS_HEADER_FIELD_ERROR_NAME
10408         
10409         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10410         for the interface+member pairs
10411         (string_hash): change to use g_str_hash algorithm
10412         (find_direct_function, find_string_function): refactor these to
10413         share most code.
10414         
10415         * dbus/dbus-message.c: port all of this over to support 
10416         interface/member fields instead of name field
10417
10418         * dbus/dbus-object-registry.c: port over
10419         
10420         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10421         from _dbus_string_validate_name
10422
10423         * bus/dbus-daemon-1.1: change file format for the 
10424         <deny>/<allow> stuff to match new message naming scheme
10425
10426         * bus/policy.c: port over
10427
10428         * bus/config-parser.c: parse new format
10429         
10430 2003-08-16  Havoc Pennington  <hp@pobox.com>
10431
10432         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10433         broken assertion
10434
10435         * glib/dbus-gproxy.c: some hacking
10436
10437 2003-08-15  Havoc Pennington  <hp@redhat.com>
10438
10439         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10440
10441         * dbus/dbus-connection.c
10442         (dbus_connection_send_with_reply_and_block): factor out internals;
10443         change to convert any error replies to DBusError instead of 
10444         returning them as a message
10445
10446 2003-08-15  Havoc Pennington  <hp@pobox.com>
10447
10448         * dbus/dbus-connection.c, 
10449         dbus/dbus-pending-call.c: Finish the pending call stuff
10450
10451 2003-08-14  Havoc Pennington  <hp@redhat.com>
10452
10453         * dbus/dbus-pending-call.c: start on new object that will replace
10454         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10455         replies
10456
10457         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10458         with remote interfaces
10459
10460         * dbus/dbus-gidl.c: do the boring boilerplate in here
10461         
10462 2003-08-12  Havoc Pennington  <hp@pobox.com>
10463
10464         * bus/dispatch.c (bus_dispatch): make this return proper 
10465         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10466
10467         * dbus/dbus-errors.c (dbus_set_error): use
10468         _dbus_string_append_printf_valist
10469
10470         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10471         (_dbus_string_append_printf): new
10472
10473         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10474         UNKNOWN_METHOD
10475
10476         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10477         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10478         message is unhandled.
10479
10480 2003-08-11  Havoc Pennington  <hp@pobox.com>
10481
10482         * bus/test.c (client_disconnect_handler): change to return
10483         HANDLED (would have been REMOVE_MESSAGE)
10484
10485         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10486         HANDLED/NOT_YET_HANDLED instead of
10487         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10488         should be used.
10489
10490 2003-08-10  Havoc Pennington  <hp@pobox.com>
10491
10492         * tools/dbus-send.c (main): add --type argument, for now
10493         supporting only method_call and signal types.
10494
10495         * tools/dbus-print-message.c: print message type
10496
10497         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10498         init connection->objects
10499
10500         * doc/dbus-specification.sgml: fix sgml
10501
10502         * bus/*.c: port over to object-instance API changes
10503
10504         * test/test-service.c: ditto
10505         
10506         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10507         name, we will have to fix up the rest of the code to also handle
10508         this
10509         (dbus_message_new): generic message-creation call
10510         (set_string_field): allow appending name field
10511
10512 2003-08-06  Havoc Pennington  <hp@pobox.com>
10513
10514         * dbus/dbus-object-registry.c: implement signal connection 
10515         and dispatch
10516
10517         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10518
10519         * dbus/dbus-internals.c (_dbus_memdup): new function
10520
10521 2003-08-02  Havoc Pennington  <hp@pobox.com>
10522
10523         * dbus/dbus-message.c (dbus_message_get_no_reply)
10524         (dbus_message_set_no_reply): add these and remove
10525         set_is_error/get_is_error
10526
10527         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10528         remove the ERROR flag, since there's now an ERROR type
10529
10530 2003-08-01  Havoc Pennington  <hp@pobox.com>
10531
10532         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10533         implement
10534
10535         * dbus/dbus-message.c (dbus_message_get_type): new function
10536
10537         * doc/dbus-specification.sgml: add "type" byte to messages
10538
10539 2003-08-01  Havoc Pennington  <hp@pobox.com>
10540
10541         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10542         a message type enum to distinguish kinds of message
10543         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10544         that need not be replied to
10545
10546 2003-08-01  Havoc Pennington  <hp@pobox.com>
10547
10548         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10549         (unpack_8_octets): fix no-64-bit-int bug
10550
10551         * dbus/dbus-object-registry.c (validate_id): validate the 
10552         connection ID bits, not just the instance ID.
10553
10554         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10555         the connection-global 33 bits of the object ID
10556
10557         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10558         object ID in the new way
10559
10560         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10561         define server/client/instance bits.
10562
10563 2003-07-30  Havoc Pennington  <hp@pobox.com>
10564
10565         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10566         build
10567
10568 2003-07-13  Havoc Pennington  <hp@pobox.com>
10569
10570         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10571         fields to DBusObjectVTable and DBusObjectInfo
10572
10573 2003-07-12  Havoc Pennington  <hp@pobox.com>
10574
10575         * dbus/dbus-object-registry.c: implement unit test,
10576         fix bugs discovered in process
10577
10578         * dbus/dbus-connection.c: remove handler_table and
10579         register_handler(), add DBusObjectRegistry usage
10580
10581         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10582         (dbus_object_id_set_null): new functions
10583
10584 2003-07-08  Havoc Pennington  <hp@pobox.com>
10585
10586         * dbus/dbus-object.c: implement some of this
10587
10588         * dbus/dbus-object-registry.c
10589         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10590         param
10591         (_dbus_object_registry_new): handle OOM
10592
10593 2003-07-08  Havoc Pennington  <hp@pobox.com>
10594
10595         * dbus/dbus-object.h: sketch out an API for registering objects
10596         with a connection, that allows us to use as little as 24 bytes
10597         per object and lets application code represent an object in 
10598         any conceivable way.
10599
10600         * dbus/dbus-object-registry.c: implement the hard bits of the
10601         DBusConnection aspect of object API. Not yet wired up.
10602         
10603 2003-07-06  Havoc Pennington  <hp@pobox.com>
10604
10605         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10606         (_dbus_marshal_object_id): new
10607         (_dbus_demarshal_object_id): new
10608         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10609         consolidate identical switch cases. Don't conditionalize handling
10610         of DBUS_TYPE_UINT64, need to handle the type always.
10611         (_dbus_marshal_validate_arg): consolidate identical cases, and
10612         handle DBUS_TYPE_OBJECT_ID
10613
10614         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10615
10616         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10617
10618 2003-09-28  Havoc Pennington  <hp@pobox.com>
10619
10620         * real 0.13 release
10621
10622 2003-09-28  Havoc Pennington  <hp@pobox.com>
10623
10624         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10625         to work with Debian db2html
10626
10627 2003-09-28  Havoc Pennington  <hp@pobox.com>
10628
10629         * configure.in: 0.13
10630
10631         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10632         stylesheet-images for benefit of Debian
10633         
10634         Change back to using filesystem-linked sockets for the system
10635         bus, so only root can create the default system bus address.
10636         
10637         * bus/system.conf.in: change to use
10638         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10639
10640         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10641         from here.
10642
10643         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10644         here, and AC_DEFINE DBUS_SYSTEM_PATH
10645
10646 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10647
10648         * doc/TODO:
10649         * doc/busconfig.dtd:
10650         Add busconfig DTD.
10651         
10652 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10653
10654         * doc/dbus-specification.sgml:
10655         Add activation reply values.
10656         
10657 2003-08-05  Havoc Pennington  <hp@redhat.com>
10658
10659         * configure.in: 0.12
10660
10661 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10662
10663         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10664         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10665         (add_watch), (remove_watch), (create_source):
10666         Refcount fds, fixes some reentrancy issues.
10667         
10668 2003-07-30  Havoc Pennington  <hp@redhat.com>
10669
10670         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10671         bus address to be abstract if we have abstract sockets
10672
10673         * NEWS: update
10674
10675 2003-07-28  Havoc Pennington  <hp@redhat.com>
10676
10677         * bus/messagebus.in: fix to avoid processname/servicename 
10678         confusion, from Michael Kearey
10679         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10680         
10681 2003-07-23  Havoc Pennington  <hp@pobox.com>
10682
10683         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10684         fix from Andy Hanton to remove broken "+1"
10685
10686 2003-07-16  Havoc Pennington  <hp@pobox.com>
10687
10688         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10689         babysitter process, as suggested by Thomas Leonard, so 
10690         an "eval `dbus-launch --exit-with-session`" will actually 
10691         return
10692
10693 2003-07-16  Havoc Pennington  <hp@pobox.com>
10694
10695         * configure.in: print out EXPANDED_* variables in the summary at
10696         the end; clean up the code that computes EXPANDED_ variables and
10697         get the ones using exec_prefix right. Should make things work
10698         when you build without --prefix
10699
10700 2003-06-29  Havoc Pennington  <hp@pobox.com>
10701
10702         * mono/Test.cs (class Test): fire up a main loop and run it
10703
10704         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10705         done once, the app has to do it
10706
10707 2003-06-26  Havoc Pennington  <hp@pobox.com>
10708
10709         * mono/Connection.cs: set up connection with the glib main loop
10710
10711 2003-07-01  Havoc Pennington  <hp@redhat.com>
10712
10713         * doc/dbus-specification.sgml: clarify the format of a type code,
10714         change suggested by Jim Blandy
10715
10716 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10717
10718         * doc/Makefile.am:
10719         * tools/Makefile.am: Don't assume srcdir == builddir.
10720
10721         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10722         the allocated block.
10723         (_dbus_memory_test): New function.
10724         * dbus/dbus-test.h: Add _dbus_memory_test ().
10725         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10726
10727         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10728         of %c%c%c%c.
10729         (dbus_message_new): Remove obsolete @todo.
10730
10731         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10732         (_dbus_marshal_set_uint64): Fix comment.
10733
10734         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10735         hardcode FIELD_REPLY_SERIAL.
10736
10737         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10738         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10739
10740         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10741         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10742
10743 2003-06-24  Havoc Pennington  <hp@pobox.com>
10744
10745         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10746
10747 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10748
10749         * configure.in:
10750         * gcj/.cvsignore:
10751         * gcj/Hello.java:
10752         * gcj/Makefile.am:
10753         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10754         * gcj/org/.cvsignore:
10755         * gcj/org/Makefile.am:
10756         * gcj/org/freedesktop/.cvsignore:
10757         * gcj/org/freedesktop/Makefile.am:
10758         * gcj/org/freedesktop/dbus/.cvsignore:
10759         * gcj/org/freedesktop/dbus/Makefile.am:
10760         * gcj/org/freedesktop/dbus/Message.java: (Message),
10761         (Message.Message):
10762         * gcj/org/freedesktop/dbus/natMessage.cc:
10763         Fix the build system.
10764
10765 2003-06-22  Havoc Pennington  <hp@pobox.com>
10766
10767         * mono/Connection.cs: add more bindings
10768
10769         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10770         more than once.
10771
10772 2003-06-22  Havoc Pennington  <hp@pobox.com>
10773
10774         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10775         Start wrapping more stuff.
10776
10777 2003-06-22  Havoc Pennington  <hp@pobox.com>
10778
10779         * mono/Message.cs: implement Message.Wrap() that ensures we only
10780         have a single C# wrapper per DBusMessage, assuming it works which
10781         it probably doesn't.
10782
10783         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10784         (dbus_message_free_data_slot): new
10785         (dbus_message_set_data): new
10786         (dbus_message_get_data): new
10787
10788 2003-06-22  Havoc Pennington  <hp@pobox.com>
10789
10790         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10791         (_dbus_data_slot_allocator_alloc): rework these to keep a
10792         reference count on each slot and automatically manage a global
10793         slot ID variable passed in by address
10794
10795         * bus/bus.c: convert to new dataslot API
10796
10797         * dbus/dbus-bus.c: convert to new dataslot API
10798
10799         * dbus/dbus-connection.c: convert to new dataslot API
10800
10801         * dbus/dbus-server.c: convert to new dataslot API
10802
10803         * glib/dbus-gmain.c: ditto
10804
10805         * bus/test.c: ditto
10806
10807         * bus/connection.c: ditto
10808
10809 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10810
10811         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10812         after the gcj checks so that the correct configuration tags
10813         will be added to libtool.
10814
10815         * dbus-glib-1.pc.in: No need to specify any includes since
10816         dbus-1.pc.in has those.
10817
10818 2003-06-22  Havoc Pennington  <hp@pobox.com>
10819
10820         * mono/*, gcj/*, configure.in, Makefile.am:
10821         Check in makefiles and subdirs for mono and gcj bindings.
10822         Neither binding actually exists, just trying to get through
10823         all the build and other boring bits.
10824
10825 2003-06-21  Philip Blundell  <philb@gnu.org>
10826
10827         * tools/dbus-monitor.1: Updated.
10828
10829         * tools/dbus-send.1: Likewise.
10830
10831 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10832
10833         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10834         for hangup and error after checking read so we won't discard
10835         pending data if both hangup and read are set.
10836
10837 2003-06-19  Philip Blundell  <philb@gnu.org>
10838
10839         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10840
10841         * tools/dbus-send.c: Accept both --system and --session.
10842
10843         * tools/dbus-monitor.c: Same here.
10844
10845 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10846
10847         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10848         from C++ (Patch by Miloslav Trmac).
10849
10850 2003-06-15  Joe Shaw  <joe@assbarn.com>
10851
10852         * configure.in: Check for socklen_t.
10853
10854         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10855
10856         * test/test-segfault.c: Add #include <sys/time.h>
10857
10858         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10859         dbus-launch needs it.
10860
10861 2003-06-09  Havoc Pennington  <hp@redhat.com>
10862
10863         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10864         SUN_LEN, it breaks abstract socket usage
10865
10866         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10867         starts of lines.
10868
10869 2003-06-04  Havoc Pennington  <hp@pobox.com>
10870
10871         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10872         using unix:abstract=/foo, and when listening in a tmpdir
10873         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10874
10875         * dbus/dbus-transport.c (_dbus_transport_open): support
10876         unix:abstract=/foo
10877
10878         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10879         support abstract sockets
10880
10881         * dbus/dbus-transport-unix.c
10882         (_dbus_transport_new_for_domain_socket): support abstract sockets
10883
10884         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10885         toggle as an argument, implement abstract namespace support
10886         (_dbus_listen_unix_socket): ditto
10887
10888         * configure.in: add --enable-abstract-sockets and implement
10889         a configure check for autodetection of the right value.
10890
10891 2003-06-01  Havoc Pennington  <hp@pobox.com>
10892
10893         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10894         in /tmp (though on Linux this will end up being useless,
10895         when we add abstract namespace support)
10896
10897         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10898         subst'ing it
10899
10900 2003-05-28  Colin Walters  <walters@verbum.org>
10901
10902         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10903
10904 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10905
10906         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10907
10908 2003-05-17  Colin Walters  <walters@gnu.org>
10909
10910         * tools/dbus-send.c: Don't exit with an error code if --help was
10911         passed.  Default to using the session bus instead of the system
10912         one.
10913
10914         * tools/dbus-launch.c: Ditto.
10915
10916         * tools/dbus-monitor.c: Ditto.
10917
10918         * tools/dbus-send.1: Update with new arguments.
10919
10920         * tools/dbus-launch.c: Emit code to export variables.  New
10921         arguments -s and -c to specify shell syntax, and a bit of code to
10922         autodetect syntax.  Also, allow specifying a program to run.
10923
10924         * tools/dbus-launch.1: Update with new arguments.
10925
10926         * tools/dbus-send.1: Ditto.
10927
10928         * tools/dbus-monitor.1: Ditto.
10929
10930 2003-05-17  Havoc Pennington  <hp@pobox.com>
10931
10932         * bus/config-parser.c (merge_included): merge in policies from
10933         child configuration file.
10934
10935         * bus/policy.c (bus_policy_merge): function to merge two policies
10936         together
10937
10938 2003-05-16  Havoc Pennington  <hp@redhat.com>
10939
10940         * dbus/dbus-connection.c: disable verbose lock spew
10941
10942         * tools/dbus-send.c: add --print-reply command line option
10943
10944         * tools/dbus-print-message.h (print_message): new util function
10945         shared by dbus-send and dbus-monitor
10946
10947         * tools/dbus-monitor.c (handler_func): exit on disconnect
10948
10949         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10950         disconnected, don't try to use the read_watch
10951
10952         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10953         so we can find this bug more easily
10954
10955 2003-05-16  Havoc Pennington  <hp@redhat.com>
10956
10957         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10958         NULL as DBusHashTable is annoyingly likely to do.
10959
10960 2003-05-16  Colin Walters  <walters@verbum.org>
10961
10962         * tools/dbus-monitor.c: Add --session argument and usage()
10963         function.
10964
10965         * tools/dbus-monitor.1: Update with new --session arg.
10966
10967         * bus/Makefile.am (install-data-hook): Create
10968         $(libdir)/dbus-1.0/services so that the session bus is happy.
10969
10970 2003-05-15  Havoc Pennington  <hp@redhat.com>
10971
10972         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10973         on non-x86. ifdef's are evil.
10974
10975 2003-05-15  Havoc Pennington  <hp@redhat.com>
10976
10977         * configure.in: 0.11
10978
10979         * NEWS: update
10980
10981         * bus/Makefile.am (initddir): apparently we are supposed to put
10982         init scripts in /etc/rc.d/init.d not /etc/init.d
10983
10984         * bus/Makefile.am: remove the "you must --enable-tests to make
10985         check" as it broke distcheck
10986
10987         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10988
10989 2003-05-13  James Willcox  <jwillcox@gnome.org>
10990
10991         * configure.in:
10992         * bus/activation.c: (bus_activation_service_created),
10993         (bus_activation_activate_service):
10994         * bus/driver.c: (bus_driver_send_service_deleted),
10995         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10996         (bus_driver_send_service_acquired),
10997         (bus_driver_send_welcome_message),
10998         (bus_driver_handle_list_services):
10999         * bus/session.conf.in:
11000         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
11001         (dbus_bus_service_exists), (dbus_bus_activate_service):
11002         * dbus/dbus-bus.h:
11003
11004         Add some convenience API which lets you activate a service, and did a
11005         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
11006         and dbus_message_get_args()
11007
11008 2003-05-11  Havoc Pennington  <hp@pobox.com>
11009
11010         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
11011         calling _dbus_marshal_validate_arg() for every byte in a byte
11012         array, etc.
11013
11014         * dbus/dbus-message-handler.c: use atomic reference counting to
11015         reduce number of locks slightly; the global lock in here sucks
11016
11017         * dbus/dbus-connection.c
11018         (_dbus_connection_update_dispatch_status_and_unlock): variant of
11019         update_dispatch_status that can be called with lock held; then use
11020         in a couple places to reduce locking/unlocking
11021         (dbus_connection_send): hold the lock over the whole function
11022         instead of acquiring it twice.
11023
11024         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
11025
11026         * bus/connection.c (bus_connections_setup_connection): fix access
11027         to already-freed memory.
11028
11029         * dbus/dbus-connection.c: keep a little cache of linked list
11030         nodes, to avoid using the global linked list alloc lock in the
11031         normal send-message case. Instead we just use the connection lock
11032         that we already have to take.
11033
11034         * dbus/dbus-list.c (_dbus_list_find_last): new function
11035
11036         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
11037         change to use a struct for the atomic type; fix docs,
11038         they return value before increment, not after increment.
11039
11040         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
11041         (_dbus_string_append_8_aligned): new functions to try to
11042         microoptimize this operation.
11043         (reallocate_for_length): break this out of set_length(), to
11044         improve profile info, and also so we can consider inlining the
11045         set_length() part.
11046
11047         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
11048         strings with some preallocation, cuts down on our calls to realloc
11049         a fair bit. Though if we can get the "move entire string to empty
11050         string" optimization below to kick in here, it would be better.
11051
11052         * dbus/dbus-string.c (_dbus_string_move): just call
11053         _dbus_string_move_len
11054         (_dbus_string_move_len): add a special case for moving
11055         an entire string into an empty string; we can just
11056         swap the string data instead of doing any reallocs.
11057         (_dbus_string_init_preallocated): new function
11058
11059 2003-05-11  Havoc Pennington  <hp@pobox.com>
11060
11061         Write a "test-profile" that does echo client-server with threads;
11062         profile reveals lock contention, memcpy/realloc of buffers, and
11063         UTF-8 validation as hot spots. 20% of lock contention eliminated
11064         with dbus_atomic_inc/dec implementation on x86.  Much remaining
11065         contention is global mempool locks for GList and DBusList.
11066
11067         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
11068         x86 implementation
11069
11070         * dbus/dbus-connection.c (struct DBusConnection): use
11071         dbus_atomic_t for the reference count
11072
11073         * dbus/dbus-message.c (struct DBusMessage): declare
11074         dbus_atomic_t values as volatile
11075
11076         * configure.in: code to detect ability to use atomic integer
11077         operations in assembly, from GLib patch
11078
11079         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
11080         time, tired of it being wrong in threads and forked processes
11081
11082         * glib/test-profile.c: a little program to bounce messages back
11083         and forth between threads and eat CPU
11084
11085         * dbus/dbus-connection.c: add debug spew macros for debugging
11086         thread locks; include config.h at top; fix deadlock in
11087         dbus_connection_flush()
11088
11089 2003-05-08  Havoc Pennington  <hp@pobox.com>
11090
11091         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
11092         data from getting written, and there wasn't a good reason to
11093         use _exit really.
11094
11095         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
11096         dbus_verbose lines in test coverage
11097         (main): add list of functions sorted by # of untested blocks
11098         to the coverage report
11099
11100         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
11101
11102         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
11103
11104         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
11105         extend test coverage
11106
11107         * test/data/auth/cancel.auth-script: test canceling an
11108         authentication
11109
11110         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
11111         aren't used. in CVS history if we end up needing them.
11112
11113 2003-05-04  Havoc Pennington  <hp@pobox.com>
11114
11115         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
11116         unit test
11117
11118         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
11119         function, which assumed length was in # of strings, not bytes
11120
11121         * dbus/dbus-message.c (_dbus_message_test): add tests for some
11122         missing coverage
11123
11124         * dbus/dbus-connection.c
11125         (_dbus_connection_queue_received_message): disable function for
11126         now, we are only using it in test mode
11127
11128         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11129         remove a mistaken FIXME
11130
11131 2003-05-04  Havoc Pennington  <hp@pobox.com>
11132
11133         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
11134         unlock mutex on successful return, patch from Anders Gustafsson
11135
11136 2003-05-04  Havoc Pennington  <hp@pobox.com>
11137
11138         * dbus-glib-1.pc.in (Requires): fix dependencies, from
11139         Anders Gustafsson
11140
11141 2003-05-04  Havoc Pennington  <hp@pobox.com>
11142
11143         * tools/dbus-launch.c: implement
11144
11145         * bus/main.c (main), bus/bus.c (bus_context_new):
11146         implement --print-pid and --fork
11147
11148 2003-05-03  Havoc Pennington  <hp@redhat.com>
11149
11150         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
11151         the address had no value, and add to test suite. Fix and
11152         regression test from Miloslav Trmac
11153
11154 2003-05-03  Havoc Pennington  <hp@pobox.com>
11155
11156         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
11157         watch is invalid when handled
11158
11159         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
11160         dbus-launch utility to launch the bus from a shell script.  Didn't
11161         actually implement dbus-launch yet, it's just a placeholder still.
11162
11163 2003-05-03  Havoc Pennington  <hp@pobox.com>
11164
11165         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
11166         daemon; also documents daemon config file, so replaces
11167         doc/config-file.txt. Corrected some stuff from config-file.txt in
11168         the process of moving it.
11169
11170 2003-05-03  Havoc Pennington  <hp@pobox.com>
11171
11172         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
11173         add some man pages
11174
11175 2003-05-03  Colin Walters  <walters@verbum.org>
11176
11177         * dbus/dbus-sysdeps.c (fill_user_info): Test against
11178         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
11179
11180         * Makefile.am: Update to use new .pc versioning scheme.
11181
11182 2003-05-02  Havoc Pennington  <hp@redhat.com>
11183
11184         * bus/system.conf.in: allow send/receive to/from message bus
11185         service
11186
11187 2003-04-30  Havoc Pennington  <hp@redhat.com>
11188
11189         * configure.in: print a note when building with unit tests and
11190         without assertions
11191
11192 2003-04-30  Havoc Pennington  <hp@redhat.com>
11193
11194         * Makefile.am: add a check-local that complains if you didn't
11195         configure with --enable-tests
11196
11197 2003-04-29  Havoc Pennington  <hp@redhat.com>
11198
11199         * glib/dbus-gmain.c: docs cleanups
11200
11201         * dbus/dbus-types.h: add docs on int64 types
11202
11203         * dbus/dbus-memory.c: fix docs to avoid putting private API in
11204         public API docs section
11205
11206 2003-04-29  Havoc Pennington  <hp@redhat.com>
11207
11208         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
11209         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
11210         parallel install API version, not with the D-BUS package version.
11211
11212         * HACKING: move some of README over here
11213
11214         * README: updates, and document API/ABI policy
11215
11216         * configure.in: reindentation
11217
11218 2003-04-29  Havoc Pennington  <hp@redhat.com>
11219
11220         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
11221         to use this library" to be sure people have the right
11222         expectations.
11223
11224 2003-04-28  Havoc Pennington  <hp@redhat.com>
11225
11226         * configure.in: add --enable-docs which by default is auto yes if
11227         doxygen and db2html found, no otherwise; but can be forced on/off
11228
11229         * doc/Makefile.am: conditionalize whether to build docs on
11230         --enable-docs
11231
11232 2003-04-28  Havoc Pennington  <hp@redhat.com>
11233
11234         * configure.in: 0.10
11235
11236         * NEWS: update
11237
11238         * bus/system.conf.in: add <includedir>system.d</includedir>
11239
11240         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
11241         username was provided but not uid
11242
11243         * bus/config-parser.c (struct BusConfigParser): keep track of
11244         whether the parser is toplevel or was included; change some
11245         of the error handling if it's included.
11246
11247 2003-04-27  Havoc Pennington  <hp@pobox.com>
11248
11249         Unbreak my code...
11250
11251         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11252         report correct status if we finish processing authentication
11253         inside this function.
11254
11255         * bus/activation.c (try_send_activation_failure): use
11256         bus_transaction_send_error_reply
11257
11258         * bus/connection.c (bus_connection_get_groups): return an error
11259         explaining the problem
11260
11261         * bus/bus.c (bus_context_check_security_policy): implement
11262         restriction here that inactive connections can only send the
11263         hello message. Also, allow bus driver to send anything to
11264         any recipient.
11265
11266         * bus/connection.c (bus_connection_complete): create the
11267         BusClientPolicy here instead of on-demand.
11268         (bus_connection_get_policy): don't return an error
11269
11270         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
11271         sender field in message being replied to
11272
11273         * bus/bus.c (bus_context_check_security_policy): fix silly typo
11274         causing it to return FALSE always
11275
11276         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
11277         we checked sender rather than destination
11278
11279 2003-04-25  Havoc Pennington  <hp@redhat.com>
11280
11281         test suite is slightly hosed at the moment, will fix soon
11282
11283         * bus/connection.c (bus_connections_expire_incomplete): fix to
11284         properly disable the timeout when required
11285         (bus_connection_set_name): check whether we can remove incomplete
11286         connections timeout after we complete each connection.
11287
11288         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
11289         probably still broken.
11290
11291         * bus/services.c (bus_registry_acquire_service): implement max
11292         number of services owned, and honor allow/deny rules on which
11293         services a connection can own.
11294
11295         * bus/connection.c (bus_connection_get_policy): report errors here
11296
11297         * bus/activation.c: implement limit on number of pending
11298         activations
11299
11300 2003-04-25  Havoc Pennington  <hp@redhat.com>
11301
11302         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
11303         where we used >= 0 instead of != DBUS_UID_UNSET.
11304
11305 2003-04-25  Havoc Pennington  <hp@redhat.com>
11306
11307         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
11308         were toggled without add/remove, fix from Anders Gustafsson
11309
11310 2003-04-24  Havoc Pennington  <hp@redhat.com>
11311
11312         * test/data/valid-config-files/basic.conf: add <limit> tags to
11313         this test
11314
11315         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
11316         <limit> tag in configuration file.
11317
11318 2003-04-24  Havoc Pennington  <hp@redhat.com>
11319
11320         * bus/dispatch.c: somehow missed some name_is
11321
11322         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
11323         (_dbus_timeout_set_interval): new
11324
11325         * bus/connection.c (bus_connections_setup_connection): record time
11326         when each connection is first set up, and expire them after the
11327         auth timeout passes.
11328
11329 2003-04-24  Havoc Pennington  <hp@redhat.com>
11330
11331         * dbus/dbus-message.c (dbus_message_name_is): rename
11332         (dbus_message_service_is): rename
11333         (dbus_message_sender_is): rename
11334         (dbus_message_get_service): rename
11335
11336 2003-04-24  Havoc Pennington  <hp@redhat.com>
11337
11338         * configure.in: add --enable-checks
11339
11340         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11341
11342         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11343         to use thread locks.
11344         (_dbus_connection_handler_destroyed_locked): move some private
11345         functions into proper docs group
11346
11347         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11348         _dbus_return_val_if_fail
11349
11350         Throughout: use dbus_return_if_fail
11351
11352 2003-04-23  James Willcox  <jwillcox@gnome.org>
11353
11354         * glib/dbus-glib.h:
11355         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11356         (dbus_connection_setup_with_g_main),
11357         (dbus_server_setup_with_g_main):
11358         * glib/test-dbus-glib.c: (main):
11359         * glib/test-thread-client.c: (main):
11360         * glib/test-thread-server.c: (new_connection_callback), (main):
11361         * tools/dbus-monitor.c: (main):
11362
11363         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11364         and dbus_server_setup_with_g_main().
11365
11366 2003-04-20  Havoc Pennington  <hp@pobox.com>
11367
11368         * doc/dbus-specification.sgml: document the restrictions on
11369         message and service names
11370
11371 2003-04-22  Havoc Pennington  <hp@redhat.com>
11372
11373         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11374         support, and do some code cleanups to share more code and
11375         speed up array marshal/demarshal.
11376
11377         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11378
11379         * configure.in: generate dbus-arch-deps.h
11380
11381         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11382         64-bit typecodes
11383
11384 2003-04-22  Havoc Pennington  <hp@redhat.com>
11385
11386         * test/data/valid-messages/opposite-endian.message: fix test
11387         to use proper type for rply field
11388
11389         * test/data/invalid-messages: add tests for below validation
11390
11391         * dbus/dbus-message.c (decode_header_data): validate field types,
11392         and validate that named fields are valid names
11393         (decode_name_field): consider messages in the
11394         org.freedesktop.Local. namespace to be invalid.
11395
11396         * dbus/dbus-string.c (_dbus_string_validate_name): new
11397
11398 2003-04-19  Havoc Pennington  <hp@pobox.com>
11399
11400         * bus/driver.c (bus_driver_handle_hello): check limits and
11401         return an error if they are exceeded.
11402
11403         * bus/connection.c: maintain separate lists of active and inactive
11404         connections, and a count of each. Maintain count of completed
11405         connections per user. Implement code to check connection limits.
11406
11407         * dbus/dbus-list.c (_dbus_list_unlink): export
11408
11409         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11410         number of bytes in the message queue for a connection
11411
11412 2003-04-18  Havoc Pennington  <hp@pobox.com>
11413
11414         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11415
11416         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11417         memleaks
11418
11419         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11420         on realloc be sure to update the pointer in the keyring
11421
11422         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11423         offset to avoid writing to unallocated memory
11424
11425         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11426         try the next mechanism, so we properly handle OOM
11427
11428         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11429         on OOM.
11430         (_dbus_keyring_new): fix OOM bug
11431         (_dbus_keyring_new_homedir): always set error; impose a maximum
11432         number of keys we'll load from the file, mostly to speed up the
11433         test suite and make its OOM checks more useful, but also for
11434         general sanity.
11435
11436         * dbus/dbus-auth.c (process_error_server): reject authentication
11437         if we get an error from the client
11438         (process_cancel): on cancel, send REJECTED, per the spec
11439         (process_error_client): send CANCEL if we get an error from the
11440         server.
11441
11442 2003-04-18  Havoc Pennington  <hp@pobox.com>
11443
11444         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11445         debug spew
11446
11447         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11448         handling problem
11449
11450         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11451         about DBUS_TEST_HOMEDIR once
11452
11453         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11454         the environment
11455
11456         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11457         config file so we test the right thing
11458
11459         Throughout: assorted docs improvements
11460
11461 2003-04-18  Havoc Pennington  <hp@pobox.com>
11462
11463         * glib/dbus-gmain.c: adapt to watch changes
11464
11465         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11466
11467         * dbus/dbus-server.h: remove dbus_server_handle_watch
11468
11469         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11470
11471         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11472         like DBusTimeout, so we don't need dbus_connection_handle_watch
11473         etc.
11474
11475 2003-04-17  Havoc Pennington  <hp@redhat.com>
11476
11477         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11478         database usage so it all goes via the DBusUserDatabase cache.
11479
11480 2003-04-17  Havoc Pennington  <hp@redhat.com>
11481
11482         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11483         there was an OOM watch we skipped, we always return TRUE so we
11484         iterate again to have a look at it again. Fixes test suite hang.
11485         Code rearrangement also lets us lose some memset and only iterate
11486         over callbacks once.
11487
11488         * bus/driver.c (bus_driver_handle_message): sense of test for
11489         reply was backward
11490
11491 2003-04-16  Havoc Pennington  <hp@pobox.com>
11492
11493         * doc/dbus-specification.sgml: make spec say serials are unsigned
11494
11495         * dbus/dbus-message.h: change message serials to unsigned
11496
11497         * dbus/dbus-connection.c: adapt to message serials being unsigned
11498
11499 2003-04-15  Havoc Pennington  <hp@pobox.com>
11500
11501         * bus/bus.c: create and keep around a shared DBusUserDatabase
11502         object.
11503
11504         * bus/connection.c (bus_connection_get_groups): don't cache
11505         groups for user in the connection object, since user database
11506         object now does that.
11507
11508 2003-04-16  Havoc Pennington  <hp@redhat.com>
11509
11510         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11511         list of size counters
11512         (_dbus_message_loader_putback_message_link): put back a popped link
11513
11514         * dbus/dbus-connection.c
11515         (dbus_connection_set_max_live_messages_size): rename
11516         max_received_size
11517         (dbus_connection_get_outgoing_size): get size of outgoing
11518         queue
11519         (_dbus_connection_set_connection_counter): remove this cruft
11520
11521 2003-04-14  Havoc Pennington  <hp@redhat.com>
11522
11523         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11524         caching, but at some point we might want to be able to use a
11525         different database.
11526
11527         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11528         SHA1 conf file to test the sha1 auth mechanism, since the regular
11529         test always uses EXTERNAL when available.
11530
11531         * configure.in,
11532         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11533         add conf file that requires use of sha1 auth
11534
11535 2003-04-13  Havoc Pennington  <hp@pobox.com>
11536
11537         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11538         from Philip Blundell to send messages and monitor them.
11539
11540 2003-04-13  Havoc Pennington  <hp@pobox.com>
11541
11542         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11543         callbacks
11544
11545         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11546         users
11547
11548         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11549         fix to only recover unused bytes if we're already authenticated
11550         (_dbus_transport_get_is_authenticated): fix to still mark us
11551         authenticated if there are unused bytes.
11552
11553         * bus/dispatch.c: implement security policy checking
11554
11555         * bus/connection.c (bus_transaction_send_from_driver): new
11556
11557         * bus/bus.c (bus_context_check_security_policy): new
11558
11559         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11560         now we just set the DBusError and it gets converted to an error
11561         reply.
11562
11563         * bus/connection.c (allow_user_function): enable code using actual
11564         data from the config file
11565
11566         * bus/policy.c (list_allows_user): handle wildcard rules for
11567         user/group connection perms
11568
11569 2003-04-13  Havoc Pennington  <hp@pobox.com>
11570
11571         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11572
11573         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11574
11575         * bus/policy.c (bus_policy_append_mandatory_rule)
11576         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11577         (bus_policy_append_group_rule): new functions
11578
11579 2003-04-12  Havoc Pennington  <hp@pobox.com>
11580
11581         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11582
11583         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11584         the pid/gid/uid, just for paranoia.
11585
11586         * test/break-loader.c (randomly_do_n_things): find a byte
11587         containing a type code, and randomly change it to a different
11588         type code.
11589
11590 2003-04-12  Havoc Pennington  <hp@pobox.com>
11591
11592         * bus/policy.h: change BusPolicy to be the thing from the config
11593         file, and rename old BusPolicy to BusClientPolicy
11594
11595         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11596         match change in how policy works
11597
11598         * dbus/dbus-internals.h: mark assert_not_reached as
11599         __attribute((noreturn))__
11600
11601 2003-04-11  Havoc Pennington  <hp@redhat.com>
11602
11603         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11604         the broadcast service. Use boolean return for ServiceExists.
11605
11606 2003-04-11  Havoc Pennington  <hp@redhat.com>
11607
11608         * configure.in: add another directory to look for qt in.
11609
11610 2003-04-11  Havoc Pennington  <hp@redhat.com>
11611
11612         * AUTHORS: add Colin Walters
11613
11614 2003-04-11  Havoc Pennington  <hp@redhat.com>
11615
11616         * NEWS: update
11617
11618         * configure.in: 0.9
11619
11620 2003-04-11  Havoc Pennington  <hp@redhat.com>
11621
11622         * bus/messagebus.in: remove pid file when stopping the
11623         message bus, since the bus won't have privileges to remove it
11624         itself.
11625
11626 2003-04-11  Havoc Pennington  <hp@redhat.com>
11627
11628         * bus/bus.c (bus_context_new): move credentials change after
11629         creating pidfile
11630
11631 2003-04-11  Havoc Pennington  <hp@pobox.com>
11632
11633         * test/decode-gcov.c: add "below average functions" to the
11634         coverage report, and change how some of the code works.
11635
11636         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11637         not in the coverage stats.
11638
11639         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11640         couple places so running the test suite doesn't result in megaspam.
11641
11642 2003-04-11  Havoc Pennington  <hp@pobox.com>
11643
11644         * bus/dispatch.c (check_existent_service_activation): accept a no
11645         memory error in a place we didn't before
11646
11647         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11648         in case the first one failed," since the test suite is less
11649         broken now.
11650
11651 2003-04-10  Havoc Pennington  <hp@pobox.com>
11652
11653         * bus/dispatch.c (check_segfault_service_activation): add test
11654         for launching an executable that just crashes.
11655
11656         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11657         don't leave a million cores. We'll see how portable this is.
11658
11659 2003-04-10  Havoc Pennington  <hp@pobox.com>
11660
11661         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11662         the possible parent failures before we fork, so that we don't
11663         fail to create a babysitter after creating the child.
11664
11665         * bus/activation.c (bus_activation_activate_service): kill child
11666         if we don't successfully complete the activation.
11667
11668 2003-04-10  Havoc Pennington  <hp@redhat.com>
11669
11670         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11671         the connection if it's disconnected
11672
11673         * bus/activation.c (bus_activation_service_created): use new
11674         transaction features to roll back removal of pending activation if
11675         we don't successfully create the service after all. Don't remove
11676         pending activation if the function fails.
11677
11678         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11679         (_dbus_list_insert_after_link): new code to facilitate
11680         services.c fixes
11681
11682         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11683         new functionality, so we can preallocate the ability to insert
11684         into a hash table.
11685
11686         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11687         allowing us to put custom hooks in a transaction to be used for
11688         cancelling said transaction
11689
11690         * doc/dbus-specification.sgml: add some discussion of secondary
11691         service owners, and disallow zero-length service names
11692
11693         * bus/services.c (bus_registry_acquire_service): new function,
11694         splits out part of bus_driver_handle_acquire_service() and fixes
11695         a bug where we didn't remove the service doing the acquiring
11696         from the secondary queue if we failed to remove the current owner
11697         from the front of the queue.
11698
11699 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11700
11701         * doc/dbus-specification.sgml:
11702         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11703
11704 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11705
11706         * bus/.cvsignore:
11707         * glib/.cvsignore:
11708         * test/.cvsignore:
11709         Added files to cvsignore
11710
11711         * dbus/dbus-message.h:
11712         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11713         Make get_named() take two out argument and return a boolean.
11714         (dbus_message_iter_get_args_valist):
11715         Update usage of get_named().
11716         (dbus_message_iter_append_byte):
11717         Fix typo
11718         (dbus_message_iter_append_named)
11719         Fix typo
11720         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11721         More tests.
11722
11723 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11724
11725         * dbus/dbus-marshal.[ch]:
11726         Add array_type_pos argument to _dbus_marshal_validate_arg.
11727         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11728
11729         * dbus/dbus-message.[ch]:
11730         Multi-dimensional arrays have full type specification in the
11731         outermost array. Iter code re-arranged to handle this.
11732         Added some more iter tests.
11733
11734         * doc/dbus-specification.sgml:
11735         Add me to authors.
11736         Remove old FIXME.
11737         Update new array encoding description.
11738         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11739
11740         * test/data/invalid-messages/array-with-mixed-types.message:
11741         * test/data/valid-messages/array-of-array-of-uint32.message:
11742         Change to the new array format.
11743
11744         * test/data/invalid-messages/too-short-dict.message:
11745         Fix bug in test.
11746
11747         * test/data/valid-messages/recursive-types.message:
11748         Fix up and extend test.
11749
11750 2003-04-10  Havoc Pennington  <hp@pobox.com>
11751
11752         * bus/dispatch.c: lots of fixes
11753
11754         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11755         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11756         that was crack, broke the test service.
11757
11758         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11759         handling to avoid piling up errors if we get a failure on the
11760         first address.
11761
11762         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11763         pid in assertion failures.
11764
11765         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11766         to some fixed size of file descriptor array. Don't return TRUE
11767         anytime a timeout exists, that led to lots of busy loop silliness
11768         in the tests.
11769
11770 2003-04-09  Havoc Pennington  <hp@redhat.com>
11771
11772         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11773         I'd checked this in earlier but hadn't.
11774
11775 2003-04-09  Havoc Pennington  <hp@redhat.com>
11776
11777         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11778         the activation test (man this is getting old!)
11779
11780 2003-04-09  Havoc Pennington  <hp@redhat.com>
11781
11782         * test/test-utils.c: use dispatch status function to fix this up
11783
11784         * bus/connection.c (connection_watch_callback): don't dispatch
11785         from here
11786         (connection_timeout_callback): don't dispatch from here
11787         (bus_connections_setup_connection): set the dispatch status function
11788         (bus_connection_disconnected): unset it
11789
11790         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11791         used to add a connection to be dispatched
11792         (_dbus_loop_iterate): do the dispatching at the end of each
11793         iteration
11794
11795         * dbus/dbus-connection.c
11796         (dbus_connection_set_dispatch_status_function): new function
11797         allowing us to fix up main loop usage
11798         (_dbus_connection_last_unref): free all the various function
11799         user data
11800         (dbus_connection_dispatch): call the DispatchStatusFunction
11801         whenever this function returns
11802         (dbus_connection_handle_watch): call DispatchStatusFunction
11803         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11804         (reply_handler_timeout): call DispatchStatusFunction
11805         (dbus_connection_flush): call DispatchStatusFunction
11806
11807 2003-04-09  Havoc Pennington  <hp@redhat.com>
11808
11809         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11810         a memory leak
11811
11812         * bus/dispatch.c (check_service_activated): fix bug in test
11813
11814         * dbus/dbus-mainloop.c (check_timeout): fix this up
11815
11816         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11817         verbose output so we can sort out output from different processes,
11818         e.g. in the activation case.
11819
11820 2003-04-08  Colin Walters  <walters@gnu.org>
11821
11822         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11823         the pid file.
11824         (bus_context_new): Set it.
11825         (bus_context_unref): Use it to delete the pid file.
11826
11827 2003-04-08  Havoc Pennington  <hp@redhat.com>
11828
11829         * test/data/invalid-messages/array-with-mixed-types.message:
11830         regression test that fails for the moment
11831
11832         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11833         tests for convenience
11834
11835         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11836         array of nil, it broke things.
11837
11838         * test/data/invalid-messages/array-of-nil.message: regression test
11839
11840         * test/data/valid-messages/array-of-array-of-uint32.message:
11841         happened to write this so added it to suite
11842
11843 2003-04-08  Havoc Pennington  <hp@redhat.com>
11844
11845         * bus/driver.c (bus_driver_handle_acquire_service): init
11846         retval/reply before checking name
11847
11848         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11849         recursion depth argument
11850
11851         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11852         in the public struct for future extension
11853
11854         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11855         typo
11856
11857         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11858         message
11859
11860         * doc/dbus-specification.sgml: fix typo
11861
11862 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11863
11864         Implemented recursive types, named types and new-style iters
11865
11866         * bus/driver.c:
11867         * glib/test-thread-client.c: (thread_func):
11868         * glib/test-thread-server.c: (handle_test_message):
11869         * test/test-service.c: (handle_echo):
11870         Update to new api
11871
11872         * dbus/Makefile.am:
11873         * dbus/dbus-dict.c:
11874         * dbus/dbus-dict.h:
11875         * dbus/dbus.h
11876         Remove DBusDict
11877
11878         * dbus/dbus-internals.c: (_dbus_type_to_string):
11879         Update for new types.
11880
11881         * dbus/dbus-marshal.[ch]:
11882         Implement recursive types and the new marshalling format.
11883         Remove hardcoded dict marshalling.
11884         Marshal named types.
11885
11886         * dbus/dbus-message-builder.c:
11887         Add BYTE_ARRAY.
11888         Remove references to old types
11889
11890         * dbus/dbus-message.[ch]:
11891         New non-refcounted iter API that supports recursive iters.
11892         Use iters for appending, including support for recursive
11893         iters.
11894         Add byte and named type support.
11895         Update everything to new marshalling formats.
11896         Add tests for new API.
11897
11898         * dbus/dbus-protocol.h:
11899         Remove old array types.
11900         Add types: BYTE, ARRAY, DICT, NAMED
11901
11902         * dbus/dbus-string.c:
11903         * dbus/dbus-sysdeps.c:
11904         Make parse_double locale safe.
11905
11906         * dbus/dbus-test-main.c:
11907         Call setlocale.
11908
11909         * dbus/dbus-test.c:
11910         Kill dict test
11911
11912         * doc/dbus-specification.sgml:
11913         Update spec
11914
11915         * test/data/incomplete-messages/missing-body.message:
11916         * test/data/invalid-messages/bad-boolean.message:
11917         * test/data/invalid-messages/bad-boolean-array.message:
11918         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11919         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11920         * test/data/invalid-messages/too-short-dict.message:
11921         * test/data/valid-messages/dict-simple.message:
11922         * test/data/valid-messages/dict.message:
11923         * test/data/valid-messages/emptiness.message:
11924         * test/data/valid-messages/lots-of-arguments.message:
11925         * test/data/valid-messages/no-padding.message:
11926         * test/data/valid-messages/recursive-types.message:
11927         Add missing NAME fields
11928         Fix up dicts & arrays
11929
11930         * test/data/invalid-messages/dict-with-nil-value.message:
11931         Removed, this is not invalid anymore.
11932
11933         * test/data/valid-messages/recursive-types.message:
11934         Add new test for deeply recursive types.
11935
11936 2003-04-07  Havoc Pennington  <hp@pobox.com>
11937
11938         * bus/driver.c (bus_driver_handle_acquire_service): return an
11939         error if you try to acquire a service that starts with ':'
11940
11941 2003-04-07  Havoc Pennington  <hp@redhat.com>
11942
11943         * doc/dbus-specification.sgml: require that base service names
11944         start with ':' and that the base service is created/deleted
11945         as first and last things a connection does on the bus
11946
11947         * bus/dispatch.c (check_existent_service_activation): lots more
11948         work on the activation test; it doesn't fully pass yet...
11949
11950         * test/test-service.c (main): fix so we don't memleak the
11951         connection to the message bus
11952         (filter_func): accept a message asking us to exit
11953
11954 2003-04-06  Havoc Pennington  <hp@pobox.com>
11955
11956         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11957         from Colin Walters
11958
11959         * configure.in: fixes to Qt detection from Colin Walters
11960
11961         * doc/Makefile.am: Only remove generated docbook dirs if they
11962         exist, from Colin Walters
11963
11964         * dbus/dbus-bus.c: change how we set well-known connections to
11965         NULL, so that it works if a single connection is stored in
11966         two well-known array slots.
11967
11968         * test/Makefile.am: remove a lot of stuff that isn't immediately
11969         useful, it's in CVS history if we want it.
11970
11971         * test/test-service.c: use dbus-mainloop instead of that
11972         watch.[hc] crack
11973
11974 2003-04-06  Havoc Pennington  <hp@pobox.com>
11975
11976         * dbus/Makefile.am: split lists of sources into stuff that goes in
11977         the library, util functions that go in the lib and are also used
11978         elsewhere, and util functions that are used in tests/daemon but
11979         don't go in the lib.
11980
11981         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11982         here so it can be used in test binaries also
11983
11984 2003-04-06  Havoc Pennington  <hp@pobox.com>
11985
11986         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11987         here in the parent process, so we can return an error if it
11988         fails. Also, move some of the code into the child so the parent
11989         is less hosed if we fail midway through.
11990
11991         * bus/bus.c (bus_context_new): move pidfile detection further up
11992         in the function, before we start overwriting sockets and such.
11993
11994         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11995
11996         * configure.in: add --with-system-pid-file and --with-system-socket
11997
11998 2003-04-06  Colin Walters  <walters@verbum.org>
11999
12000         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
12001
12002         * bus/system.conf.in: Declare a pidfile.
12003
12004         * bus/bus.c (bus_context_new): Test for an existing pid file, and
12005         create one (if appropriate).
12006
12007         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
12008         (struct BusConfigParser) [pidfile]: New.
12009         (element_type_to_name, merge_included, start_busconfig_child)
12010         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
12011         (bus_config_parser_unref): Free it.
12012         (bus_config_parser_get_pidfile): New function.
12013
12014         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
12015
12016         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
12017
12018         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
12019
12020         * dbus/dbus-sysdeps.h: Prototype it.
12021
12022 2003-04-06  Havoc Pennington  <hp@pobox.com>
12023
12024         * bus/bus.c (bus_context_new): print the address in here, rather
12025         than in main(), because we need to do it before forking the daemon
12026
12027         * bus/dispatch.c (send_service_nonexistent_error): set the sender
12028         on the service nonexistent error
12029
12030         * bus/driver.c (bus_driver_handle_acquire_service): set the
12031         sender on the AcquireService reply
12032
12033         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
12034         server also listen on a UNIX socket so services can connect to it.
12035
12036 2003-04-06  Havoc Pennington  <hp@pobox.com>
12037
12038         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
12039         so it detects deadlocks and also we actually init threads when
12040         debugging.
12041
12042 2003-04-06  Havoc Pennington  <hp@pobox.com>
12043
12044         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
12045         save the domain socket name, and unlink it when we disconnect the
12046         server. Means that at least when we exit normally, we won't leave
12047         a bunch of junk in /tmp
12048
12049         * dbus/dbus-transport-unix.c
12050         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
12051         memory management). (I was making a real change here but then
12052         didn't)
12053
12054 2003-04-06  Havoc Pennington  <hp@pobox.com>
12055
12056         * bus/bus.c (bus_context_new): fix wrong handling of
12057         server_data_slot_unref() in the error case.
12058
12059         * dbus/dbus-internals.h (_dbus_assert): change so it passes
12060         "(condition) != 0" to _dbus_real_assert so that
12061         "_dbus_assert (pointer)" doesn't cause a warning
12062
12063         * bus/main.c (main): accept --print-address option to print out
12064         the message bus address
12065
12066         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
12067
12068         * dbus/dbus-transport.c (_dbus_transport_open): special error for
12069         "tmpdir" option to unix: address on client side
12070
12071         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
12072         to unix: address
12073
12074         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
12075         we can use to create sockets in the test suite.
12076
12077         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
12078         cleanly. To be used for testing.
12079
12080         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
12081
12082         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
12083
12084         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12085         handle trying to call this when there's no servers active
12086
12087 2003-04-05  Havoc Pennington  <hp@pobox.com>
12088
12089         * NEWS: update
12090
12091         * configure.in: 0.8
12092
12093 2003-04-05  Havoc Pennington  <hp@pobox.com>
12094
12095         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
12096         crash on startup. Need to get "try starting the daemon"
12097         in the test suite I guess. ;-)
12098
12099         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
12100         tracked the number of open connections; it's better done in
12101         application-specific code as you want it to span all servers etc.
12102
12103 2003-04-05  Havoc Pennington  <hp@pobox.com>
12104
12105         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
12106         patch from Colin Walters
12107
12108 2003-04-05  Havoc Pennington  <hp@pobox.com>
12109
12110         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
12111         reality; in fact multiple mechanisms are allowed.
12112
12113         * dbus/dbus-internals.c (_dbus_real_assert)
12114         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
12115         _dbus_assert_not_reached() into functions, so that they don't show
12116         up in basic block counts for test coverage, and don't use up as
12117         much disk space. Does mean slower execution speed though, so
12118         assumes --disable-asserts is the normal production case.
12119
12120 2003-04-05  Havoc Pennington  <hp@pobox.com>
12121
12122         * test/Makefile.am (dist-hook): also dist *.in files
12123
12124         * NEWS: update
12125
12126         * configure.in: 0.7
12127
12128 2003-04-05  Havoc Pennington  <hp@pobox.com>
12129
12130         * dbus/dbus-string.c: docs warning
12131
12132         * dbus/dbus-spawn.c: missing docs
12133
12134         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
12135
12136 2003-04-05  Havoc Pennington  <hp@pobox.com>
12137
12138         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
12139         magic from GLib
12140
12141         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
12142         to -1 once we've reaped the babysitter
12143         (_dbus_babysitter_handle_watch): do as much work as we can, not
12144         just one go of it
12145
12146         * bus/activation.c: add code using DBusBabysitter so that we
12147         handle it when a service fails to start up properly.
12148         (bus_activation_service_created): don't remove the activation
12149         entries as we go, just let them get removed when we free the pending
12150         activation. Unref reply messages after sending them.
12151
12152 2003-04-05  Havoc Pennington  <hp@pobox.com>
12153
12154         * test/decode-gcov.c (main): print per-directory stats in the report
12155
12156         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
12157
12158 2003-04-05  Havoc Pennington  <hp@pobox.com>
12159
12160         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
12161
12162         * test/decode-gcov.c: hack up a little program to suck data
12163         out of gcov files. Yes this is sort of silly.
12164
12165         * configure.in: define something in config.h and do an
12166         AM_CONDITIONAL when gcov is enabled
12167
12168 2003-04-04  Havoc Pennington  <hp@redhat.com>
12169
12170         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
12171         return a "babysitter" object that is used to monitor the status of
12172         the spawned process and reap it when required.
12173
12174         * test/test-segfault.c, test/test-exit.c,
12175         test/test-sleep-forever.c: binaries that do various lame things,
12176         used in the test suite.
12177
12178         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
12179
12180 2003-04-03  Havoc Pennington  <hp@pobox.com>
12181
12182         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
12183         in preparation for modifying it, dbus-sysdeps is getting
12184         a bit unmanageable.
12185
12186 2003-04-03  Havoc Pennington  <hp@redhat.com>
12187
12188         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
12189         have multiple ones
12190
12191         * bus/*.[hc]: adapt to mainloop change
12192
12193 2003-04-03  Havoc Pennington  <hp@redhat.com>
12194
12195         * bus/activation.c (load_directory): fix up memleaks
12196         (bus_activation_entry_free): free the entry
12197
12198         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
12199         we get one from the message bus; fix memleaks.
12200
12201         * dbus/dbus-message.c (dbus_set_error_from_message): new function
12202
12203 2003-04-03  Havoc Pennington  <hp@pobox.com>
12204
12205         * bus/config-parser.c (bus_config_parser_unref): free
12206         list of mechanisms, bug discovered by test suite enhancements
12207         (putting system.conf and session.conf into suite)
12208
12209         * test/Makefile.am, test/test-service.c: add placeholder for a
12210         test service that we'll activate as part of test suite. Doesn't
12211         do anything yet.
12212
12213         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
12214         setting NULL value, and use system malloc not dbus_malloc()
12215         when we have unavoidable memleakage.
12216
12217         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
12218         didn't work, and support DBUS_BUS_ACTIVATION.
12219
12220         * bus/activation.c (child_setup): pass our well-known bus type to
12221         the child
12222
12223         * bus/config-parser.c: support <type> to specify well-known type
12224
12225         * doc/dbus-specification.sgml: document the env variables to
12226         locate well-known buses and find service activator
12227
12228 2003-04-02  Havoc Pennington  <hp@redhat.com>
12229
12230         * test/Makefile.am (all-local): add a rule to copy tests to
12231         builddir, so we can have generated tests. Use this to remove the
12232         silly hack for testing system.conf and session.conf. Will use this
12233         shortly to generate .service files pointing to test binaries.
12234
12235 2003-04-02  Havoc Pennington  <hp@redhat.com>
12236
12237         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
12238         current alloc and needed new length, not max of the doubled
12239         allocation and needed new length. Also, when building tests,
12240         don't do the double-allocation stuff, just realloc every time.
12241
12242 2003-04-02  Havoc Pennington  <hp@redhat.com>
12243
12244         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
12245         in error messages
12246         (_dbus_string_get_dirname): new
12247         (_dbus_sysdeps_test): new
12248         (_dbus_directory_open): include dirnames in error messages
12249
12250         * bus/config-parser.c: interpret <include> and <includedir> and
12251         <servicedir> relative to config file location if the given
12252         filename is not absolute.
12253
12254         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
12255
12256 2003-04-02  Havoc Pennington  <hp@redhat.com>
12257
12258         * bus/connection.c (bus_transaction_send_error_reply): set sender
12259         service for the error, and unref the reply on success
12260
12261         * bus/activation.c: convert to use BusTransaction so OOM can be
12262         handled correctly
12263         (bus_activation_service_created): set sender of the message
12264
12265 2003-04-01  Havoc Pennington  <hp@redhat.com>
12266
12267         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
12268         <includedir> (at least mostly)
12269
12270         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
12271         first, then the user ID
12272
12273 2003-04-01  Havoc Pennington  <hp@pobox.com>
12274
12275         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
12276         function
12277
12278         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
12279
12280         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
12281
12282         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
12283         socket 0777, and unlink any existing socket.
12284
12285         * bus/bus.c (bus_context_new): change our UID/GID and fork if
12286         the configuration file so specifies; set up auth mechanism
12287         restrictions
12288
12289         * bus/config-parser.c (bus_config_parser_content): add support
12290         for <fork> option and fill in code for <auth>
12291
12292         * bus/system.conf.in: add <fork/> to default configuration,
12293         and limit auth mechanisms to EXTERNAL
12294
12295         * doc/config-file.txt (Elements): add <fork>
12296
12297         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
12298         (_dbus_change_identity): new function
12299
12300 2003-03-31  Havoc Pennington  <hp@redhat.com>
12301
12302         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
12303         (_dbus_listen_unix_socket): fix off-by-one error in null
12304         termination spotted by Nalin
12305
12306 2003-03-31  Havoc Pennington  <hp@redhat.com>
12307
12308         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
12309         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
12310         having a real home directory available.
12311
12312 2003-03-31  Havoc Pennington  <hp@redhat.com>
12313
12314         * bus/Makefile.am (install-data-hook): create /var/run/dbus
12315
12316         * bus/messagebus.in: add init script for Red Hat /etc/init.d
12317
12318         * configure.in: add support for specifying a style of init script
12319         to install
12320
12321 2003-03-31  Havoc Pennington  <hp@redhat.com>
12322
12323         Fix some annoying DBusString API and fix all affected code.
12324
12325         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
12326         max_length argument
12327         (_dbus_string_get_data): change to return string instead of using
12328         an out param
12329         (_dbus_string_get_const_data): ditto
12330         (_dbus_string_get_data_len): ditto
12331         (_dbus_string_get_const_data_len): ditto
12332
12333 2003-03-31  Havoc Pennington  <hp@redhat.com>
12334
12335         * bus/main.c (main): fix up the command line arguments to be nicer
12336
12337 2003-03-31  Havoc Pennington  <hp@redhat.com>
12338
12339         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12340         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12341         final location that lands in the config file
12342
12343         * bus/config-loader-expat.c (bus_config_load): fix type of
12344         XML_Parser variable
12345
12346         * doc/TODO: remove TODO item for dbus_bus_get()
12347
12348         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12349
12350 2003-03-31  Havoc Pennington  <hp@pobox.com>
12351
12352         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12353         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12354         argument since they are always client side
12355
12356         * dbus/dbus-server.c (dbus_server_get_address): new function
12357
12358         * bus/main.c (main): take the configuration file as an argument.
12359
12360         * test/data/valid-config-files/debug-allow-all.conf: new file to
12361         use with dispatch.c tests for example
12362
12363         * bus/test-main.c (main): require test data dir
12364
12365         * bus/bus.c (bus_context_new): change this to take a
12366         configuration file name as argument
12367
12368         * doc/config-file.txt (Elements): add <servicedir>
12369
12370         * bus/system.conf, bus/session.conf: new files
12371
12372         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12373         well-known socket if none set
12374
12375         * configure.in: create system.conf and session.conf
12376
12377 2003-03-30  Havoc Pennington  <hp@pobox.com>
12378
12379         * bus/config-parser.c: hacking
12380
12381         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12382         to shut down, since it could cause weirdness with the DBusList
12383         lock
12384
12385         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12386         link-oriented stack routines
12387         (alloc_link): free the mempool if the first alloc from it fails
12388
12389         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12390
12391         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12392         from GLib
12393         (_dbus_string_skip_white): new
12394
12395         * doc/config-file.txt (Elements): add <includedir>
12396
12397 2003-03-28  Havoc Pennington  <hp@pobox.com>
12398
12399         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12400         (_dbus_string_copy_data): new functions
12401
12402 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12403
12404         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12405         * dbus/dbus-bus.h:
12406         Add dbus_bus_get.
12407
12408         * dbus/dbus-memory.c:
12409         Fix a doc comment.
12410
12411 2003-03-28  Havoc Pennington  <hp@pobox.com>
12412
12413         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12414         I think it may have just been superstition. Not sure.
12415
12416         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12417         failures that were not being handled.
12418
12419         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12420
12421         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12422         row that will fail on out-of-memory.
12423
12424         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12425         function for testing out-of-memory handling.
12426
12427         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12428         allocation functions, they do map exactly to the expat ones.
12429
12430 2003-03-27  Havoc Pennington  <hp@redhat.com>
12431
12432         * bus/config-loader-libxml.c (bus_config_load): add another error
12433         check
12434
12435 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12436
12437         * doc/TODO:
12438         Add note about automatic service activation.
12439
12440         * doc/dbus-specification.sgml:
12441         Rename the specification and clarify a few things.
12442
12443 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12444
12445         * Doxyfile.in:
12446         * dbus/dbus-address.c:
12447         * dbus/dbus-dict.c:
12448         * dbus/dbus-marshal.c:
12449         * dbus/dbus-server-debug-pipe.c:
12450         * dbus/dbus-transport-unix.c:
12451         Fix documentation warnings.
12452
12453 2003-03-26  Havoc Pennington  <hp@pobox.com>
12454
12455         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12456         after every test so it's quick and easy to see which leaked, and
12457         so we test multiple dbus_shutdown() calls
12458
12459         * configure.in: change configure.in XML stuff to also support
12460         expat
12461
12462         * config-loader-libxml.c: some hacking
12463
12464         * config-loader-expat.c: some hacking
12465
12466         * config-parser.c: some hacking, plus tests
12467
12468 2003-03-25  Havoc Pennington  <hp@redhat.com>
12469
12470         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12471
12472         * configure.in: add --with-xml option to specify XML library,
12473         right now only libxml is supported.
12474
12475         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12476         nonworking code between home and work, still just stubs
12477
12478 2003-03-24  Havoc Pennington  <hp@redhat.com>
12479
12480         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12481         file
12482
12483         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12484         NULL argument for "message" if the error is a well-known one,
12485         fill in a generic message in this case.
12486
12487         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12488         favor of DBusError
12489
12490         * bus/test.c (bus_test_flush_bus): add
12491
12492         * bus/policy.c (bus_policy_test): test code stub
12493
12494 2003-03-24  Havoc Pennington  <hp@pobox.com>
12495
12496         * bus/connection.c (bus_connections_setup_connection): set up
12497         the "can this user connect" function, but it always returns
12498         TRUE until we have a config file parser so we can have a config
12499         file that allows connections.
12500
12501 2003-03-23  Havoc Pennington  <hp@pobox.com>
12502
12503         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12504         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12505         the mutex, so we can check for proper memory management
12506         and OOM handling.
12507
12508         * dbus/dbus-dataslot.c: remove the mutex from
12509         DBusDataSlotAllocator and lock it manually when using it,
12510         to simplify fitting it into the global slots framework.
12511
12512         * dbus/dbus-threads.c (init_static_locks): rework how we're
12513         handling global locks so they are easily shut down.
12514
12515         * bus/policy.c (bus_policy_append_rule): fix
12516
12517         * bus/test-main.c (main): check for memleaks
12518
12519         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12520         test suite check for memleaks
12521
12522         * dbus/dbus-memory.c: add support in test mode for tracking
12523         number of outstanding blocks
12524
12525 2003-03-23  Havoc Pennington  <hp@pobox.com>
12526
12527         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12528         policies code
12529
12530         * dbus/dbus-hash.h: add ULONG hash keys
12531
12532         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12533         (_dbus_get_group_id): new function
12534
12535 2003-03-20  Havoc Pennington  <hp@redhat.com>
12536
12537         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12538         new function
12539         (dbus_connection_get_unix_user): new function
12540
12541 2003-03-20  Havoc Pennington  <hp@pobox.com>
12542
12543         * bus/connection.c (bus_connection_send_oom_error): assert that
12544         message has a sender
12545         (connection_execute_transaction): ditto
12546         (bus_connection_preallocate_oom_error): fix to set the sender, and
12547         set recipient to the destination service, not the bus driver
12548
12549         * bus/policy.c: hacking
12550
12551         * dbus/dbus-message.c (dbus_message_service_is): new function
12552         (dbus_message_sender_is): new
12553
12554 2003-03-19  Havoc Pennington  <hp@redhat.com>
12555
12556         * bus/policy.c: start sketching code for policy restrictions on
12557         what connections can do.
12558
12559 2003-03-18  Havoc Pennington  <hp@redhat.com>
12560
12561         * doc/TODO: some notes on high-level todo items. Little nitpick
12562         stuff is all in @todo, so no need to add it here.
12563
12564         * doc/config-file.txt: some notes on how config file might look
12565
12566 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12567
12568         * configure.in: 0.6
12569
12570         * NEWS: Update.
12571
12572 2003-03-17  Havoc Pennington  <hp@redhat.com>
12573
12574         * dbus/dbus-internals.h: add gcc attributes so that
12575         our printf-style functions warn on bad arguments to
12576         format
12577
12578         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12579         format bug
12580
12581         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12582         printf format bug
12583
12584 2003-03-17  Havoc Pennington  <hp@redhat.com>
12585
12586         * bus/test-main.c (main): make it print something as it runs
12587         so make check doesn't look stuck
12588
12589         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12590         from CVS, now obsolete
12591
12592 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12593
12594         * bus/dispatch.c: (bus_dispatch):
12595         Refetch the service name since it may have been reallocated
12596         when dbus_message_set_sender was called.
12597
12598         * dbus/dbus-sysdeps.c: (_dbus_accept):
12599         Add address and address length variables and use them to stop
12600         valgrind from complaining.
12601
12602 2003-03-17  Havoc Pennington  <hp@pobox.com>
12603
12604         All tests pass, no memleaks, no valgrind complaints.
12605
12606         * bus/test.c: refcount handler_slot
12607
12608         * bus/connection.c (bus_connections_new): refcount
12609         connection_data_slot
12610
12611         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12612         bytes so that auth scripts pass.
12613
12614         * bus/dispatch.c: init message_handler_slot so it gets allocated
12615         properly
12616
12617         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12618
12619         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12620         dealloc server_pipe_hash when no longer used for benefit of
12621         leak checking
12622
12623         * dbus/dbus-auth.c (process_command): memleak fix
12624
12625         * bus/dispatch.c (check_hello_message): memleak fix
12626
12627 2003-03-16  Havoc Pennington  <hp@pobox.com>
12628
12629         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12630
12631 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12632
12633         * bus/activation.c (bus_activation_activate_service): Append
12634         the pending activation entry to the list of pending activations.
12635
12636 2003-03-16  Havoc Pennington  <hp@pobox.com>
12637
12638         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12639         connections
12640
12641         * dbus/dbus-address.c (create_entry): fix OOM handling when
12642         failing to alloc entry->method
12643
12644 2003-03-16  Havoc Pennington  <hp@pobox.com>
12645
12646         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12647         the watch
12648
12649         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12650         add some missing dbus_set_result
12651
12652         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12653         alloc the DBusMessageHandler
12654
12655         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12656         the transport here, since we call this from the finalizer; it
12657         resulted in a double-finalize.
12658
12659         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12660         where we tried to use transport->connection that was NULL,
12661         happened when transport was disconnected early on due to OOM
12662
12663         * bus/*.c: adapt to handle OOM for watches/timeouts
12664
12665         * dbus/dbus-transport-unix.c: port to handle OOM during
12666         watch handling
12667
12668         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12669         reference to unused bytes instead of a copy
12670
12671         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12672         out of memory
12673
12674         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12675         FALSE on OOM
12676
12677         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12678         of memory
12679
12680 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12681
12682         * doc/dbus-specification.sgml:
12683         Document reply message for ActivateService.
12684
12685 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12686
12687         * bus/activation.c: (bus_pending_activation_entry_free),
12688         (bus_pending_activation_free), (bus_activation_new),
12689         (bus_activation_unref), (bus_activation_service_created),
12690         (bus_activation_activate_service):
12691         * bus/activation.h:
12692         * bus/bus.c: (bus_context_new):
12693         * bus/desktop-file.c: (new_section):
12694         * bus/driver.c: (bus_driver_send_service_deleted),
12695         (bus_driver_handle_activate_service):
12696         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12697         * bus/services.h:
12698         * dbus/dbus-connection.c:
12699         (dbus_connection_send_with_reply_and_block):
12700         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12701         * dbus/dbus-protocol.h:
12702         Make activation work better. Now pending activations will be queued
12703         and the daemon won't try to activate services that are already registered.
12704
12705 2003-03-16  Havoc Pennington  <hp@pobox.com>
12706
12707         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12708         connection data
12709
12710         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12711         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12712
12713 2003-03-16  Havoc Pennington  <hp@pobox.com>
12714
12715         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12716         this. always run the test suite before commit...
12717
12718         * bus/*: adapt to DBusConnection API changes
12719
12720         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12721         requires renaming stuff to avoid dbus_connection_dispatch name
12722         conflict.
12723
12724         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12725         function
12726
12727         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12728         separate from _dbus_message_loader_return_buffer()
12729
12730         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12731         this, because it's now always broken to use; the number of
12732         messages in queue vs. the number still buffered by the message
12733         loader is undefined/meaningless. Should use
12734         dbus_connection_get_dispatch_state().
12735         (dbus_connection_dispatch): rename from
12736         dbus_connection_dispatch_message
12737
12738 2003-03-16  Havoc Pennington  <hp@pobox.com>
12739
12740         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12741         implementation
12742
12743 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12744
12745         * dbus/dbus-connection.c:
12746         (dbus_connection_send_with_reply_and_block):
12747         Decrease connection->n_incoming when removing an entry
12748         from the list.
12749         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12750         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12751         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12752         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12753         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12754         (dbus_dict_get_byte_array):
12755         Handle NULL arrays and strings. Also add support for byte arrays.
12756
12757         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12758         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12759         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12760         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12761         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12762         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12763         * dbus/dbus-marshal.h:
12764         Add support for marshalling and demarshalling empty arrays and strings.
12765
12766         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12767         (dbus_message_append_string_array),
12768         (dbus_message_iter_get_boolean),
12769         (dbus_message_iter_get_boolean_array),
12770         (dbus_message_iter_get_int32_array),
12771         (dbus_message_iter_get_uint32_array),
12772         (dbus_message_iter_get_double_array),
12773         (dbus_message_iter_get_byte_array),
12774         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12775         (check_message_handling):
12776         Add support for getting empty arrays and dicts.
12777
12778         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12779         Don't do any validation at all for now, that's better than just checking
12780         for ASCII.
12781
12782         * test/data/valid-messages/emptiness.message:
12783         New test message with lots of empty arrays.
12784
12785 2003-03-16  Havoc Pennington  <hp@pobox.com>
12786
12787         * dbus/dbus-connection.c
12788         (_dbus_connection_queue_received_message_link): new function that
12789         can't fail due to OOM
12790
12791         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12792         new function pops a message together with a list link
12793         containing it.
12794
12795         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12796         message queuing functions to avoid needing to alloc memory
12797
12798 2003-03-16  Havoc Pennington  <hp@pobox.com>
12799
12800         Oops - test code was only testing failure of around 30 of the
12801         mallocs in the test path, but it turns out there are 500+
12802         mallocs. I believe this was due to misguided linking setup such
12803         that there was one copy of dbus_malloc etc. in the daemon and one
12804         in the shared lib, and only daemon mallocs were tested. In any
12805         case, the test case now tests all 500+ mallocs, and doesn't pass
12806         yet, though there are lots of fixes in this patch.
12807
12808         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12809         this so that it doesn't need to allocate memory, since it
12810         has no way of indicating failure due to OOM (and would be
12811         annoying if it did).
12812
12813         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12814
12815         * bus/Makefile.am: rearrange to create two self-contained
12816         libraries, to avoid having libraries with overlapping symbols.
12817         that was resulting in weirdness, e.g. I'm pretty sure there
12818         were two copies of global static variables.
12819
12820         * dbus/dbus-internals.c: move the malloc debug stuff to
12821         dbus-memory.c
12822
12823         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12824         empty.
12825
12826         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12827
12828         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12829         on failure.
12830
12831         * bus/dispatch.c (bus_dispatch_add_connection): free
12832         message_handler_slot when no longer using it, so
12833         memory leak checkers are happy for the test suite.
12834
12835         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12836
12837         * bus/bus.c (new_connection_callback): disconnect in here if
12838         bus_connections_setup_connection fails.
12839
12840         * bus/connection.c (bus_connections_unref): fix to free the
12841         connections
12842         (bus_connections_setup_connection): if this fails, don't
12843         disconnect the connection, just be sure there are no side
12844         effects.
12845
12846         * dbus/dbus-string.c (undo_alignment): unbreak this
12847
12848         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12849         leaking
12850         (_dbus_auth_new): fix the order in which we free strings
12851         on OOM failure
12852
12853         * bus/connection.c (bus_connection_disconnected): fix to
12854         not send ServiceDeleted multiple times in case of memory
12855         allocation failure
12856
12857         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12858         get the base service name
12859         (dbus_bus_register_client): don't return base service name,
12860         instead store it on the DBusConnection and have an accessor
12861         function for it.
12862         (dbus_bus_register_client): rename dbus_bus_register()
12863
12864         * bus/dispatch.c (check_hello_message): verify that other
12865         connections on the bus also got the correct results, not
12866         just the one sending hello
12867
12868 2003-03-15  Havoc Pennington  <hp@pobox.com>
12869
12870         Make it pass the Hello handling test including all OOM codepaths.
12871         Now to do other messages...
12872
12873         * bus/services.c (bus_service_remove_owner): fix crash when
12874         removing owner from an empty list of owners
12875         (bus_registry_ensure): don't leave service in the list of
12876         a connection's owned services if we fail to put the service
12877         in the hash table.
12878
12879         * bus/connection.c (bus_connection_preallocate_oom_error): set
12880         error flag on the OOM error.
12881
12882         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12883         handle _dbus_transport_set_connection failure
12884
12885         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12886         to create watches up front and simply enable/disable them as
12887         needed.
12888         (unix_connection_set): this can now fail on OOM
12889
12890         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12891         of enabling/disabling a watch or timeout.
12892
12893         * bus/loop.c (bus_loop_iterate): don't touch disabled
12894         watches/timeouts
12895
12896         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12897
12898 2003-03-15  Havoc Pennington  <hp@pobox.com>
12899
12900         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12901         write useful test code, after all that futzing around ;-)
12902
12903         Test does not yet pass because we can't handle OOM in
12904         _dbus_transport_messages_pending (basically,
12905         dbus_connection_preallocate_send() does not prealloc the write
12906         watch). To fix this, I think we need to add new stuff to
12907         set_watch_functions, namely a SetEnabled function so we can alloc
12908         the watch earlier, then enable it later.
12909
12910         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12911         dbus-memory.c to the convenience lib
12912
12913         * bus/test.c: rename some static functions to keep them clearly
12914         distinct from stuff in connection.c. Handle client disconnection.
12915
12916 2003-03-14  Havoc Pennington  <hp@pobox.com>
12917
12918         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12919         transport, tests more of the real codepath. Set up clients
12920         with bus_setup_debug_client.
12921
12922         * bus/test.c (bus_setup_debug_client): function to set up debug
12923         "clients" on the main loop
12924
12925         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12926         support
12927
12928         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12929         server type
12930
12931         * dbus/dbus-server-debug.c: support a debug server based on pipes
12932
12933         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12934         (_dbus_close): new function
12935
12936         * configure.in: check for socketpair
12937
12938 2003-03-14  Havoc Pennington  <hp@redhat.com>
12939
12940         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12941         cheesy hack
12942
12943         * dbus/dbus-transport-debug.c: rework this a good bit to be
12944         less complicated. hopefully still works.
12945
12946         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12947         manually
12948
12949         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12950         after running it
12951
12952         * dbus/dbus-message.c (dbus_message_copy): rename from
12953         dbus_message_new_from_message, fix it up to copy
12954         all the message fields, add test case
12955
12956         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12957         not quite passing yet
12958
12959 2003-03-14  Havoc Pennington  <hp@pobox.com>
12960
12961         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12962         until no work remains" in test code. (the large diff here
12963         is just code movement, no actual changes)
12964
12965         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12966         1, no point waiting around for test code.
12967         (_dbus_server_debug_accept_transport): unref the timeout
12968         after adding it (right?)
12969
12970         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12971
12972 2003-03-13  Havoc Pennington  <hp@redhat.com>
12973
12974         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12975         out of memory
12976
12977         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12978         of memory
12979
12980         * dbus/dbus-connection.h: Make AddWatchFunction and
12981         AddTimeoutFunction return a bool so they can fail on out-of-memory
12982
12983         * bus/bus.c (bus_context_new): set up timeout handlers
12984
12985         * bus/connection.c (bus_connections_setup_connection): set up
12986         timeout handlers
12987
12988         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12989         can fail
12990
12991         * bus/bus.c (bus_context_new): adapt to changes
12992
12993         * bus/connection.c: adapt to changes
12994
12995         * test/watch.c: adapt to DBusWatch changes
12996
12997         * bus/dispatch.c (bus_dispatch_test): started adding this but
12998         didn't finish
12999
13000 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
13001
13002         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
13003
13004 2003-03-13  Havoc Pennington  <hp@pobox.com>
13005
13006         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
13007         set up a test framework as for the library
13008
13009 2003-03-12  Havoc Pennington  <hp@pobox.com>
13010
13011         Throughout: purge global variables, introduce BusActivation,
13012         BusConnections, BusRegistry, etc. objects instead.
13013
13014         * bus/bus.h, bus/bus.c: introduce BusContext as a global
13015         message bus object
13016
13017         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
13018         going to redo this a bit differently I think
13019
13020 2003-03-12  Havoc Pennington  <hp@redhat.com>
13021
13022         Mega-patch that gets the message bus daemon initially handling
13023         out-of-memory. Work still needed. Also lots of random
13024         moving stuff to DBusError instead of ResultCode.
13025
13026         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
13027
13028         * dbus/dbus-connection.c
13029         (dbus_connection_send_with_reply_and_block): use DBusError
13030
13031         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
13032         DBusResultCode
13033
13034         * dbus/dbus-connection.c (dbus_connection_send): drop the result
13035         code here, as the only failure possible is OOM.
13036
13037         * bus/connection.c (bus_connection_disconnect):
13038         rename bus_connection_disconnected as it's a notification only
13039
13040         * bus/driver.c (bus_driver_handle_acquire_service): don't free
13041         "name" on get_args failure, should be done by get_args;
13042         don't disconnect client for bad args, just return an error.
13043         (bus_driver_handle_service_exists): ditto
13044
13045         * bus/services.c (bus_services_list): NULL-terminate returned array
13046
13047         * bus/driver.c (bus_driver_send_service_lost)
13048         (bus_driver_send_service_acquired): send messages from driver to a
13049         specific client to the client's unique name, not to the broadcast
13050         service.
13051
13052         * dbus/dbus-message.c (decode_header_data): reject messages that
13053         contain no name field
13054         (_dbus_message_get_client_serial): rename to
13055         dbus_message_get_serial and make public
13056         (_dbus_message_set_serial): rename from set_client_serial
13057         (_dbus_message_set_reply_serial): make public
13058         (_dbus_message_get_reply_serial): make public
13059
13060         * bus/connection.c (bus_connection_foreach): allow stopping
13061         iteration by returning FALSE from foreach function.
13062
13063         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
13064         (dbus_connection_free_preallocated_send)
13065         (dbus_connection_preallocate_send): new API for sending a message
13066         without possibility of malloc failure.
13067         (dbus_connection_send_message): rename to just
13068         dbus_connection_send (and same for whole function family)
13069
13070         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
13071
13072         * dbus/dbus-sysdeps.c (_dbus_exit): new function
13073
13074         * bus/activation.c: handle/return errors
13075
13076         * dbus/dbus-errors.h: add more DBUS_ERROR #define
13077
13078         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
13079         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
13080         (_dbus_result_from_errno): move to this file
13081
13082 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
13083
13084         * dbus/dbus-marshal.c:
13085         (_dbus_marshal_set_string):
13086         Take a length argument so we can marshal the correct string
13087         length.
13088
13089         (_dbus_marshal_dict), (_dbus_demarshal_dict),
13090         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
13091         (_dbus_marshal_test):
13092         * dbus/dbus-marshal.h:
13093         Add support for marshalling and demarshalling dicts.
13094
13095         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13096         Add support for TYPE DICT.
13097
13098         * dbus/dbus-message.c: (set_string_field):
13099         Adjust header padding.
13100
13101         (dbus_message_append_args_valist), (dbus_message_append_dict),
13102         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
13103         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
13104         (check_message_handling), (check_have_valid_message):
13105         * dbus/dbus-message.h:
13106         Add functions for setting and getting dicts.
13107
13108         * dbus/dbus-protocol.h:
13109         Add DBUS_TYPE_DICT.
13110
13111         * dbus/dbus.h:
13112         Add dbus-dict.h
13113
13114         * doc/dbus-specification.sgml:
13115         Add information about how dicts are marshalled.
13116
13117         * test/data/invalid-messages/dict-with-nil-value.message:
13118         * test/data/invalid-messages/too-short-dict.message:
13119         * test/data/valid-messages/dict-simple.message:
13120         * test/data/valid-messages/dict.message:
13121         Add sample messages containing dicts.
13122
13123 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
13124
13125         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
13126
13127 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13128
13129         * dbus/Makefile.am:
13130         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13131         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
13132         (dbus_dict_set_int32), (dbus_dict_set_uint32),
13133         (dbus_dict_set_double), (dbus_dict_set_string),
13134         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
13135         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
13136         (dbus_dict_set_string_array), (_dbus_dict_test):
13137         * dbus/dbus-dict.h:
13138         Fix according to comments from Havoc.
13139
13140 2003-03-06  Michael Meeks  <michael@server.home>
13141
13142         * configure.in: if we don't have kde-config, disable have_qt.
13143
13144 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13145
13146         * dbus/Makefile.am:
13147         Add dbus-dict.[ch]
13148
13149         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13150         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
13151         (dbus_dict_remove), (dbus_dict_get_value_type),
13152         (dbus_dict_get_keys), (dbus_dict_put_boolean),
13153         (dbus_dict_put_int32), (dbus_dict_put_uint32),
13154         (dbus_dict_put_double), (dbus_dict_put_string),
13155         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
13156         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
13157         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
13158         (dbus_dict_get_int32), (dbus_dict_get_uint32),
13159         (dbus_dict_get_double), (dbus_dict_get_string),
13160         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
13161         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
13162         (dbus_dict_get_string_array), (_dbus_dict_test):
13163         * dbus/dbus-dict.h:
13164         Add DBusDict implementation
13165
13166         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
13167         * dbus/dbus-test.h:
13168         Add _dbus_dict_test
13169
13170 2003-03-04  Havoc Pennington  <hp@pobox.com>
13171
13172         * test/data/auth/*: adapt to changes
13173
13174         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
13175         USERID_BASE64 and change USERNAME_BASE64 to put in username not
13176         userid
13177
13178         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
13179         more stuff from being in a context name, to make the protocol
13180         simpler to deal with
13181
13182         * dbus/dbus-errors.c (dbus_error_has_name): new function
13183         (dbus_error_is_set): new function
13184
13185         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
13186         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
13187
13188         * dbus/dbus-connection.c (dbus_connection_flush): also read
13189         messages during a flush operation
13190
13191         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
13192
13193 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13194
13195         * configure.in: Check for gethostbyname on Solaris.
13196
13197         * dbus/dbus-transport.c: (_dbus_transport_open):
13198         Remove duplicate "tcp" entry.
13199
13200         * doc/dbus-specification.sgml:
13201         Clarify some things.
13202
13203 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13204
13205         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
13206         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
13207         (_dbus_keyring_test):
13208         * dbus/dbus-md5.c: (_dbus_md5_compute):
13209         * dbus/dbus-sha.c: (_dbus_sha_compute):
13210         Plug memory leaks.
13211
13212 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13213
13214         * README: Add some things.
13215
13216 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
13217
13218         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
13219         after case DBUS_TYPE_BOOELAN.
13220
13221 2003-03-02  Havoc Pennington  <hp@pobox.com>
13222
13223         * test/break-loader.c (randomly_set_extreme_ints): add test that
13224         sets really huge and small integers
13225
13226         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
13227         that length of boolean array fits in the string, and that
13228         string has room for boolean value in single-bool case.
13229
13230         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
13231         optional value to "ALIGN" command which is what to fill the
13232         alignment with.
13233
13234         * test/data/valid-messages/no-padding.message: add regression
13235         test for the message padding problem
13236
13237 2003-03-02  Havoc Pennington  <hp@pobox.com>
13238
13239         * dbus/dbus-message.c (decode_header_data): fix to always init
13240         message_padding, from Benjamin Dauvergne
13241
13242 2003-03-02  Havoc Pennington  <hp@pobox.com>
13243
13244         * configure.in: 0.5
13245
13246         * NEWS: Update.
13247
13248 2003-03-01  Joe Shaw  <joe@assbarn.com>
13249
13250         * configure.in: Check for "struct cmsgcred" and try to access its
13251         members for BSD-like unices.
13252
13253         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
13254         _dbus_read_credentials_unix_socket().
13255         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
13256         read() for reading the credential byte off the unix socket.  Use
13257         struct cmsgcred on systems that support it.
13258
13259 2003-02-27  Alexander Larsson  <alexl@redhat.com>
13260
13261         * glib/Makefile.am:
13262         * configure.in:
13263         Make gthreads-2.0 dependency optional. Don't build thread test if
13264         its not found.
13265
13266 2003-02-27  Havoc Pennington  <hp@pobox.com>
13267
13268         * dbus/dbus-connection.c
13269         (dbus_connection_send_message_with_reply_and_block): fix doh!
13270         doh! doh! bug that resulted in never removing a reply from the
13271         queue, no wonder we called get_reply_serial so much ;-)
13272
13273         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
13274         and client serial instead of demarshaling them every time
13275
13276 2003-02-27  Havoc Pennington  <hp@pobox.com>
13277
13278         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
13279         more inlined, using dbus-string-private.h, speeds things up
13280         substantially
13281
13282         * dbus/dbus-string.c (_dbus_string_free): apply align offset
13283         when freeing the string
13284         (_dbus_string_steal_data): fix for align offset
13285         (undo_alignment): new function
13286
13287 2003-02-26  Havoc Pennington  <hp@redhat.com>
13288
13289         All kinds of audit fixes from Owen, plus initial attempt to
13290         handle unaligned memory returned from malloc.
13291
13292         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
13293         leave room for align_offset and nul byte
13294         (fixup_alignment): function to track an align_offset and
13295         ensure real->str is aligned
13296         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
13297         to allow a nul byte plus align offset
13298         (_dbus_string_lock): fix overflow issue
13299         (_dbus_string_init_const_len): add assertions on sanity of len,
13300         assign allocated to be ALLOCATION_PADDING larger than len
13301         (set_length): fixup the overflow handling
13302         (_dbus_string_get_data_len): fix overflow in assertion
13303         (open_gap): detect overflow in size of gap to be opened
13304         (_dbus_string_lengthen): add overflow check
13305         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
13306         (_dbus_string_append): add overflow check
13307         (_dbus_string_append_unichar): overflow
13308         (_dbus_string_delete): fix overflow in assertion
13309         (_dbus_string_copy_len): overflow in assertion
13310         (_dbus_string_replace_len): overflows in assertions
13311         (_dbus_string_find): change to implement in terms of
13312         _dbus_string_find_to
13313         (_dbus_string_find_to): assorted fixage
13314         (_dbus_string_equal_c_str): assert c_str != NULL,
13315         fix logic so the function works
13316         (_dbus_string_ends_with_c_str): fix overflow thingy
13317         (_dbus_string_base64_encode): overflow fix
13318         (_dbus_string_validate_ascii): overflow
13319         (_dbus_string_validate_nul): overflow
13320
13321 2003-02-26  Havoc Pennington  <hp@redhat.com>
13322
13323         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
13324
13325 2003-02-26  Alexander Larsson  <alexl@redhat.com>
13326
13327         * configure.in:
13328         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
13329
13330         * dbus/dbus-connection.c:
13331         * dbus/dbus-connection.h:
13332         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13333         Add dbus_connection_set_wakeup_main_function and use it when queueing
13334         incoming and outgoing messages.
13335
13336
13337         * dbus/dbus-dataslot.c:
13338         Threadsafe usage of DBusDataSlotAllocator
13339
13340         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13341         dbus_new can fail.
13342
13343         * dbus/dbus-server-unix.c:
13344         Add todo comment
13345
13346         * glib/dbus-gmain.c:
13347         Implement the new wakeup functions for glib.
13348
13349         * glib/Makefile.am:
13350         * glib/test-thread-client.c:
13351         * glib/test-thread-server.c:
13352         * glib/test-thread.h:
13353         Initial cut at some thread test code. Not really done yet.
13354
13355 2003-02-26  Havoc Pennington  <hp@pobox.com>
13356
13357         * dbus/dbus-connection.c
13358         (dbus_connection_send_message_with_reply_and_block): fix crash
13359         where we ref'd the outgoing message instead of the returned reply
13360
13361         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13362         at the end of this function, so if we didn't need to read for
13363         authentication, we reinstall it for receiving messages
13364
13365         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13366         a NULL sender for peer-to-peer case
13367
13368         * dbus/dbus-transport-unix.c (check_read_watch): handle
13369         !authenticated case correctly
13370
13371         * glib/dbus-gmain.c: add support for DBusServer
13372
13373         * dbus/dbus-server.c: add data slot support
13374
13375         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13376         return values and handle errors
13377
13378         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13379         DBusConnection
13380
13381         * Doxyfile.in (INPUT): add glib subdir
13382
13383         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13384         setup_with_g_main instead of hookup_with_g_main; write docs
13385
13386 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13387
13388         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13389         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13390         * dbus/dbus-message.c: (dbus_message_append_boolean),
13391         (dbus_message_append_boolean_array),
13392         (dbus_message_get_args_valist), (_dbus_message_test):
13393         * dbus/dbus-message.h:
13394         * doc/dbus-specification.sgml:
13395         Various fixes as pointed out by Havoc.
13396
13397         * test/data/invalid-messages/bad-boolean-array.message:
13398         * test/data/invalid-messages/bad-boolean.message:
13399         Add invalid boolean value test cases.
13400
13401 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13402
13403         * dbus/dbus-internals.c: (_dbus_type_to_string):
13404         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13405         (_dbus_marshal_validate_arg):
13406         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13407         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13408         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13409         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13410         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13411         (dbus_message_iter_get_double),
13412         (dbus_message_iter_get_boolean_array), (message_iter_test):
13413         * dbus/dbus-message.h:
13414         * dbus/dbus-protocol.h:
13415         * doc/dbus-specification.sgml:
13416         * test/data/valid-messages/lots-of-arguments.message:
13417         Add support for boolean and boolean array types.
13418
13419 2003-02-23  Havoc Pennington  <hp@pobox.com>
13420
13421         * dbus/dbus-keyring.c: finish most of this implementation and
13422         simple unit test
13423
13424         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13425         these barf if the error isn't cleared to NULL
13426
13427         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13428         (_dbus_create_directory): new function
13429
13430         * dbus/dbus-errors.c (dbus_set_error): fix warning
13431
13432         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13433         (_dbus_string_hex_decode): new function
13434         (test_hex_roundtrip): test code
13435
13436         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13437
13438         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13439
13440         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13441         the save-to-temp/rename trick to atomically write the new file
13442         (_dbus_string_parse_uint): new function
13443
13444 2003-02-22  Havoc Pennington  <hp@pobox.com>
13445
13446         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13447
13448 2003-02-22  Havoc Pennington  <hp@pobox.com>
13449
13450         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13451         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13452
13453         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13454
13455         * dbus/test/data/sha-1: add US government test suite for SHA-1
13456
13457 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13458
13459         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13460         Make string arrays NULL-terminated.
13461
13462         * dbus/dbus-memory.c: (dbus_free_string_array):
13463         * dbus/dbus-memory.h:
13464         New function for freeing NULL-terminated string arrays.
13465
13466         * dbus/dbus-message-builder.c: (append_quoted_string),
13467         (_dbus_message_data_load):
13468         Add support for array types.
13469
13470         * dbus/dbus-message.c: (check_message_handling):
13471         Add more types as test cases.
13472
13473         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13474         (_dbus_string_parse_double):
13475         Add the start offset to the end offset.
13476
13477         * test/data/valid-messages/lots-of-arguments.message:
13478         New test message with lots of arguments.
13479
13480 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13481
13482         * dbus/dbus-message.c: (dbus_message_append_nil),
13483         (dbus_message_append_int32), (dbus_message_append_uint32),
13484         (dbus_message_append_double), (dbus_message_append_string),
13485         (dbus_message_append_int32_array),
13486         (dbus_message_append_uint32_array),
13487         (dbus_message_append_double_array),
13488         (dbus_message_append_byte_array),
13489         (dbus_message_append_string_array):
13490         Fix all out-of-memory handling in these functions.
13491
13492 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13493
13494         * dbus/dbus-message.c: (dbus_message_append_nil):
13495         Fix a silly.
13496
13497 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13498
13499         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13500         (dbus_message_append_nil), (dbus_message_append_int32_array),
13501         (dbus_message_append_uint32_array),
13502         (dbus_message_append_double_array),
13503         (dbus_message_append_byte_array),
13504         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13505         (dbus_message_iter_get_int32_array),
13506         (dbus_message_iter_get_uint32_array),
13507         (dbus_message_iter_get_double_array),
13508         (dbus_message_iter_get_byte_array),
13509         (dbus_message_iter_get_string_array):
13510
13511         * dbus/dbus-message.h:
13512         Add functions for appending and getting arrays.
13513
13514 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13515
13516         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13517         element size at least 8 bytes, fixes mempool tests on
13518         64-bit machines.
13519
13520 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13521
13522         * dbus/dbus-transport-unix.c (unix_do_iteration):
13523         Unlock the connection mutex during a blocking select call.
13524         Add todo about how we need a way to wake up the select.
13525
13526         * dbus/dbus-connection-internal.h:
13527         * dbus/dbus-connection.c:
13528         Add _dbus_connection_lock and _dbus_connection_unlock.
13529
13530 2003-02-19  Havoc Pennington  <hp@pobox.com>
13531
13532         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13533         Doxyfile.in, not Doxyfile
13534
13535         * dbus/dbus-keyring.c: do some hacking on this
13536
13537         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13538
13539         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13540         dbus_error_init
13541         (dbus_set_error): remove dbus_error_init, check for message ==
13542         NULL *before* we sprintf into it, and add @todo about including
13543         system headers in this file
13544
13545         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13546
13547         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13548
13549         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13550         get various bits of user information based on either username
13551         or user ID
13552         (_dbus_homedir_from_username): new function
13553
13554 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13555
13556         * configure.in:
13557         Add check for nonposix getpwnam_r
13558
13559         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13560         Align the pool element size to a sizeof (void *) boundary.
13561
13562         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13563         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13564         General Solaris fixes.
13565
13566         * test/data/valid-messages/simplest-manual.message:
13567         Explicitly state that we want little-endian packing.
13568
13569 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13570
13571         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13572
13573         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13574         Added to create a transport connecting using a tcp/ip socket.
13575
13576         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13577         to a tcp socket at given host and port.
13578         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13579         hostname and port.
13580
13581         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13582
13583         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13584         Added to create a server listening on a TCP/IP socket.
13585
13586 2003-02-19  Havoc Pennington  <hp@pobox.com>
13587
13588         Throughout: mop up all the Doxygen warnings and undocumented
13589         stuff.
13590
13591         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13592         to search any paths.
13593
13594         * dbus/dbus-threads.c: move global mutex initializers to
13595         dbus-internals.h, multiple prototypes was confusing doxygen
13596         besides being kind of ugly
13597
13598         * Doxyfile (PREDEFINED): have Doxygen define
13599         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13600         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13601         (do not abuse the feature! it's for stuff like the autogenerated
13602         macros in dbus-md5.c, not just for things you don't feel like
13603         documenting...)
13604
13605 2003-02-18  Havoc Pennington  <hp@pobox.com>
13606
13607         * dbus/dbus-string.c (_dbus_string_zero): new function
13608
13609         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13610         wrap it in some dbus-friendly API
13611
13612         * dbus/dbus-types.h: add 16-bit types
13613
13614 2003-02-18  Joe Shaw  <joe@assbarn.com>
13615
13616         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13617         credentials from our currently running process.
13618         (get_word): Fix a buglet where we were copying the entire length
13619         instead of relative to our position.
13620
13621         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13622         keys on the stack... it's 640k of data.
13623
13624         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13625         read the credentials byte off the socket, even if we don't have
13626         SO_PEERCRED.
13627         (_dbus_poll): Implement poll() using select() for systems which
13628         don't have it.
13629
13630         * glib/test-dbus-glib.c (main): Print out an error if no
13631         parameters are given.
13632
13633         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13634         can fallback to a secondary auth mechanism if the first fails.
13635
13636 2003-02-18  Havoc Pennington  <hp@pobox.com>
13637
13638         * AUTHORS: add Alex
13639
13640 2003-02-17  Havoc Pennington  <hp@pobox.com>
13641
13642         * doc/dbus-specification.sgml: lots of cosmetic
13643         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13644         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13645         s/server/bus/ (except in authentication section). Add a section
13646         "Message Bus Message Routing"
13647
13648 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13649
13650         Release 0.4
13651
13652         * NEWS: Update
13653
13654 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13655
13656         * doc/dbus-specification.sgml:
13657         Specification updates.
13658
13659 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13660
13661         * bus/activation.c: (bus_activation_init), (child_setup),
13662         (bus_activation_activate_service):
13663         * bus/activation.h:
13664         * bus/main.c: (main):
13665         Set DBUS_ADDRESS environment variable.
13666
13667         * dbus/dbus-errors.c: (dbus_set_error):
13668         Don't use va_copy since that's a C99 feature.
13669
13670         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13671         (_dbus_spawn_async):
13672         * dbus/dbus-sysdeps.h:
13673         Add child_setup_func to _dbus_spawn_async.
13674
13675         * doc/dbus-specification.sgml:
13676         Update specification.
13677
13678         * test/spawn-test.c: (setup_func), (main):
13679         Fix test.
13680
13681 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13682
13683         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13684         Added todo.
13685
13686 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13687
13688         * doc/.cvsignore:
13689         * doc/Makefile.am:
13690         * doc/dbus-test-plan.sgml:
13691         Add test plan document.
13692
13693         * test/Makefile.am:
13694         Fix distcheck.
13695
13696 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13697
13698         * dbus/dbus-message.c: (decode_header_data),
13699         (_dbus_message_loader_return_buffer):
13700         Set the header padding amount when loading a message.
13701
13702 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13703
13704         * bus/dispatch.c: (send_one_message):
13705         Only send broadcast messages to registered connections.
13706
13707         * dbus/dbus-message.c: (dbus_message_name_is):
13708         * dbus/dbus-message.h:
13709         New convenience function.
13710
13711         * dbus/dbus-transport-debug.c: (do_reading):
13712         Only dispatch one message per run.
13713
13714         * test/Makefile.am:
13715         * test/bus-test.c: (new_connection_callback), (die),
13716         (test_hello_client1_handler), (test_hello_client2_handler),
13717         (test_hello_replies), (main):
13718
13719         * test/bus-test-loop.[ch]:
13720         Add these.
13721
13722 2003-02-16  Havoc Pennington  <hp@pobox.com>
13723
13724         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13725         backward conditional
13726
13727 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13728
13729         * dbus/dbus-connection.c:
13730         Implement sent_message_with_reply. (with_reply_and block is still
13731         busted).
13732         Made dispatch_message not lose message if OOM.
13733
13734         * dbus/dbus-errors.h:
13735         Add NoReply error (for reply timeouts).
13736
13737 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13738
13739         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13740         Actually free keys and values when destroying hashtable.
13741
13742 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13743
13744         * dbus/dbus-auth.c: (client_try_next_mechanism):
13745         Plug a leak.
13746
13747         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13748         Return TRUE if there's no thread implementation around.
13749
13750         * glib/dbus-gmain.c: (free_source),
13751         (dbus_connection_hookup_with_g_main):
13752         Make sure to remove the GSource when the connection is finalized.
13753
13754 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13755
13756         * bus/dispatch.c: (bus_dispatch_message_handler):
13757         * dbus/dbus-errors.h:
13758         Return an error if someone tries to send a message to a service
13759         that doesn't exist.
13760
13761 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13762
13763         * bus/activation.c: (load_directory), (bus_activation_init),
13764         (bus_activation_activate_service):
13765         * bus/activation.h:
13766         * bus/driver.c:
13767         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13768         More work on the activation handling.
13769
13770         * dbus/dbus-errors.h:
13771         Add some error messages
13772
13773         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13774         * dbus/dbus-message.h:
13775         New function that creates an error message.
13776
13777         * dbus/dbus-protocol.h:
13778         Add ACTIVATE_SERVER message.
13779
13780         * dbus/dbus-server-unix.c: (unix_handle_watch),
13781         (_dbus_server_new_for_domain_socket):
13782         Call _dbus_fd_set_close_on_exec.
13783
13784         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13785         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13786         (_dbus_fd_set_close_on_exec):
13787         * dbus/dbus-sysdeps.h:
13788         Add _dbus_fd_set_close_on exec function. Also add function that checks
13789         that all open fds are set to close-on-exec and warns otherwise.
13790
13791         * dbus/dbus-transport-unix.c:
13792         (_dbus_transport_new_for_domain_socket):
13793         Call _dbus_fd_set_close_on_exec.
13794
13795 2003-02-16  Havoc Pennington  <hp@pobox.com>
13796
13797         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13798         allow people to avoid setting SIGPIPE to SIG_IGN
13799         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13800         we've been asked not to
13801
13802 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13803
13804         * dbus/dbus-list.c: (_dbus_list_append_link),
13805         (_dbus_list_prepend_link):
13806         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13807         (dbus_realloc):
13808         Warning fixes.
13809
13810 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13811
13812         * bus/Makefile.am:
13813         * bus/activation.c: (bus_activation_entry_free),
13814         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13815         * bus/activation.h:
13816         * bus/main.c: (main):
13817         Add simple activation support, doesn't work yet though.
13818
13819 2003-02-15   Zack Rusin  <zack@kde.org>
13820
13821         * qt/dbus-qthread.cpp:  small casting fix
13822
13823 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13824
13825         * dbus/dbus-errors.c: (dbus_set_error):
13826         * dbus/dbus-errors.h:
13827         Add a few errors and make dbus_set_error void.
13828
13829         * dbus/dbus-sysdeps.c:
13830         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13831         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13832         * dbus/dbus-sysdeps.h:
13833         Add _dbus_spawn_async.
13834
13835         * test/spawn-test.c: (main):
13836         Test for _dbus_spawn_async.
13837
13838 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13839
13840         * dbus/dbus-internals.h:
13841         Fix build without tests.
13842
13843         * dbus/dbus-list.c: (alloc_link):
13844         Fix a segfault when a malloc fails.
13845
13846         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13847         (dbus_malloc0), (dbus_realloc):
13848         Add support for malloc debugging.
13849
13850 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13851
13852         * dbus/dbus-threads.c:
13853         * dbus/dbus-threads.h:
13854         Add condvars. Remove static mutext from API.
13855         Implement static mutexes by initializing them from threads_init.
13856
13857         * glib/dbus-gthread.c:
13858         * qt/dbus-qthread.cpp:
13859         Update with the thread api changes.
13860
13861
13862         * dbus/dbus-list.c:
13863         * dbus/dbus-list.h:
13864         Turn StaticMutex into normal mutex + init function.
13865         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13866         _dbus_list_append_link, _dbus_list_prepend_link
13867
13868
13869         * dbus/dbus-sysdeps.c:
13870         * dbus/dbus-sysdeps.h:
13871         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13872         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13873
13874         * dbus/dbus-protocol.h:
13875         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13876
13877         * dbus/dbus-message.c:
13878         Make ref/unref atomic.
13879         Fix some docs.
13880
13881         * dbus/dbus-connection-internal.h:
13882         * dbus/dbus-connection.c:
13883         * dbus/dbus-connection.h:
13884         Make threadsafe.
13885         Change _peek to _borrow,_return & _steal_borrowed.
13886         Change disconnect callback to event.
13887         Make dbus_connection_dispatch_messages reentrant.
13888
13889         * dbus/dbus-transport.c:
13890         Don't ref the connection on calls to the transport
13891         implementation.
13892
13893         * dbus/dbus-message-handler.c:
13894         Make threadsafe.
13895
13896         * glib/dbus-gmain.c:
13897         Don't use peek_message anymore
13898
13899         * test/Makefile.am:
13900         * test/debug-thread.c:
13901         * test/debug-thread.h:
13902         Simple thread implementation that asserts() on deadlocks in
13903         single-threaded code.
13904
13905         * test/bus-test.c:
13906         (main) Call debug_threads_init.
13907
13908         * test/watch.c:
13909         Use disconnect message instead of disconnect callback.
13910
13911         * bus/connection.c:
13912         * bus/connection.h:
13913         Don't call dbus_connection_set_disconnect_function. Instead export
13914         bus_connection_disconnect.
13915
13916         * bus/dispatch.c:
13917         Call bus_connection_disconnect when we get a disconnected message.
13918
13919 2003-02-15  Havoc Pennington  <hp@pobox.com>
13920
13921         * dbus/dbus-message.c (dbus_message_new): fool around with the
13922         docs
13923
13924 2003-02-14  Havoc Pennington  <hp@pobox.com>
13925
13926         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13927
13928         * dbus/dbus-memory.c: fail if the debug functions indicate we
13929         should
13930
13931         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13932         (_dbus_decrement_fail_alloc_counter): debug functions to
13933         simulate memory allocation failures
13934
13935 2003-02-14  Havoc Pennington  <hp@pobox.com>
13936
13937         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13938         to DBusError
13939
13940 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13941
13942         * bus/driver.c: (bus_driver_handle_hello):
13943         * bus/driver.h:
13944         * bus/services.c: (bus_service_lookup):
13945         Reorder message sending so we get a more sane order.
13946
13947         * test/bus-test.c: (message_handler):
13948         Fix tyop.
13949
13950 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13951
13952         * bus/driver.c: (bus_driver_send_service_deleted),
13953         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13954         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13955         (bus_driver_send_welcome_message),
13956         (bus_driver_handle_list_services),
13957         (bus_driver_handle_acquire_service),
13958         (bus_driver_handle_service_exists):
13959         * dbus/dbus-bus.c: (dbus_bus_register_client),
13960         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13961         * dbus/dbus-errors.c: (dbus_result_to_string):
13962         * dbus/dbus-errors.h:
13963         * dbus/dbus-message.c: (dbus_message_append_args),
13964         (dbus_message_append_args_valist), (dbus_message_get_args),
13965         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13966         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13967         (dbus_message_iter_get_byte_array),
13968         (dbus_message_iter_get_string_array), (message_iter_test),
13969         (check_message_handling), (_dbus_message_test):
13970         * dbus/dbus-message.h:
13971         * test/bus-test.c: (main):
13972         Change fields to arguments in messages, so that they won't be
13973         confused with header fields.
13974
13975         * glib/test-dbus-glib.c: (main):
13976         Remove append_fields from hello message.
13977
13978 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13979
13980         * dbus/dbus-errors.c:
13981         * dbus/dbus-message.c:
13982         * dbus/dbus-string.c:
13983         Documentation fixes.
13984
13985 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13986
13987         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13988         (remove_timeout):
13989         Implement support for timeouts in dbus-glib.
13990
13991 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13992
13993         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13994         * dbus/dbus-message.c: (process_test_subdir):
13995         * test/break-loader.c: (find_breaks_based_on):
13996         Plug some memory leaks.
13997
13998 2003-02-13  Richard Hult  <rhult@codefactory.se>
13999
14000         * bus/main.c: Fix build.
14001
14002         * dbus/dbus-errors.h:
14003         * dbus/dbus-errors.c: Fix copyright for Anders.
14004
14005 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14006
14007         * bus/Makefile.am:
14008         Add utils.[ch]
14009
14010         * bus/connection.c: (bus_connection_foreach):
14011         Fix a warning.
14012
14013         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
14014         (unescape_string), (new_section), (parse_section_start),
14015         (parse_key_value), (report_error), (bus_desktop_file_load),
14016         (bus_desktop_file_get_string):
14017         * bus/desktop-file.h:
14018         Use DBusError for error reporting.
14019
14020         * bus/dispatch.c: (send_one_message),
14021         (bus_dispatch_message_handler):
14022         * bus/driver.c: (bus_driver_send_service_deleted),
14023         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14024         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
14025         (bus_driver_send_welcome_message),
14026         (bus_driver_handle_list_services),
14027         (bus_driver_handle_acquire_service),
14028         (bus_driver_handle_service_exists):
14029         * bus/loop.c: (bus_loop_run):
14030         * bus/main.c:
14031         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
14032
14033         * bus/utils.c: (bus_wait_for_memory):
14034         * bus/utils.h:
14035         New files with general utility functions.
14036
14037         * dbus/dbus-internals.h:
14038         Remove _DBUS_HANDLE_OOM.
14039
14040 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14041
14042         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
14043         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
14044         * dbus/dbus-errors.h:
14045         Add DBusError structure.
14046
14047 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14048
14049         * test/data/valid-messages/standard-acquire-service.message:
14050         * test/data/valid-messages/standard-hello.message:
14051         * test/data/valid-messages/standard-list-services.message:
14052         * test/data/valid-messages/standard-service-exists.message:
14053         Add some standard messages.
14054
14055 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14056
14057         * bus/driver.c: (bus_driver_send_welcome_message),
14058         (bus_driver_handle_list_services),
14059         (bus_driver_handle_acquire_service),
14060         (bus_driver_handle_service_exists), (bus_driver_handle_message):
14061         Update for API changes in libdbus.
14062
14063         * dbus/dbus-message.c: (dbus_message_new_reply):
14064         * dbus/dbus-message.h:
14065         Remove the name argument. The spec states that replies shouldn't
14066         have a name.
14067
14068 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14069
14070         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
14071         (report_error), (bus_desktop_file_load), (lookup_section),
14072         (lookup_line), (bus_desktop_file_get_raw),
14073         (bus_desktop_file_get_string):
14074         * bus/desktop-file.h:
14075         Some fixes, and new functions for getting a key value from a section.
14076
14077 2003-02-13  Havoc Pennington  <hp@pobox.com>
14078
14079         * test/data/auth/fail-after-n-attempts.auth-script: new test
14080
14081         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
14082         reject the client.
14083
14084 2003-02-13  Havoc Pennington  <hp@pobox.com>
14085
14086         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
14087         dbus_credentials_match were backward
14088
14089         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
14090         NO_CREDENTIALS and ROOT_CREDENTIALS
14091
14092         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
14093         into here. Never process more commands after we've reached an
14094         end state; store further data as unused bytes.
14095
14096         * test/data/auth/*: add more auth tests
14097
14098         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
14099         command to match exact string and EXPECT_UNUSED to match unused
14100         bytes
14101
14102         * test/Makefile.am (dist-hook): fix to dist all the test stuff
14103
14104 2003-02-12  Havoc Pennington  <hp@pobox.com>
14105
14106         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
14107         \r off of popped lines
14108
14109         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
14110         scripts
14111
14112         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
14113         SEND, append \r\n
14114
14115 2003-02-12  Havoc Pennington  <hp@pobox.com>
14116
14117         * dbus/Makefile.am: remove break-loader from the build, since it
14118         moved.
14119
14120         * configure.in: add --enable-gcov to turn on coverage profiling
14121         flags and disable optimization
14122
14123 2003-02-10  Havoc Pennington  <hp@pobox.com>
14124
14125         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
14126         initial cut at test framework for DBusAuth from laptop.
14127         Doesn't quite work yet but it compiles and I need to get
14128         it off the 266mhz laptop. ;-)
14129
14130         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
14131         fix a memleak in error case
14132
14133 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
14134
14135         * bus/Makefile.am:
14136         * bus/desktop-file.c:
14137         * bus/desktop-file.h:
14138         Add a desktop file parser.
14139
14140 2003-02-11  Zack Rusin  <zack@kde.org>
14141
14142         * qt/message.[h|cpp]: sample implementation
14143         of the KDE wrapper for DBusMessage
14144
14145 2003-02-09  Zack Rusin  <zack@kde.org>
14146
14147         * test/bus-test.c: make_it_compile
14148         * doc/dbus-specification.sgml: minimal semantic fix
14149
14150 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14151
14152         Release 0.3
14153
14154         * NEWS: Update
14155
14156 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14157
14158         * dbus/Makefile.am:
14159         * dbus/dbus-break-loader.c:
14160         * test/Makefile.am:
14161         * test/break-loader.c:
14162         Move dbus-break-loader to test/ and rename it to break-loader.
14163
14164 2003-02-02  Havoc Pennington  <hp@pobox.com>
14165
14166         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
14167         for code to manage cookies in your home directory
14168
14169         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
14170
14171         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
14172         to authenticate, then disconnect the client.
14173
14174 2003-02-03  Alexander Larsson  <alexl@redhat.com>
14175
14176         * dbus/dbus-message.c (dbus_message_append_fields):
14177         Correct docs.
14178
14179 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14180
14181         * doc/dbus-specification.sgml:
14182         Update address format section.
14183
14184 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14185
14186         * test/Makefile.am:
14187         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
14188         (message_handler), (new_connection_callback), (loop_quit),
14189         (loop_run), (main):
14190         Add bus test.
14191
14192 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14193
14194         * bus/driver.c: (bus_driver_handle_service_exists):
14195         Simplify the code a bit.
14196
14197         * dbus/dbus-bus.c: (dbus_bus_service_exists):
14198         Fix a silly.
14199
14200 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14201
14202         * bus/Makefile.am:
14203         Add libdbus-daemon.la and link to it.
14204
14205 2003-02-01  James Willcox  <jwillcox@gnome.org>
14206
14207         * bus/driver.c: (bus_driver_handle_own_service):
14208         Actually include the service reply code in the message.
14209
14210 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14211
14212         * bus/driver.c: (bus_driver_handle_service_exists):
14213         Don't unref the incoming message.
14214
14215 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14216
14217         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
14218
14219 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14220
14221         * dbus/dbus-server.c: (dbus_server_listen):
14222         * dbus/dbus-transport.c: (_dbus_transport_open):
14223         ifdef out the calls to the debug transport and server.
14224
14225 2003-02-02  Alexander Larsson  <alexl@redhat.com>
14226
14227         * dbus/dbus-watch.c (dbus_watch_get_flags):
14228         Add note in the docs that ERROR or HANGUP won't be returned
14229         and are assumed always on.
14230
14231         * glib/dbus-gmain.c (add_watch):
14232         Always add IO_ERR | IO_HUP
14233
14234         * dbus/dbus-message.h:
14235         Add semicolon after dbus_message_iter_get_string_array().
14236         Makes qt code build again
14237
14238 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
14239
14240         * bus/driver.c: (create_unique_client_name),
14241         (bus_driver_handle_hello):
14242         Don't take a name, just use a numeric id to identify
14243         each client.
14244
14245         * dbus/Makefile.am:
14246         * dbus/dbus-bus.c: (dbus_bus_register_client),
14247         (dbus_bus_acquire_service), (dbus_bus_service_exists):
14248         * dbus/dbus-bus.h:
14249         Add new convenience functions for communicating with the bus.
14250
14251         * dbus/dbus-message.h:
14252
14253         * dbus/dbus-protocol.h:
14254         Fix a typo.
14255
14256 2003-02-01  Alexander Larsson  <alexl@redhat.com>
14257
14258         * dbus/dbus-message.c (dbus_message_append_fields):
14259         Add some more doc comments.
14260
14261 2003-02-01  Havoc Pennington  <hp@pobox.com>
14262
14263         * dbus/dbus-break-loader.c (randomly_modify_length): change
14264         a 4-byte value in the message as if it were a length
14265
14266         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
14267         execute bit on saved files
14268
14269 2003-02-01  Havoc Pennington  <hp@pobox.com>
14270
14271         * dbus/dbus-break-loader.c (main): new program to find messages
14272         that break the loader.
14273
14274         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
14275         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
14276
14277         * dbus/dbus-string.c (_dbus_string_set_byte): new
14278
14279 2003-01-31  Havoc Pennington  <hp@pobox.com>
14280
14281         * dbus/dbus-message.c: refactor the test code to be more general,
14282         in preparation for writing a "randomly permute test cases to
14283         try to break the loader" program.
14284
14285 2003-01-31  Havoc Pennington  <hp@pobox.com>
14286
14287         * doc/dbus-specification.sgml: work on the specification
14288
14289         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
14290         the protocol version of the message.
14291
14292         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
14293         no longer specifies that.
14294         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
14295         1/2/3/4)
14296
14297         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
14298         "break" for DBUS_TYPE_NIL, remove @todo
14299
14300 2003-01-31  Havoc Pennington  <hp@pobox.com>
14301
14302         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
14303         just set_is_error/get_is_error as this is a commonly-used
14304         function, and write docs.
14305
14306 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
14307
14308         * dbus/dbus-address.c: (dbus_address_entry_free):
14309         Free key and value lists.
14310
14311         * dbus/dbus-internals.c: (_dbus_type_to_string):
14312         Add the types we didn't have.
14313
14314         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
14315         (_dbus_marshal_validate_arg):
14316         Add NIL types.
14317
14318         * dbus/dbus-message.c: (dbus_message_set_sender):
14319         Remove todo about being able to set sender to NULL.
14320
14321         (dbus_message_set_is_error_reply),
14322         (dbus_message_get_is_error_reply):
14323         * dbus/dbus-message.h:
14324         New functions.
14325
14326         * dbus/dbus-protocol.h:
14327         Add error reply flag.
14328
14329         * test/data/valid-messages/opposite-endian.message:
14330         Add NIL type to test.
14331
14332 2003-01-31  Havoc Pennington  <hp@pobox.com>
14333
14334         * doc/dbus-specification.sgml: fully specify the header.  Add
14335         flags and major protocol version, and change header/body len to
14336         unsigned.
14337
14338         * dbus/dbus-message-builder.c (append_saved_length): append length
14339         as uint32
14340
14341         * dbus/dbus-message.c (dbus_message_create_header): change header
14342         length and body length to unsigned. Add the new fields from the
14343         spec
14344         (_dbus_message_loader_return_buffer): unsigned header/body len
14345
14346 2003-01-30  Havoc Pennington  <hp@pobox.com>
14347
14348         * dbus/dbus-auth.c: rework to use only REJECTED, no
14349         MECHANISMS
14350
14351         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14352         use REJECTED, suggested by Mark McLoughlin
14353
14354 2003-01-30  Havoc Pennington  <hp@pobox.com>
14355
14356         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14357         a better way to report errors here. e.g.  "unix address lacks
14358         path" or something. also "no such file" when the path doesn't
14359         exist, etc.
14360
14361         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14362         leaking list nodes
14363         (dbus_parse_address): add @todo about documenting address format,
14364         and allowing , and ; to be escaped
14365
14366 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14367
14368         * dbus/Makefile.am:
14369         Add dbus-address.[ch]
14370
14371         * dbus/dbus-address.c: (dbus_address_entry_free),
14372         (dbus_address_entries_free), (create_entry),
14373         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14374         (dbus_parse_address), (_dbus_address_test):
14375         * dbus/dbus-address.h:
14376         New files for dealing with address parsing.
14377
14378         * dbus/dbus-connection.c:
14379         Document timeout functions.
14380
14381         * dbus/dbus-message.c:
14382         Document dbus_message_new_from_message.
14383
14384         * dbus/dbus-server-debug.c:
14385         Document.
14386
14387         * dbus/dbus-server.c: (dbus_server_listen):
14388         Parse address and use correct server implementation.
14389
14390         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14391         * dbus/dbus-string.h:
14392         New function with test.
14393
14394         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14395         * dbus/dbus-test.h:
14396         Add address tests.
14397
14398         * dbus/dbus-transport-debug.c:
14399         Document.
14400
14401         * dbus/dbus-transport.c: (_dbus_transport_open):
14402         Parse address and use correct transport implementation.
14403
14404 2003-01-30  Havoc Pennington  <hp@pobox.com>
14405
14406         * dbus/dbus-message.c: use message->byte_order instead of
14407         DBUS_COMPILER_BYTE_ORDER throughout.
14408         (dbus_message_create_header): pad header to align the
14409         start of the body of the message to 8-byte boundary
14410
14411         * dbus/dbus-marshal.h: make all the demarshalers take const
14412         DBusString arguments.
14413
14414         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14415         validate message args here, so we don't have to do slow validation
14416         later, and so we catch bad messages as they are incoming. Also add
14417         better checks on header_len and body_len. Also fill in
14418         message->byte_order
14419
14420         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14421         implemented properly)
14422         (_dbus_string_validate_nul): new function to check all-nul
14423
14424         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14425         get_arg_end_pos and remove all validation
14426         (_dbus_marshal_validate_arg): actually do validation here.
14427
14428 2003-01-29  Havoc Pennington  <hp@pobox.com>
14429
14430         * dbus/dbus-message.c (check_message_handling): fix assertion
14431         failure on set_client_serial
14432
14433 2003-01-28  Havoc Pennington  <hp@pobox.com>
14434
14435         * dbus/dbus-server-debug.c: Add doc section comments
14436
14437         * dbus/dbus-transport-debug.c: add doc section comments
14438
14439 2003-01-28  Havoc Pennington  <hp@redhat.com>
14440
14441         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14442         the reverse order from how I had it
14443         (_dbus_string_base64_encode): reverse encoding order. I was
14444         basically byteswapping everything during encoding.
14445
14446 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14447
14448         * dbus/dbus-connection-internal.h:
14449         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14450         (_dbus_connection_remove_timeout):
14451         Add functions for adding and removing timeouts.
14452
14453         * dbus/dbus-message.c: (dbus_message_new_from_message):
14454         Add new function that takes a message and creates an exact
14455         copy of it, but with the refcount set to 1.
14456         (check_message_handling):
14457         Fix build error.
14458
14459         * dbus/dbus-server-protected.h:
14460         * dbus/dbus-server.c: (_dbus_server_init_base),
14461         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14462         (dbus_server_set_timeout_functions):
14463         (_dbus_server_remove_timeout):
14464         New functions so that a server can add and remove timeouts.
14465
14466         (dbus_server_listen):
14467         Add commented out call to dbus_server_debug_new.
14468
14469         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14470         Actually set the handler, doh.
14471
14472         * dbus/dbus-transport.c: (_dbus_transport_open):
14473         Add commented out call to dbus_transport_debug_client_new.
14474
14475         * dbus/Makefile.am:
14476         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14477
14478 2003-01-28  Havoc Pennington  <hp@pobox.com>
14479
14480         * dbus/dbus-message.c (check_message_handling): function to check
14481         on the loaded message, iterates over it etc.
14482
14483 2003-01-28  Havoc Pennington  <hp@pobox.com>
14484
14485         * test/Makefile.am (dist-hook): fix make distdir
14486
14487         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14488
14489 2003-01-27  Havoc Pennington  <hp@pobox.com>
14490
14491         * dbus/dbus-mempool.c (time_for_size): replace printf with
14492         _dbus_verbose
14493
14494         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14495         empty lines; fix the SAVE_LENGTH stuff to be
14496         START_LENGTH/END_LENGTH so it actually works; couple other
14497         bugfixes
14498
14499         * test/Makefile.am (dist-hook): add dist-hook for .message files
14500
14501         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14502         can be constant or locked.
14503         (_dbus_string_free): allow freeing a const string as
14504         documented/intended
14505
14506         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14507
14508         * dbus/dbus-test-main.c (main): take an argument which is the
14509         directory containing test data
14510
14511         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14512         argument to this and load all the messages in test/data/
14513         checking that they can be loaded or not loaded as appropriate.
14514
14515 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14516
14517         * bus/dispatch.c: (bus_dispatch_message_handler):
14518         Dispatch messages sent to services.
14519
14520         * bus/driver.c: (bus_driver_send_service_deleted),
14521         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14522         (bus_driver_send_service_acquired):
14523         Add helper functions for sending service related messages.
14524
14525         (bus_driver_send_welcome_message):
14526         Send HELLO_REPLY instead of WELCOME.
14527
14528         (bus_driver_handle_list_services):
14529         Send LIST_SERVICES_REPLY instead of SERVICES.
14530
14531         (bus_driver_handle_own_service),
14532         (bus_driver_handle_service_exists):
14533         New message handlers.
14534
14535         (bus_driver_handle_message):
14536         Invoke new message handlers.
14537
14538         (bus_driver_remove_connection):
14539         Don't remove any services here since that's done automatically
14540         by bus_service_remove_owner now.
14541
14542         * bus/driver.h:
14543         New function signatures.
14544
14545         * bus/services.c: (bus_service_add_owner):
14546         Send ServiceAcquired message if we're the only primary owner.
14547
14548         (bus_service_remove_owner):
14549         Send ServiceAcquired/ServiceLost messages.
14550
14551         (bus_service_set_prohibit_replacement),
14552         (bus_service_get_prohibit_replacement):
14553         Functions for setting prohibit replacement.
14554
14555         (bus_service_has_owner):
14556         New function that checks if a connection is in the owner queue of
14557         a certain service.
14558
14559         * bus/services.h:
14560         Add new function signatures.
14561
14562         * dbus/dbus-list.c: (_dbus_list_test):
14563         Add tests for _dbus_list_remove_last and traversing the list backwards.
14564
14565         * dbus/dbus-list.h:
14566         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14567         go any further, so return NULL then.
14568
14569         * dbus/dbus-protocol.h:
14570         Add new messages, service flags and service replies.
14571
14572 2003-01-26  Havoc Pennington  <hp@pobox.com>
14573
14574         * dbus/dbus-message-builder.c: implement, completely untested.
14575
14576         * test/data/*: add data to be used in testing.
14577         ".message" files are our simple loadable text format.
14578         ".message-raw" will be binary dumps of messages.
14579
14580         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14581
14582 2003-01-26  Havoc Pennington  <hp@pobox.com>
14583
14584         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14585
14586         * dbus/dbus-errors.c (dbus_result_to_string): add
14587         file errors
14588
14589         * dbus/dbus-message-builder.c: new file, will contain code to load
14590         up messages from files. Not implemented yet.
14591
14592 2003-01-26  Havoc Pennington  <hp@pobox.com>
14593
14594         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14595         the sender by setting to NULL
14596
14597 2003-01-26  Havoc Pennington  <hp@pobox.com>
14598
14599         The unit tests pass, but otherwise untested.  If it breaks, the
14600         tests should have been better. ;-)
14601
14602         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14603         the connection.
14604
14605         * dbus/dbus-message.c: redo everything so we maintain
14606         message->header as the only copy of the various fields.
14607         This avoids the possibility of out-of-memory in some cases,
14608         for example dbus_message_lock() can't run out of memory anymore,
14609         and avoids extra copying. Figured I may as well go ahead and do
14610         this since it was busted for dbus_message_lock to not return
14611         failure on OOM, and dbus_message_write_header was totally
14612         unchecked for OOM. Also fixed some random other bugs.
14613
14614         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14615         that strings are nul-terminated. Also, end_pos can be equal
14616         to string length just not greater than, I think.
14617         (_dbus_marshal_set_int32): new function
14618         (_dbus_marshal_set_uint32): new function
14619         (_dbus_marshal_set_string): new function
14620
14621         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14622         a warning, init timeout_list to NULL
14623         (dbus_connection_send_message): don't use uninitialized variable
14624         "serial"
14625
14626         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14627
14628 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14629
14630         * bus/driver.c: (bus_driver_handle_hello),
14631         (bus_driver_send_welcome_message):
14632         Plug leaks
14633
14634 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14635
14636         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14637         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14638         (dbus_connection_unref):
14639         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14640         * dbus/dbus-message.c: (dbus_message_unref),
14641         Plug memory leaks.
14642
14643         (dbus_message_get_fields):
14644         Remove debugging printout.
14645
14646         (_dbus_message_loader_return_buffer):
14647         Don't store the header string.
14648
14649         (_dbus_message_test):
14650         Plug leaks.
14651
14652 2003-01-26  Richard Hult  <rhult@codefactory.se>
14653
14654         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14655         the file descriptor list, since it can change under us.
14656
14657 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14658
14659         * glib/dbus-gmain.c: (dbus_connection_prepare),
14660         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14661         (remove_watch), (dbus_connection_hookup_with_g_main):
14662         Rewrite the glib handling to use its own GSource instead of a
14663         GIOChannel so we can catch messages put in the queue while waiting
14664         for a reply.
14665
14666 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14667
14668         * bus/Makefile.am:
14669         * bus/connection.c: (connection_disconnect_handler),
14670         (connection_watch_callback), (bus_connection_setup):
14671         * bus/dispatch.c: (send_one_message),
14672         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14673         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14674         * bus/dispatch.h:
14675         * bus/driver.c: (bus_driver_send_service_deleted),
14676         (bus_driver_send_service_created), (bus_driver_handle_hello),
14677         (bus_driver_send_welcome_message),
14678         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14679         (bus_driver_handle_message):
14680         * bus/driver.h:
14681         Refactor code, put the message dispatching in its own file. Use
14682         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14683         is disconnected.
14684
14685 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14686
14687         * dbus/dbus-internals.h:
14688         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14689
14690         * dbus/dbus-message.c: (dbus_message_get_sender):
14691         * dbus/dbus-message.h:
14692         Implement dbus_message_get_sender.
14693
14694         * dbus/dbus-protocol.h:
14695         Add message and service defines.
14696
14697 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14698
14699         * dbus/dbus-connection.c: (dbus_connection_send_message):
14700         * dbus/dbus-message-internal.h:
14701         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14702         (dbus_message_write_header):
14703         Remove _dbus_messag_unlock and don't set the client serial on a
14704         message if one already exists.
14705
14706 2003-01-24  Havoc Pennington  <hp@pobox.com>
14707
14708         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14709         list_pool
14710
14711         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14712         on OOM
14713
14714 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14715
14716         * dbus/dbus-list.c: (alloc_link), (free_link):
14717         Use a memory pool for the links.
14718
14719 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14720
14721         * bus/connection.c: (bus_connection_foreach):
14722         * bus/connection.h:
14723         Add new bus_connection_foreach function.
14724
14725         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14726         Add function that broadcasts a message to all clients.
14727
14728         (bus_driver_send_service_created), (bus_driver_handle_hello),
14729         (bus_driver_send_welcome_message),
14730         (bus_driver_handle_list_services), (bus_driver_message_handler):
14731         Implement functions that take care of listing services, and notifying
14732         clients when new services are created.
14733
14734         * bus/services.c: (bus_services_list):
14735         * bus/services.h:
14736         Add new function that returns an array of strings with the currently
14737         registered services.
14738
14739         * glib/dbus-glib.h:
14740         * glib/dbus-gmain.c:
14741         Update copyright year.
14742
14743 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14744
14745         * dbus/dbus-connection.c: (dbus_connection_send_message):
14746         Unlock the message in case it was sent earlier.
14747
14748         (dbus_connection_send_message_with_reply_and_block):
14749         Remove the reply message from the list.
14750
14751         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14752         Set array_len and new_pos correctly.
14753
14754         (_dbus_marshal_test):
14755         Remove debug output.
14756
14757         * dbus/dbus-message-internal.h:
14758         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14759         New function that returns the reply serial.
14760
14761         (_dbus_message_unlock):
14762         New function that unlocks a message and resets its header.
14763
14764         (dbus_message_append_string_array),
14765         (dbus_message_get_fields_valist),
14766         (dbus_message_iter_get_field_type),
14767         (dbus_message_iter_get_string_array),
14768         (dbus_message_get_fields),
14769         (dbus_message_append_fields_valist):
14770         Handle string arrays.
14771
14772         (dbus_message_set_sender):
14773         Make this function public since the bus daemon needs it.
14774
14775         (decode_header_data):
14776         Set the reply serial to -1 initially.
14777
14778         * dbus/dbus-message.h:
14779         Add dbus_message_set_sender.
14780
14781 2003-01-24  Havoc Pennington  <hp@pobox.com>
14782
14783         * doc/dbus-specification.sgml: add some stuff
14784
14785 2003-01-22  Havoc Pennington  <hp@pobox.com>
14786
14787         * doc/dbus-specification.sgml: Start to document the protocol.
14788
14789 2003-01-22  Havoc Pennington  <hp@pobox.com>
14790
14791         * dbus/dbus-connection.c
14792         (dbus_connection_send_message_with_reply_and_block): add some @todo
14793
14794         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14795
14796 2003-01-21  Havoc Pennington  <hp@pobox.com>
14797
14798         (patch untested because can't compile)
14799
14800         * bus/driver.c (create_unique_client_name): make this function
14801         never recycle client names. Also, caller should initialize
14802         the DBusString.
14803
14804         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14805
14806 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14807
14808         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14809         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14810         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14811         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14812         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14813         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14814         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14815         * dbus/dbus-marshal.h:
14816         * dbus/dbus-protocol.h:
14817         Add support for marshalling and demarshalling integer, double
14818         and string arrays.
14819
14820 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14821
14822         * bus/Makefile.am:
14823         Add driver.[ch]
14824
14825         * bus/connection.c: (connection_disconnect_handler):
14826         Remove the connection from the bus driver's list.
14827
14828         (connection_watch_callback): Dispatch messages.
14829
14830         (free_connection_data): Free connection name.
14831
14832         (bus_connection_setup): Add connection to the bus driver's list.
14833         (bus_connection_remove_owned_service):
14834         (bus_connection_set_name), (bus_connection_get_name):
14835         Add functions for setting and getting the connection's name.
14836
14837         * bus/connection.h:
14838         Add function headers.
14839
14840         * bus/driver.c: (create_unique_client_name),
14841         (bus_driver_handle_hello_message),
14842         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14843         (bus_driver_add_connection), (bus_driver_remove_connection):
14844         * bus/driver.h:
14845         * bus/main.c:
14846         * bus/services.c: (bus_service_free):
14847         * bus/services.h:
14848         New file that handles communication and registreation with the bus
14849         itself.
14850
14851 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14852
14853         * dbus/dbus-connection.c: (dbus_connection_send_message):
14854         Add a new client_serial parameter.
14855
14856         (dbus_connection_send_message_with_reply):
14857         Remove a @todo since we've implemented the blocking function.
14858
14859         (dbus_connection_send_message_with_reply_and_block):
14860         New function that sends a message and waits for a reply and
14861         then returns the reply.
14862
14863         * dbus/dbus-connection.h:
14864         Add new functions.
14865
14866         * dbus/dbus-errors.c: (dbus_result_to_string):
14867         * dbus/dbus-errors.h:
14868         Add new DBUS_RESULT.
14869
14870         * dbus/dbus-message-internal.h:
14871         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14872         (_dbus_message_set_sender), (dbus_message_write_header),
14873         (dbus_message_new_reply), (decode_header_data),
14874         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14875         * dbus/dbus-message.h:
14876         Add new functions that set the reply serial and sender.
14877         Also marshal and demarshal them correctly and add test.
14878
14879         * dbus/dbus-protocol.h:
14880         Add new DBUS_MESSAGE_TYPE_SENDER.
14881
14882         * glib/dbus-glib.h:
14883         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14884         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14885         (dbus_connection_hookup_with_g_main):
14886         * glib/test-dbus-glib.c: (main):
14887         Rewrite to use GIOChannel and remove the GSource crack.
14888
14889         * test/echo-client.c: (main):
14890         * test/watch.c: (check_messages):
14891         Update for changed APIs
14892
14893 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14894
14895         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14896
14897         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14898         Create a DBusTimeoutList.
14899         (dbus_connection_set_timeout_functions): Add new function to
14900         set timeout callbacks
14901
14902         * dbus/dbus-connection.h: Add public DBusTimeout API.
14903
14904         * dbus/dbus-message.c: (dbus_message_get_service):
14905         * dbus/dbus-message.h:  New function.
14906
14907         * dbus/dbus-server.c: Fix small doc typo.
14908
14909         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14910
14911 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14912
14913         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14914         of the string, just as long as specified.
14915
14916 2003-01-19  Havoc Pennington  <hp@pobox.com>
14917
14918         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14919         new function
14920
14921         * dbus/dbus-server.c (dbus_server_set_max_connections)
14922         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14923         keep track of current number of connections, and add API for
14924         setting a max (but haven't implemented enforcing the max yet)
14925
14926 2003-01-18  Havoc Pennington  <hp@pobox.com>
14927
14928         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14929         reading/writing if read_watch != NULL or write_watch != NULL.
14930
14931         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14932         the message loader code to actually load message->header and
14933         message->body into the newly-created message.
14934
14935         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14936         in OOM case
14937
14938         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14939         (dbus_connection_get_max_message_size)
14940         (dbus_connection_set_max_live_messages_size)
14941         (dbus_connection_get_max_live_messages_size): implement some
14942         resource limitation functions
14943
14944         * dbus/dbus-resources.c: new file implementing some of the
14945         resource limits stuff
14946
14947         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14948         missing docs, add @todo to handle OOM etc.
14949
14950         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14951         docs
14952
14953 2003-01-18  Havoc Pennington  <hp@pobox.com>
14954
14955         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14956         connection if it hasn't been already.
14957
14958         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14959         replace with DisconnectFunction.
14960
14961 2003-01-18  Havoc Pennington  <hp@pobox.com>
14962
14963         Building --disable-verbose-mode --disable-asserts --disable-tests
14964         cuts the library from 112K to 45K or so
14965
14966         * configure.in: check for varargs macro support,
14967         add --enable-verbose-mode, --enable-asserts.
14968
14969         * dbus/dbus-internals.h (_dbus_assert): support
14970         DBUS_DISABLE_ASSERT
14971         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14972
14973 2003-01-18  Havoc Pennington  <hp@pobox.com>
14974
14975         * dbus/dbus-test.c: include config.h so that tests actually run
14976
14977         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14978         so the failure mode when that assumption fails will be plenty
14979         obvious.
14980
14981 2003-01-18  Havoc Pennington  <hp@pobox.com>
14982
14983         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14984
14985         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14986         the distribution
14987
14988         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14989         since we don't want to use those in make check
14990
14991 2003-01-15  Havoc Pennington  <hp@redhat.com>
14992
14993         Release 0.2
14994
14995         * NEWS: update
14996
14997 2003-01-15  Havoc Pennington  <hp@redhat.com>
14998
14999         * test/Makefile.am: fix so that test source code ends up in the
15000         distribution on make distcheck
15001
15002 2003-01-15  Havoc Pennington  <hp@redhat.com>
15003
15004         Release 0.1.
15005
15006         * NEWS: update
15007
15008 2003-01-15  Havoc Pennington  <hp@redhat.com>
15009
15010         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
15011         fix build when --disable-tests
15012
15013         * Makefile.am (EXTRA_DIST): put HACKING in here
15014
15015         * HACKING: document procedure for making a tarball release.
15016
15017 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
15018
15019         * bus/connection.c: (connection_error_handler),
15020         (bus_connection_setup):
15021         * bus/main.c: (main):
15022         Make sure that the DBusConnectionData struct is NULLed
15023         out to prevent a segfault.
15024
15025         * dbus/dbus-errors.c: (dbus_result_to_string):
15026         * dbus/dbus-errors.h:
15027         * dbus/dbus-message.c: (dbus_message_get_fields),
15028         (dbus_message_get_fields_valist), (_dbus_message_test):
15029         * dbus/dbus-message.h:
15030         Make dbus_message_get_fields return a result code so we can
15031         track invalid fields as well as oom.
15032
15033 2003-01-11  Havoc Pennington  <hp@pobox.com>
15034
15035         * configure.in: change --enable-test/--enable-ansi action-if-given
15036         to enable_foo=$enableval instead of enable_foo=yes
15037
15038 2003-01-08  Havoc Pennington  <hp@pobox.com>
15039
15040         * dbus/dbus-string.c (_dbus_string_align_length): new function
15041
15042         * dbus/dbus-test-main.c: move main() for test app here
15043         * dbus/dbus-test.c
15044         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
15045         symbol to run tests, because dbus-test isn't in the main
15046         library
15047
15048         Code review nitpicks.
15049
15050         * dbus/dbus-message.c (dbus_message_write_header): add newlines
15051         for people with narrow emacs ;-). Assert client_serial was filled
15052         in. Assert message->name != NULL.
15053         (dbus_message_append_fields): have "first_field_type" arg separate
15054         from va list, needed for C++ binding that also uses varargs IIRC
15055         and helps with type safety
15056         (dbus_message_new): add @todo about using DBusString to store
15057         service/name internally
15058         (dbus_message_new): don't leak ->service and ->name on OOM later
15059         in the function
15060         (dbus_message_unref): free the service name
15061         (dbus_message_get_fields): same change to varargs
15062         i.e. first_field_type
15063         (_dbus_message_loader_return_buffer): assert that the message data
15064         is aligned (if not it's a bug in our code). Put in verbose griping
15065         about why we set corrupted = TRUE.
15066         (decode_header_data): add FIXME that char* is evil.  Was going to
15067         add FIXME about evil locale-specific string.h strncmp, but just
15068         switched to wacky string-as-uint32 optimization. Move check for
15069         "no room for field name" above get_const_data_len() to avoid
15070         assertion failure in get_const_data_len if we have trailing 2
15071         bytes or the like. Check for service and name fields being
15072         provided twice. Don't leak service/name on error. Require field
15073         names to be aligned to 4 bytes.
15074
15075         * dbus/dbus-marshal.c: move byte swap stuff to header
15076         (_dbus_pack_int32): uscore-prefix
15077         (_dbus_unpack_int32): uscore-prefix
15078         (_dbus_unpack_uint32): export
15079         (_dbus_demarshal_string): add @todo complaining about use of
15080         memcpy()
15081         (_dbus_marshal_get_field_end_pos): add @todo about bad error
15082         handling allowing corrupt data to go unchecked
15083
15084 2003-01-08  Havoc Pennington  <hp@redhat.com>
15085
15086         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
15087         to the select() as needed for authentication. (should be using
15088         _dbus_poll() not select, but for another day)
15089
15090         * dbus/dbus.h: include dbus/dbus-protocol.h
15091
15092 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
15093
15094         * dbus/Makefile.am (dbusinclude_HEADERS): Install
15095         dbus-connection.h
15096
15097 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
15098
15099         * dbus/dbus-internals.c: (_dbus_type_to_string):
15100         New function that returns a string describing a type.
15101
15102         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
15103         * dbus/dbus-marshal.h:
15104         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
15105         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
15106         (dbus_message_iter_get_byte_array):
15107         * dbus/dbus-message.h:
15108         Add new convenience functions for appending and getting message fields.
15109         Also add demarshalling routines for byte arrays.
15110
15111 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15112
15113         * dbus/dbus-connection-internal.h:
15114         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
15115         (_dbus_connection_get_next_client_serial),
15116         (dbus_connection_send_message):
15117         * dbus/dbus-internals.h:
15118         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
15119         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
15120         (_dbus_marshal_uint32), (_dbus_demarshal_double),
15121         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
15122         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
15123         (_dbus_verbose_bytes), (_dbus_marshal_test):
15124         * dbus/dbus-marshal.h:
15125         * dbus/dbus-message-internal.h:
15126         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
15127         (dbus_message_write_header), (_dbus_message_lock),
15128         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
15129         (dbus_message_get_name), (dbus_message_append_int32),
15130         (dbus_message_append_uint32), (dbus_message_append_double),
15131         (dbus_message_append_string), (dbus_message_append_byte_array),
15132         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
15133         (dbus_message_iter_unref), (dbus_message_iter_has_next),
15134         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
15135         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
15136         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
15137         (decode_header_data), (_dbus_message_loader_return_buffer),
15138         (message_iter_test), (_dbus_message_test):
15139         * dbus/dbus-message.h:
15140         * dbus/dbus-protocol.h:
15141         * dbus/dbus-test.c: (main):
15142         * dbus/dbus-test.h:
15143         * glib/test-dbus-glib.c: (message_handler), (main):
15144         * test/echo-client.c: (main):
15145         * test/watch.c: (check_messages):
15146         Make messages sendable and receivable for real.
15147
15148 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15149
15150         * dbus/dbus-marshal.c: (_dbus_marshal_double),
15151         (_dbus_marshal_string), (_dbus_marshal_byte_array):
15152         * dbus/dbus-message.c: (dbus_message_append_int32),
15153         (dbus_message_append_uint32), (dbus_message_append_double),
15154         (dbus_message_append_string), (dbus_message_append_byte_array):
15155         Handle OOM restoration.
15156
15157 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15158
15159         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15160         (_dbus_demarshal_string), (_dbus_marshal_test):
15161         * dbus/dbus-marshal.h:
15162         * dbus/dbus-message.c: (dbus_message_get_name),
15163         Document these functions.
15164
15165         (dbus_message_append_int32), (dbus_message_append_uint32),
15166         (dbus_message_append_double), (dbus_message_append_string),
15167         (dbus_message_append_byte_array):
15168         * dbus/dbus-message.h:
15169         Add functions for adding message fields of different types.
15170
15171         * dbus/dbus-protocol.h:
15172         Add the different types.
15173
15174 2003-01-05  Havoc Pennington  <hp@pobox.com>
15175
15176         * bus/connection.c: implement routines for handling connections,
15177         first thing is keeping a list of owned services on each connection
15178         and setting up watches etc.
15179
15180         * bus/services.c: implement a mapping from service names to lists
15181         of connections
15182
15183         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
15184
15185         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
15186         to use static mutexes for global data
15187
15188         * dbus/dbus-connection.c (dbus_connection_set_data): add new
15189         collection of functions to set/get application-specific data
15190         on the DBusConnection.
15191
15192 2003-01-04  Havoc Pennington  <hp@pobox.com>
15193
15194         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
15195         (_dbus_poll): new function
15196
15197         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
15198         copied from GLib
15199
15200         * bus/loop.c: initial code for the daemon main loop
15201
15202 2003-01-04  Havoc Pennington  <hp@pobox.com>
15203
15204         * test/watch.c (error_handler): make it safe if the error handler
15205         is called multiple times (if we s/error handler/disconnect
15206         handler/ we should just guarantee it's called only once)
15207
15208         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
15209         error handler on disconnect (it's quite possible we should
15210         just change the error handler to a "disconnect handler," I'm
15211         not sure we have any other meaningful errors)
15212
15213         * configure.in: check for getpwnam_r
15214
15215         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
15216         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
15217         mechanism as in SASL spec, using socket credentials
15218
15219         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
15220         (_dbus_send_credentials_unix_socket): new function
15221
15222         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
15223         dbus_accept()
15224         (_dbus_write): only check errno if <0 returned
15225         (_dbus_write_two): ditto
15226
15227 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
15228
15229         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
15230         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
15231         (_dbus_marshal_test):
15232         * dbus/dbus-marshal.h:
15233         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
15234         to _dbus_marshal_utf8_string. Also fix some tests.
15235
15236 2002-12-28  Harri Porten  <porten@kde.org>
15237
15238         * configure.in: added check for C++ compiler and a very cheesy
15239         check for the Qt integration
15240
15241         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
15242
15243         * qt/Makefile.am: added
15244
15245         * qt/.cvsignore: added
15246
15247         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
15248         latter, added #ifdef QT_THREAD_SUPPORT guard.
15249
15250         * dbus/Makefile.am: added missing headers for make dist
15251
15252 2002-12-28  Kristian Rietveld  <kris@gtk.org>
15253
15254         * dbus/Makefile.am: fixup export-symbols-regex.
15255
15256 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15257
15258         * acinclude.m4: Add this file and put the
15259         PKG_CHECK_MODULE macro in it.
15260
15261 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15262
15263         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15264         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15265         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15266         (_dbus_marshal_test):
15267         Make the demarshalling routines align the pos argument.
15268         Add string marshalling tests and fix the obvious bugs
15269         discovered.
15270
15271 2002-12-26  Havoc Pennington  <hp@pobox.com>
15272
15273         * dbus/dbus-auth.c: fixes fixes fixes
15274
15275         * dbus/dbus-transport-unix.c: wire up support for
15276         encoding/decoding data on the wire
15277
15278         * dbus/dbus-auth.c (_dbus_auth_encode_data)
15279         (_dbus_auth_decode_data): append to target string
15280         instead of nuking it.
15281
15282 2002-12-26  Havoc Pennington  <hp@pobox.com>
15283
15284         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
15285         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
15286         doh
15287
15288         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
15289         avoid swap_bytes() overhead (ignoring possible assembly stuff for
15290         now). Main point is because I wanted unpack_uint32 to implement
15291         _dbus_verbose_bytes
15292         (_dbus_verbose_bytes): new function
15293
15294         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
15295
15296         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
15297         mechanism to handle a corrupt message stream
15298         (_dbus_message_loader_new): fix preallocation to only prealloc,
15299         not prelengthen
15300
15301         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
15302         (_dbus_string_test): enhance tests for copy/move and fix the
15303         functions
15304
15305         * dbus/dbus-transport-unix.c: Hold references in more places to
15306         avoid reentrancy problems
15307
15308         * dbus/dbus-transport.c: ditto
15309
15310         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
15311         leak reference count in no-message case
15312
15313         * test/watch.c (do_mainloop): handle adding/removing watches
15314         during iteration over the watches. Also, ref the connection/server
15315         stored on a watch, so we don't try to mangle a destroyed one.
15316
15317         * dbus/dbus-transport-unix.c (do_authentication): perform
15318         authentication
15319
15320         * dbus/dbus-auth.c (get_state): add a state
15321         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
15322         (_dbus_auth_get_unused_bytes): append the unused bytes
15323         to the passed in string, rather than prepend
15324
15325         * dbus/dbus-transport.c (_dbus_transport_init_base): create
15326         the auth conversation DBusAuth
15327
15328         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
15329         (_dbus_transport_new_for_domain_socket): when creating a
15330         transport, pass in whether it's a client-side or server-side
15331         transport so we know which DBusAuth to create
15332
15333 2002-12-03  Havoc Pennington  <hp@pobox.com>
15334
15335         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15336         _after_ finalizing the derived members
15337         (unix_connection_set): unref watch if we fail to add it
15338
15339         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15340         transport first, so that the connection owned by the
15341         transport will be valid as the transport finalizes.
15342
15343         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15344         if necessary, and remove watches from the connection.
15345
15346         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15347
15348 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15349
15350         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15351         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15352         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15353         (_dbus_marshal_test):
15354         * dbus/dbus-marshal.h:
15355         Add string marshal functions and have the demarshal functions
15356         return the new position.
15357
15358 2002-12-25  Havoc Pennington  <hp@pobox.com>
15359
15360         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15361         it is a simple protocol that just maps directly to SASL.
15362
15363         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15364         initial implementation, not actually used yet.
15365
15366         * dbus/dbus-string.c (_dbus_string_find): new function
15367         (_dbus_string_equal): new function
15368         (_dbus_string_base64_encode): new function
15369         (_dbus_string_base64_decode): new function
15370
15371 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15372
15373         * dbus/Makefile.am:
15374         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15375         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15376         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15377         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15378         * dbus/dbus-marshal.h:
15379         * dbus/dbus-protocol.h:
15380         * dbus/dbus-test.c: (main):
15381         * dbus/dbus-test.h:
15382         Add un-optimized marshalling/demarshalling routines.
15383
15384 2002-12-25  Harri Porten  <porten@kde.org>
15385
15386         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15387
15388 2002-12-24  Zack Rusin  <zack@kde.org>
15389
15390         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15391         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15392         main loop stuff
15393
15394 2002-12-24  Havoc Pennington  <hp@pobox.com>
15395
15396         * glib/dbus-gthread.c: fix include
15397
15398         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15399         I think glib API needs to change, though, as you don't
15400         want to use DBusMessageFunction, you want to use the
15401         DBusMessageHandler object. Probably
15402         dbus_connection_open_with_g_main_loop()
15403         and dbus_connection_setup_g_main_loop() or something like that
15404         (but think of better names...) that just create a connection
15405         that has watch/timeout functions etc. already set up.
15406
15407         * dbus/dbus-connection.c
15408         (dbus_connection_send_message_with_reply): new function just to
15409         show how the message handler helps us deal with replies.
15410
15411         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15412
15413         * dbus/dbus-string.c (_dbus_string_test): free a string that
15414         wasn't
15415
15416         * dbus/dbus-hash.c: use memory pools for the hash entries
15417         (rebuild_table): be more paranoid about overflow, and
15418         shrink table when we can
15419         (_dbus_hash_test): reduce number of sprintfs and write
15420         valid C89. Add tests for case where we grow and then
15421         shrink the hash table.
15422
15423         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15424
15425         * dbus/dbus-connection.c (dbus_connection_register_handler)
15426         (dbus_connection_unregister_handler): new functions
15427
15428         * dbus/dbus-message.c (dbus_message_get_name): new
15429
15430         * dbus/dbus-list.c: fix docs typo
15431
15432         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15433         an object representing a handler for messages.
15434
15435 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15436
15437         * glib/dbus-glib.h:
15438         * glib/dbus-gthread.c: (dbus_gthread_init):
15439         Don't use the gdbus prefix for public functions.
15440
15441 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15442
15443         * Makefile.am:
15444         * configure.in:
15445         Add GLib checks and fixup .pc files
15446
15447         * glib/Makefile.am:
15448         * glib/dbus-glib.h:
15449         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15450         (gdbus_connection_check), (gdbus_connection_dispatch),
15451         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15452         (dbus_connection_gsource_new):
15453         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15454         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15455         * glib/test-dbus-glib.c: (message_handler), (main):
15456         Add GLib support.
15457
15458 2002-12-15  Harri Porten  <porten@kde.org>
15459
15460         * autogen.sh: check for libtoolize before attempting to use it
15461
15462         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15463         struct.
15464
15465         * .cvsignore: ignore more stamp files
15466
15467         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15468
15469         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15470         without make install.
15471
15472 2002-12-15  Havoc Pennington  <hp@pobox.com>
15473
15474         * dbus/dbus-threads.c: add thread stubs that a higher library
15475         layer can fill in. e.g. the GLib wrapper might fill them in with
15476         GThread stuff. We still need to use this thread API to
15477         thread-safe-ize the library.
15478
15479 2002-12-12  Havoc Pennington  <hp@pobox.com>
15480
15481         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15482         below new interfaces and include fewer system headers.
15483
15484         * dbus/dbus-sysdeps.c (_dbus_read): new function
15485         (_dbus_write): new function
15486         (_dbus_write_two): new function
15487         (_dbus_connect_unix_socket): new function
15488         (_dbus_listen_unix_socket): new function
15489
15490         * dbus/dbus-message-internal.h: change interfaces to use
15491         DBusString
15492
15493 2002-12-11  Havoc Pennington  <hp@pobox.com>
15494
15495         * dbus/dbus-types.h: add dbus_unichar
15496
15497         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15498
15499         * dbus/dbus-connection.c (dbus_connection_send_message): return
15500         TRUE on success
15501
15502         * dbus/dbus-transport.c: include dbus-watch.h
15503
15504         * dbus/dbus-connection.c: include dbus-message-internal.h
15505
15506         * HACKING: add file with coding guidelines stuff.
15507
15508         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15509         handling here, for security purposes (as in vsftpd). Not actually
15510         using this class yet.
15511
15512         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15513         system/libc usage here, as in vsftpd, for ease of auditing (and
15514         should also simplify portability). Haven't actually moved all the
15515         system/libc usage into here yet.
15516
15517 2002-11-25  Havoc Pennington  <hp@pobox.com>
15518
15519         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15520         always print the first verbose message.
15521
15522 2002-11-24  Havoc Pennington  <hp@pobox.com>
15523
15524         * test/echo-client.c, test/echo-server.c: cheesy test
15525         clients.
15526
15527         * configure.in (AC_CHECK_FUNCS): check for writev
15528
15529         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15530         function
15531
15532         * dbus/dbus-list.c (_dbus_list_foreach): new function
15533
15534         * dbus/dbus-internals.c (_dbus_verbose): new function
15535
15536         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15537         representing a server that listens for connections.
15538
15539         * dbus/.cvsignore: create
15540
15541         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15542         public API for reporting errors
15543
15544         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15545         public object representing a connection that
15546         sends/receives messages. (Same object used for
15547         both client and server.)
15548
15549         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15550         Basic abstraction for different kinds of stream
15551         that we might read/write messages from.
15552
15553 2002-11-23  Havoc Pennington  <hp@pobox.com>
15554
15555         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15556         _DBUS_INT_MAX
15557
15558         * dbus/dbus-test.c (main): add list test, and include
15559         dbus-test.h as intended
15560
15561         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15562         (_dbus_hash_table_remove_int): return value indicates
15563         whether the entry existed to remove
15564
15565         * dbus/dbus-list.c: add linked list utility class,
15566         with docs and tests
15567
15568         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15569         array sometimes.
15570
15571 2002-11-23  Havoc Pennington  <hp@pobox.com>
15572
15573         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15574         DBUS_END_DECLS to nothing, that should fix this once and for all
15575
15576         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15577
15578         * dbus/dbus-message.c, dbus/dbus-hash.c:
15579         add some missing @brief
15580
15581 2002-11-23  Havoc Pennington  <hp@pobox.com>
15582
15583         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15584         to avoid confusing Doxygen
15585
15586         * dbus/dbus-hash.c: @} not }@
15587
15588         * dbus/dbus-message.c (struct DBusMessage): split out
15589         internals docs
15590
15591 2002-11-23  Havoc Pennington  <hp@pobox.com>
15592
15593         * configure.in: pile on more warning flags if using gcc
15594
15595         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15596         to document static functions
15597
15598         * configure.in: add summary to end of configure so it
15599         looks nice and attractive
15600
15601         * dbus/dbus-hash.c: finish implementation and write unit
15602         tests and docs
15603
15604         * configure.in: add --enable-tests to enable unit tests
15605
15606         * dbus/dbus-test.c: test program to run unit tests
15607         for all files in dbus/*, initially runs a test for
15608         dbus-hash.c
15609
15610         * dbus/dbus-internals.h: file to hold some internal utility stuff
15611
15612 2002-11-22  Havoc Pennington  <hp@redhat.com>
15613
15614         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15615         "ported" away from Tcl
15616
15617         * dbus/dbus-types.h: header for types such as dbus_bool_t
15618
15619 2002-11-22  Havoc Pennington  <hp@redhat.com>
15620
15621         * dbus/dbus.h: fixups for doc warnings
15622
15623         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15624         macros
15625         (QUIET): make it quiet so we can see warnings
15626
15627         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15628
15629 2002-11-22  Havoc Pennington  <hp@redhat.com>
15630
15631         * Makefile.am: include "Doxyfile" target in all-local
15632
15633         * configure.in: generate the Doxyfile
15634
15635         * Doxyfile.in: move Doxyfile here, so we can use
15636         configure to generate a Doxyfile with the right
15637         version number etc.
15638
15639 2002-11-22  Havoc Pennington  <hp@redhat.com>
15640
15641         * dbus/dbus-message.c: move inline docs into .c file
15642
15643         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15644         so all docs are under doc/
15645         (MAN_EXTENSION): generate man pages. Use extension
15646         ".3dbus" which matches ".3qt" on my system,
15647         I guess this is OK, I don't know really.
15648         (FILE_PATTERNS): look for .c files not .h, makes sense
15649         for plain C I think
15650
15651 2002-11-22  Havoc Pennington  <hp@pobox.com>
15652
15653         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15654         because any app can be a server, and any app can be a client,
15655         the bus is a special kind of server.
15656
15657 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15658
15659         * Doxyfile : adding. Still needs Makefile rules to be generated
15660         automatically (just run "doxygen" in the toplevel dir for now to
15661         generate docs)
15662
15663         * dbus/dbus-message.h : Adding sample docs (javadoc since
15664         resembles gtk-doc a little more)
15665
15666         * dbus/dbus.h : Adding sample docs
15667
15668 2002-11-21  Havoc Pennington  <hp@redhat.com>
15669
15670         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15671         so we can allow ourselves to include files directly,
15672         instead of having to use dbus.h
15673
15674         * dbus/dbus.h: fill in
15675
15676         * dbus/dbus-message.h: sketch out a sample header file.
15677         Include griping if you include it directly instead of
15678         via dbus.h
15679
15680         * dbus/dbus-macros.h: new file with macros for extern "C",
15681         TRUE/FALSE, NULL, etc.
15682
15683         * doc/file-boilerplate.c: put include guards in here
15684
15685 2002-11-21  Havoc Pennington  <hp@redhat.com>
15686
15687         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15688
15689         * COPYING: include the GPL as well, and license code
15690         under both AFL and GPL.
15691
15692 2002-11-21  Havoc Pennington  <hp@redhat.com>
15693
15694         * acconfig.h: get rid of this
15695
15696         * autogen.sh (run_configure): add --no-configure option
15697
15698         * configure.in: remove AC_ARG_PROGRAM to make
15699         autoconf complain less. add AC_PREREQ.
15700         add AC_DEFINE third arg.
15701
15702 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15703
15704         * doc/Makefile.am:
15705         Fix references so we can distcheck.
15706
15707 2002-11-21  Havoc Pennington  <hp@redhat.com>
15708
15709         * Initial module creation
15710