* cmake/CMakeLists.txt: fixed creating of TEST_..._BINARY to make bus-test able to...
[platform/upstream/dbus.git] / ChangeLog
1 2007-05-22 Ralf.Habacker <ralf.habacker@freenet.de>
2
3         * cmake/CMakeLists.txt: fixed creating of TEST_..._BINARY to make 
4         bus-test able to find the binaries.
5
6 2007-05-21 Simon McVittie  <simon.mcvittie@collabora.co.uk>
7
8         * acinclude.m4, configure.in: In recent autotools, ${datadir} is
9         defined in terms of ${datarootdir}, so EXPANDED_DATADIR needs to be
10         expanded recursively. Rather than fixing configure.in to do this, I
11         grabbed the AS_AC_EXPAND macro from autostars.sf.net, which seems to be
12         commonly used.
13
14 2007-05-21 Simon McVittie  <simon.mcvittie@collabora.co.uk>
15
16         * update-dbus-docs.sh: Assorted improvements:
17         - Default user if $FDUSER is not set is the ssh default
18           (set in ~/.ssh/config or based on the local username), not a
19           hard-coded "johnp"
20         - Temporary checkout directory is created securely (preventing symlink
21           attacks), if mktemp(1) is available
22         - Use make -C rather than cd && make && cd ..
23
24 2007-05-21 Simon McVittie  <simon.mcvittie@collabora.co.uk>
25
26         * HACKING: Point to correct mailing list
27
28 2007-05-21 Simon McVittie  <simon.mcvittie@collabora.co.uk>
29
30         * doc/dbus-specification.xml: explicitly specify that STRING cannot
31         contain embedded NULs.
32
33 2007-05-20 Ralf.Habacker  <ralf.habacker@freenet.de>
34
35         * dbus/dbus-internal.c: fix inline problem on win32.
36
37 2007-05-20 Ralf.Habacker  <ralf.habacker@freenet.de>
38
39         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir): not reaching 
40         domain controller isn't an error, converted error message to verbose 
41         message.
42
43 2007-05-19 Ralf.Habacker  <ralf.habacker@freenet.de>
44
45         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): disabled 
46         tests not running on wince.
47
48 2007-05-19 Ralf.Habacker  <ralf.habacker@freenet.de>
49
50         * dbus/dbus-internals.c (_dbus_verbose_init): win32 requires 'varname=' 
51         to unset a environment variable. 
52
53 2007-05-19 Ralf.Habacker  <ralf.habacker@freenet.de>
54
55         * dbus/dbus-sysdeps.c (_dbus_setenv): win32 requires 'varname=' 
56         to unset a environment variable. 
57
58 2007-05-19 Ralf.Habacker  <ralf.habacker@freenet.de>
59
60         * bus/policy.c (bus_policy_create_client_policy): 
61         win32 temporary fix until the userdb stuff is ported completly.
62
63 2007-05-19  Ralf.Habacker  <ralf.habacker@freenet.de>
64
65         * dbus/dbus-server.c (listen_funcs): 
66         _dbus_server_listen_platform_specific is empty on win32, 
67         limited to unix only.
68
69         * dbus/dbus-server.c (valid_addresses): limit unix 
70         only addresses to unix. 
71
72 2007-05-18  Havoc Pennington  <hp@redhat.com>
73
74         * doc/dbus-specification.xml: add a GetAll to the Properties
75         interface.
76
77 2007-05-17 Ralf.Habacker  <ralf.habacker@freenet.de>
78  
79         * bus\config-parser.c (test_default_session_servicedirs):
80         win32 fix.
81
82 2007-05-17 Ralf.Habacker  <ralf.habacker@freenet.de>
83  
84         * configure.in: define constant DBUS_UNIX.
85
86 2007-05-14  Ralf Habacker <ralf.habacker@freenet.de>
87
88         * dbus/dbus-sysdeps-win.c (_dbus_printf_string_upper_bound):
89         compile fix for MS Platform SDK 6 
90         patch from Michael Luschas <mluschas@gmail.com>
91
92 2007-05-10  John (J5) Palmieri <johnp@redhat.com>
93
94         * dbus-1.pc.in: add daemondir to pc file
95         patch from Brian Cameron <brian.cameron at sun.com>
96
97 2007-05-04  Simon McVittie <simon.mcvittie@collabora.co.uk>
98
99         * doc/dbus-specification.xml: mention the reserved o.fd.DBus.Local
100         interface and the corresponding /o/fd/DBus/Local object path;
101         describe them as reserved and forbid using them in a sent message,
102         mentioning that in the reference implementation this will cause the
103         connection to be dropped. Patch approved by Havoc.
104
105 2007-04-28  Ralf Habacker <ralf.habacker@freenet.de>
106
107         * cmake/: don't install test applications and service files,
108         moved CMAKE_DEBUG_POSTFIX to top level CMakeLists.txt
109
110 2007-04-27  Havoc Pennington  <hp@redhat.com>
111
112         * dbus/dbus-sysdeps-unix.c (_dbus_open_socket): fix #10781 from
113         Tobias Nygren, checking pointer to fd vs. 0 rather than checking
114         the fd itself
115
116 2007-04-26 Ralf Habacker  <ralf.habacker@freenet.de>
117
118         * cmake/: added debug postfixes to debug exe's for 
119         easier debugging.
120         * dbus\dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error): 
121         print error code in case no string message is available.
122
123 2007-04-06 Simon McVittie <simon.mcvittie@collabora.co.uk>
124
125         * dbus/dbus-message-util.c, dbus/dbus-message.c,
126         dbus/dbus-message.h: Add API to convert a DBusMessage to/from a
127         byte array. Patch from Dafydd Harries <dafydd.harries@collabora.co.uk>,
128         approved by Havoc Pennington.
129
130 2007-04-03  Timo Hoenig  <thoenig@suse.de>
131
132         * dbus/dbus-address.c (dbus_parse_address): Do not accept zero-
133           length address.
134         * dbus/dbus-address.c (_dbus_address_test): Add test for zero-
135           length address.
136
137 2007-03-25 Ralf.Habacker  <ralf.habacker@freenet.de>
138
139         * cmake/dbus/CMakeLists.txt: debug postfix also for mingw.
140
141 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
142
143         * cmake/modules/FindExpat.cmake: fix package detection on win32.
144
145         * README.win: update install instructions. 
146
147 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
148
149         * dbus/dbus-sysdeps.h (_dbus_split_paths_and_append):
150         new prototyp
151         (_DBUS_PATH_SEPARATOR): new macro. 
152
153         * dbus/dbus-sysdeps.c (_dbus_split_paths_and_append): merged 
154         from dbus/dbus-sysdeps-unix.c and dbus/dbus-sysdeps-win.c. 
155
156 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
157
158         * bus/config-parser.c, bus/policy.c,  
159         bus/policy.h, bus/dbus-daemon.1.in,
160         bus/session.conf.in: added eavesdrop support 
161         for replies - patch by olli.salli at collabora.co.uk
162         approved by Havoc Pennington. 
163
164 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
165
166         * dbus\dbus-sysdeps-win-thread.c: renamed to 
167         dbus-sysdeps-thread-win.c, it is a platform depending file 
168         similar to dbus-sysdeps-pthread.c.
169
170 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
171
172         * cmake\doc\CMakeLists.txt: added prelimary xml doc 
173         support, needs cmake Find script.
174
175 2007-03-14 Ralf.Habacker  <ralf.habacker@freenet.de>
176
177         * cmake: add doxygen support
178
179 2007-03-14  Ralf.Habacker  <ralf.habacker@freenet.de>
180
181         * cmake/config.h.cmake: WINCE fixes, defined DBUS_UNIX.
182
183 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
184
185         * dbus/dbus-sysdeps-util-win.c (dbus_become_daemon): 
186         win32 compile fix. 
187
188 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
189
190         * dbus-win.patch: removed obsolate patches. 
191
192 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
193
194         * dbus/dbus-sysdeps-win.c: added zero byte sending 
195         and receiving after connection start up
196
197 2007-03-11  Havoc Pennington  <hp@redhat.com>
198
199         * tools/dbus-launch.c (do_close_stderr): fix C89 problem and
200         formatting problem
201
202         * Mostly fix the DBusPipe mess.
203         - put line break after function return types
204         - put space before parens
205         - do not pass structs around by value
206         - don't use dbus_strerror after calling supposedly cross-platform
207         api
208         - don't name pipe variables "fd"
209         - abstract special fd numbers like -1 and 1
210
211 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
212
213         * dbus/dbus-sysdeps-win.h, dbus/dbus-sysdeps-win.c, 
214         dbus/dbus-sysdeps-util-win.c: renamed functions 
215         _dbus_xxx_file() to _dbus_file_xxx() to reflect 
216         struct name DBusFile. 
217
218 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
219
220         * dbus/dbus-sysdeps-util-unix.c (_dbus_become_daemon):
221         fix _dbus_pid_fd check. 
222
223 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
224
225         * tools/dbus-print-message.c (print_message):
226         added printing of the reply serial to method returns and 
227         errors, so you can actually figure out the message/reply 
228         pairs - patch by olli.salli at collabora.co.uk.
229
230 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
231
232         * dbus-win.patch: removed committed patches. 
233
234 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
235
236         * bus/bus.c, bus/bus.h, bus/main.c, bus/test.c,
237         dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-util-unix.c,
238         dbus/dbus-sysdeps-util-win.c, dbus/dbus-sysdeps-win.c,
239         dbus/dbus-sysdeps.h: renamed _dbus_xxx_pipe to _dbus_pipe_xxx,
240         completed _dbus_pipe support. 
241
242 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
243
244         * dbus/dbus-sysdeps.h (_dbus_listen_tcp_socket):
245         changed type or port to pointer, because the port is given back.
246
247         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
248         implemented returning tcp port. Skipping port parameter
249         and non integer port values in config <listen> statement
250         needs more effort.
251
252         * dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-win.c
253         (_dbus_listen_tcp_socket): return the real used tcp port.
254
255         * bus/dbus-daemon.1.in: added <listen> tcp examples
256
257 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
258
259         * cmake/config.h.cmake: win32 msvc bug fix
260
261 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
262
263         * cmake/config.h.cmake: fixed DBUS_WINxx defines,
264         using _WINCE does not work.
265
266 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
267
268         * dbus-win.patch: removed _dbus_write_pipe() patch, it is now 
269         committed.
270
271 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
272
273         * bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h:
274         rename pipe related write() function calls to _dbus_write_pipe().
275
276 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
277
278         * dbus-win.patch: added bus/config-loader-libexpat.c patch, 
279         uses DBUS_WIN for alls win32 related #ifdefs, 
280         some minor cleanups
281
282 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
283
284         * dbus-win.patch: updated patch for bus/dispatch.c.
285
286 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
287
288         * dbus-win.patch: dbus-connection.c (dbus_connection_get_unix_user,
289         dbus_connection_get_unix_process_id): Let return them valid user id's, 
290         otherwise bus-test fails. How to replace on win32 ?.
291         
292         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir):
293         fix memory leak.
294
295 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
296
297         * dbus/dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error):
298         use dbus friendly error name.
299         (fill_win_user_info_homedir): print user name in error case too.
300
301 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
302
303         * cmake/ConfigureChecks.cmake: fixed socketpair check
304
305 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
306
307         * bus/dispatch.c: disabled segfault test on win32 for now
308
309 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
310
311         * configure.in, cmake/ConfigureChecks.cmake: added check 
312         for setrlimit. 
313         * test/test-segfault.c: only include setrlimit stuff only 
314         when available.  
315
316 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
317
318         * test/test-segfault.c: unix compile fix.
319         * dbus-win.patch: removed obsolate patches.
320
321 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
322
323         * bus/activation.c: removed obsolate include header.
324         * test/test-segfault.c: win32 compile fix, rlimit 
325         isn't available on win32.
326         * dbus-win.patch: removed some more patches, they
327         are applied or obsolate 
328
329 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
330
331         * bus-win.patch: fixes unix listen problems, dbus-test 
332         now runs.
333
334 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
335
336         * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
337         cmake/CMakeLists.txt: win32 compile fix
338
339 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
340
341         * dbus-win.patch, README.win: added available win32 
342         patches from windbus project (http://sf.net/projects/windbus)
343
344 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
345
346         * bus/activation.c: (bus_activation_activate_service):
347         fixed call to _dbus_spawn_async_with_babysitter().
348
349 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
350
351         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
352         added environment pointer as function parameter, used on win32.
353
354         * test/spawn-test.c: fixed call to above mentioned function.
355
356 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
357
358         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
359         added configure check for unistd.h.
360
361 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
362
363         * test/Makefile.am: fixed test data copy problem in 
364         out of source build, when sources came from svn or cvs. 
365
366 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
367
368         * dbus/*-win.*,bus/*-win.*: added win32 platform related
369         files. These files are only added to the cmake build system.  
370         The missing dbus-win.patch file will be added later. 
371
372 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
373
374         * cmake: new directory, contains cmake build support.
375         See http://www.cmake.org for more informations.
376         Currently only unix will be buildable because some 
377         win32 required files are still missing. 
378
379 2007-03-03  Thiago Macieira  <thiago@kde.org>
380
381         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
382         output and add it to the DBusError message we return.
383
384         * tools/dbus-launch.1:
385         * tools/dbus-launch.c: Add option --close-stderr to, well,
386         close stderr before starting dbus-daemon.
387
388 2007-01-31  Havoc Pennington  <hp@redhat.com>
389
390         * bus/dbus-daemon.1.in: write a section in the man page on running
391         a test daemon for debugging purposes
392
393 2007-01-26  Havoc Pennington  <hp@redhat.com>
394
395         * bus/session.conf.in: override all the default limits with much
396         higher limits on the session bus, there is no reason the session
397         bus should have low limits
398
399         * bus/config-parser.c (bus_config_parser_new): increase default
400         limits so they are less likely to be hit; in particular the max
401         replies per connection was way too low
402
403 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
404
405         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
406         a pointer to the tutorial maintained as part of dbus-python
407
408 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
409
410         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
411         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
412         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
413
414 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
415
416         * tools/dbus-monitor.c: gettimeofday() is not available 
417         on windows so we have to provide our own. It's taken from 
418         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
419
420 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
421
422         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
423         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
424         is in dbus-sysdeps-win.c (not in this patch).
425
426         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
427         with InterlockedInc/Decrement. 
428         - Patches from Christian Ehrlicher
429         
430 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
431
432         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
433
434 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
435
436         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
437         fix mispaced const statement. - Patch from Peter Kümmel
438
439 2006-12-19  Ray Strode  <rstrode@redhat.com>
440
441         * bus/bus.c (process_config_every_time):
442         don't overwrite existing bus context activation object
443         until after we've checked that the new activation is
444         valid.
445
446         * bus/main.c 
447         (signal_handler), (handle_reload_watch):
448         don't call exit() on failure, instead make do and keep
449         going.
450         (close_reload_pipe): new function to turn off
451         hangup-causes-config-reload behavior if an unexpected
452         error occurs
453
454 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
455
456         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
457         correctness fix. - Patch from Christian Ehrlicher
458
459 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
460
461         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
462         we should also use it. - Patch from Christian Ehrlicher
463
464 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
465   
466         * dbus-sysdeps-util.c: added win32 related tests
467
468 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
469
470         * dbus/dbus-string.c (_dbus_string_pop_line),
471         bus/desktop-file.c (parse_section_start,
472         parse_comment_or_blank,parse_key_value,): uses
473         _dbus_string_find_eol() to support platform independent eol style.
474
475 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
476
477         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
478         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
479               _dbus_string_find_eol().
480         Approved by: Havoc Pennington.
481
482 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
483
484         * configure.in: Added switch to disable user_database caching.
485
486         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
487         be able disable user_dabase caching.
488
489 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
490
491         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
492         struct. It is unnecessary we have a global one already. Also remove 
493         bus_context_get_user_database function, it is no longer needed.
494         Flush the global database on reload.
495
496         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
497         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
498
499         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
500         Add _dbus_user_database_flush_system. 
501         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
502         Small unrelated change in _dbus_is_a_number: change 
503         _dbus_string_parse_int to _dbus_string_parse_uint. 
504
505         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
506         _dbus_groups_from_uid.
507
508         * bus/policy.c, bus/policy.h: Change call to 
509         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
510         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
511         needs it.
512
513 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
514
515         * bus/signal.c: Fix match_rule_equal errata
516         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
517         <kimmo.hamalainen@nokia.com>)
518
519 2006-11-19  Thiago Macieira  <thiago@kde.org>
520
521         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
522         _dbus_pthread_condvar_wait,
523         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
524         pthread_self() after coming back from a conditional variable
525         wait as well as in one codepath where it was forgotten.
526         Approved by: Havoc Pennington.
527
528 2006-11-17  Havoc Pennington  <hp@redhat.com>
529
530         * update-dbus-docs.sh: allow setting fd.org username via env
531         variable. Make it run autogen with --enable-xml-docs=yes
532         --enable-doxygen-docs=yes so configure will fail if the required
533         tools are missing.
534
535 2006-11-17  Havoc Pennington  <hp@redhat.com>
536
537         * doc/dbus-faq.xml: minor FAQ tweaks
538
539 2006-11-14  Havoc Pennington  <hp@redhat.com>
540         
541         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
542         dbus_get_local_machine_id() to its own file, no substantive
543         changes. There are a couple other things we might want to add that
544         are "misc" so moving out of dbus-connection.[hc] which is big
545         enough already.
546         
547 2006-11-14  Havoc Pennington  <hp@redhat.com>
548
549         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
550         UUID had the timestamp last, but the implementation had it first;
551         move it to last since I think it's a tiny bit nicer (easier to
552         compare at a glance, faster to sort, less code), and will not
553         cause any practical compatibility problems. Also, always convert
554         the timestamp to big endian.
555
556         * doc/dbus-specification.xml: Clean up the docs on the UUID.
557
558         * tools/dbus-uuidgen.1: more prominently say it is not suitable
559         as a replacement for regular uuidgen/RFC4122.
560
561 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
562
563         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
564         the correct value so we don't assert when initalizing recursive threads
565
566         * test/name-test/test-thread-init.c: call dbus_threads_init_default
567         instead of _dbus_threads_init_debug since it is more of a real world
568         test
569
570 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
571
572         * Released 1.0.0
573
574 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
575
576         * AUTHORS: added Peter and Tor of windows porting fame
577
578 2006-11-08  Havoc Pennington  <hp@redhat.com>
579
580         * doc/dbus-specification.xml: add a note about protocol stability
581
582         * doc/TODO: Remove "important for 1.0" section, replace with
583         "important for 1.2" section
584         
585 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
586
587         * README: remove some of the out of date flags
588
589         * doc/TODO: Remove todo items which are done
590
591 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
592
593         * tools/dbus-monitor.c: Handle sigint so we flush stdout
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         * tools/dbus-monitor.1: update the manpage for dbus-monitor
599         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
600
601 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
602
603         * AUTHORS: Update with all people listed in the ChangeLog
604
605 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
606
607         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
608         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
609
610 2006-11-07  Havoc Pennington  <hp@redhat.com>
611
612         * HACKING: Update release instructions to include stuff about
613         stable releases, branching, etc. May not be totally correct,
614         please fix if needed, but keep instructions up-to-date so we do
615         each stable release consistently in the future.
616
617 2006-11-07  Havoc Pennington  <hp@redhat.com>
618
619         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
620         documentation updates. Bump faq/spec versions (not to 1.0; I don't
621         think the spec will be "finished"/1.0 when we ship the 1.0 library).
622
623 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
624
625         * bus/bus.c: Missed patch - pass in the context to the directory watch
626
627 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
628
629         * Released D-Bus 1.0 RC 3(0.95)
630
631 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
632
633         * bus/activation.c (bus_activation_new): don't fail if we can not read
634         the directory as it may not exist
635
636 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
637
638         * bus/config-parser.c (service_dirs_find_dir): use 
639         _dbus_list_get_next_link so we don't get stuck in an infinite loop
640         (start_busconfig_child): move processing of standard_session_servicedirs
641         tags here because they have no content
642         (bus_config_parser_content): check we don't have content in 
643         standard_session_servicedirs tag
644
645 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
646
647         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
648         Packagers need to own this directory
649
650 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
651
652         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
653         <standard_session_servicedirs> tag with a <sevicedir> tag that
654         points to the test service directory
655
656 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
657
658         * configure.in: Add a check for DIR *dirp->dd_fd
659
660         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
661         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
662         of both Solaris and Irix
663
664 2006-11-01  Havoc Pennington  <hp@redhat.com>
665
666         * bus/dbus-daemon.1.in: document standard_session_servicedirs
667
668 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
669
670         * configure.in: expose DBUS_DATADIR
671         
672         * bus/config-parser.c: add the standard_session_servicedirs element
673         to the parser
674         (bus_config_parser_content): process the standard_session_servicedirs
675         element by getting the standard directories from sysdeps and merging
676         them into the service directory list
677         (test_default_session_servicedirs): make sure we get what we expect
678
679         * bus/session.conf.in: replace the servicedir tag with the 
680         standard_session_servicedirs tag
681
682         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
683         dbus-sysdeps.h to avoid circular header dependencies
684
685         * dbus/dbus-sysdeps.h: add the typedef of DBusList
686
687         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
688         which takes a string of directories delimited by colons, parses them 
689         out, appends a suffix and puts them in a list ignoring empty elements
690         (_dbus_get_standard_session_servicedirs): returns the standard 
691         directories for a session bus to look for service activation files
692         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
693         DBUS_DATADIR directories
694
695         * test/data/valid-config-files/many-rules.conf: add the 
696         standard_session_servicedirs tag to the valid config file tests
697
698 2006-10-30  Havoc Pennington  <hp@redhat.com>
699
700         * tools/dbus-launch.1, doc/TODO: capture intent to change the
701         command line options of dbus-launch a bit post 1.0
702
703 2006-10-27  Havoc Pennington  <hp@redhat.com>
704         
705         * dbus/dbus-connection.c (dbus_connection_open_private): document
706         how to choose shared vs. private connections
707
708 2006-10-27  Havoc Pennington  <hp@redhat.com>
709
710         * dbus/dbus-test.c: enclose more of the file in the
711         DBUS_BUILD_TESTS check.
712
713         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
714         DBUS_DISABLE_ASSERT case.
715
716         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
717         that it only works on the server side
718
719         * dbus/dbus-bus.c: add a global lock covering the BusData we
720         attach to each connection
721         (internal_bus_get): lock our access to the BusData
722         (dbus_bus_register): lock the entire registration process
723         with _DBUS_LOCK(bus_datas). If we get the lock and 
724         registration is already complete, silently return (vs. previous
725         behavior of aborting).
726         (dbus_bus_set_unique_name): lock the BusData
727         (dbus_bus_get_unique_name): lock the BusData
728
729 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
730
731         * bus/config-parser.c (service_dirs_find_dir, 
732         service_dirs_append_unique_or_free, 
733         service_dirs_append_link_unique_or_free): New static methods
734         for only appending unique service directory names into
735         the service directory list
736         (merge_included, bus_config_parser_content): Only add unique
737         service directory names into the list
738
739 2006-10-27  Havoc Pennington  <hp@redhat.com>
740
741         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
742         variables volatile, suggested by Thiago. Document struct fields.
743         (PTHREAD_CHECK): remove pthread error checking if assertions are
744         disabled, should reduce the no-assertions case to the bare
745         minimum code.
746
747 2006-10-26  Havoc Pennington  <hp@redhat.com>
748         
749         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
750         to be recursive
751         (_dbus_pthread_mutex_unlock): make it recursive
752         (_dbus_pthread_condvar_wait): save/restore the recursion count
753         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
754
755 2006-10-26  Havoc Pennington  <hp@redhat.com>
756
757         * doc/dbus-specification.xml: clarify the UUID text slightly
758
759         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
760         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
761         in preparation for being able to extend them for e.g. recursive
762         mutexes.
763
764 2006-10-26  Havoc Pennington  <hp@redhat.com>
765
766         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
767         condition variables relate to recursive mutexes.
768         
769         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
770         dbus/dbus-threads.c: Split the platforms-specific thread 
771         implementations into their own files.
772         
773         * dbus/dbus-sysdeps-pthread.c
774         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
775         was backward. Not that anything uses it.
776
777 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
778
779         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
780         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
781         needs to be cleaned up more.
782
783         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
784         up the CREDS issue.
785
786 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
787
788         * configure.in, dbus-1.pc.in: Check to see if thread methods 
789         are in glibc or libpthread and add -lpthread to the link stage 
790         if it is the latter
791
792 2006-10-26  Thiago Macieira  <thiago@kde.org>
793
794         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
795         bug 8780: the connection lock is only required while recording
796         the shared connection, so protect only that code
797         section. Don't require connection_lookup_shared to return a
798         locked connection.
799
800 2006-10-26  Thiago Macieira  <thiago@kde.org>
801
802         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
803         check if get_machine_uuid() returns NULL before proceeding any
804         further: we can't init the X atoms or create a session file
805         name if there is no machine ID.
806         This solves a crash reported by some users if
807         --exit-with-session was used without --autolaunch=<machine-id>
808
809 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
810
811         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
812         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
813
814         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
815         before we run dbus-launch
816
817         * configure.in: define TEST_BUS_BINARY to be the full path to 
818         dbus-daemon in the build root 
819
820 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
821
822         * dbus/Makefile.am:
823         * tools/Makefile.am:
824         * toos/dbus-uuidgen.1:
825                 Move the machine-id file to /var/lib/dbus 
826
827 2006-10-24  David Zeuthen  <davidz@redhat.com>
828
829         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
830         _dbus_assert (thread_init_generation != _dbus_current_generation)
831         not _dbus_assert (thread_init_generation == _dbus_current_generation)
832
833 2006-10-24  Thiago Macieira  <thiago@kde.org>
834
835         * dbus/dbus-sysdeps.h:
836         * dbus/dbus-sysdeps-unix.c: Add function
837         _dbus_make_file_world_readable that chmods a file to 0644.
838
839         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
840         Avoid writing to the static "argv" array, thereby avoiding a
841         COW on the child process.
842
843         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
844         call _dbus_make_file_world_readable on the created file.
845
846 2006-10-23  David Zeuthen  <davidz@redhat.com>
847
848         * dbus/dbus-memory.c: Use atomic variable to protect
849         n_blocks_outstanding otherwise OOM will be reported using SMP on
850         some arches
851         
852         * bus/dispatch.c: Add missing end of line characters
853
854         * bus/desktop-file.c (parse_section_start, parse_key_value) 
855         (bus_desktop_file_load): Propertly handle OOM
856
857         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
858         thread_init_generation equals _dbus_current_generation, not 0
859
860 2006-10-22  Havoc Pennington  <hp@redhat.com>
861
862         * dbus/dbus-connection-internal.h: move prototype of
863         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
864         it isn't in a public header and doesn't end up in the DBusBus
865         group in Doxygen
866
867 2006-10-21  Havoc Pennington  <hp@redhat.com>
868
869         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
870         the tarball if packagers want to run it
871
872         * cleanup-man-pages.sh: Add a script which munges all the internal
873         API man pages out of the Doxygen output. This reduces the size of
874         the installed man pages from 7 to 2 megs, and avoids
875         namespace-polluting pages. Right now (like Doxygen) this script
876         isn't in the build, it's something packagers can do manually.
877
878 2006-10-21  Havoc Pennington  <hp@redhat.com>
879
880         * dbus/dbus-connection.h: don't include the watch/timeout
881         functions in connection section
882
883 2006-10-21  Havoc Pennington  <hp@redhat.com>
884
885         * Documentation! Whee! Doxygen now 100% silent. If you make it
886         angry again, you will be punished.
887         
888 2006-10-21  Havoc Pennington  <hp@redhat.com>
889
890         * More documentation - all public API now documented according to
891         Doxygen
892
893 2006-10-21  Havoc Pennington  <hp@redhat.com>
894
895         * Document a bunch of undocumented stuff
896         
897 2006-10-21  Havoc Pennington  <hp@redhat.com>
898
899         * Clean up Doxygen group markers for public API so Doxygen finds
900         everything (not comprehensively fixed for private API).
901         Means all remaining Doxygen warnings are just about missing docs
902         and thus pretty simple to resolve.
903         
904 2006-10-21  Havoc Pennington  <hp@redhat.com>
905         
906         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
907
908         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
909         as DBUS_GNUC_DEPRECATED
910
911 2006-10-21  Havoc Pennington  <hp@redhat.com>
912
913         * Move all private API into the private Doxygen group sections of
914         the files, so they don't show up in the public API docs
915         
916 2006-10-21  Havoc Pennington  <hp@redhat.com>
917
918         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
919         dbus_message_iter_get_array_len().
920
921         * throughout: documentation improvements.
922
923 2006-10-20  Havoc Pennington  <hp@redhat.com>
924
925         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
926         matter, and the message-loader-breaker thing since nobody is going
927         to do it.  Add an item to 1.0 about supporting recursive locks
928         in dbus_threads_init_default() though, since it should be easy.
929
930         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
931         Fix this in the !dispatch case to avoid busy-looping after
932         disconnection
933
934         * More misc docs improvements
935
936 2006-10-19  Havoc Pennington  <hp@redhat.com>
937
938         * more Doxygen-related fixes (lots of moving things from the
939         public to internal section in dbus-connection.c)
940
941 2006-10-19  Havoc Pennington  <hp@redhat.com>
942
943         * Fix a pile of Doxygen warnings and missing docs
944
945 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
946
947         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
948         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
949         instead of a void *.  kqueue uses this to get the context's loop
950         while the other modules ignore the parameter.  This allows us to
951         avoid platform conditionals
952
953         * bus/bus.c (process_config_postinit): Pass in the context to the 
954         watch
955
956 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
957
958         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
959         when starting the system bus
960
961 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
962
963         * configure.in: More fixups for cross compile (Patch from 
964         Marco Pracucci <development at pracucci dot com>)
965
966 2006-10-17  Havoc Pennington  <hp@redhat.com>
967
968         * tools/dbus-send.c (main): don't close shared connection, fix
969         from Timo Hoenig
970
971 2006-10-17  Havoc Pennington  <hp@redhat.com>
972
973         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
974
975         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
976         since realistically it doesn't look like we'll be changing it
977         anymore.
978
979 2006-10-17  Havoc Pennington  <hp@redhat.com>
980
981         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
982         be used for return_if_fail type warnings; prefixes the pid, and
983         fatal by default.
984
985 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
986
987         * configure.in: Released 1.0 RC 2(0.94)
988         Add check for -fPIC and enable it if available
989
990 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
991
992         * doc/TODO: Remove the check TODO item
993
994 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
995
996         * dbus-transport-socket.c (exchange_credentials):
997         Print out more detailed errors if reading or sending
998         credentials fail (Patch from Julio M. Merino Vidal 
999         <jmmv at NetBSD dot org>)
1000
1001 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
1002
1003         * configure.in: when checking for posix getpwnam_r assume true
1004         for cross compiles
1005
1006 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
1007
1008         * configure.in: Check for gethostbyname first before we check for it
1009         in libnsl.  On gnu systems it is implemeneted 
1010
1011 2006-10-13  Havoc Pennington  <hp@redhat.com>
1012
1013         * dbus/dbus-connection.c
1014         (dbus_connection_send_with_reply_and_block): fix to handle closed
1015         connections, from Tambet Ingo bug #8631
1016
1017 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
1018
1019         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
1020
1021 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
1022
1023         * test/name-test/Makefile.am: don't link against both libdbus and
1024         libdbus-convenience
1025
1026 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
1027
1028         * configure.in: check for dirfd even if it is a macro
1029         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
1030
1031 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
1032
1033         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
1034         avoid using dirfd on systems that don't have dirfd 
1035         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
1036
1037 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
1038
1039         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
1040         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
1041
1042         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
1043         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
1044         macro because _dbus_abort calls it
1045
1046         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
1047         works
1048
1049 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
1050
1051         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
1052         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
1053
1054 2006-10-02  Thiago Macieira  <thiago@kde.org>
1055
1056         * tools/dbus-launch.c (main): make it complain and abort
1057         execution in case an unknown option is given. Also, process
1058         the '--' argument as the end of arguments.
1059
1060 2006-10-01  Havoc Pennington  <hp@redhat.com>
1061
1062         * tools/dbus-launch.c (print_variables): if no syntax is given,
1063         don't print something that's sort-of-half-sh-syntax, just print
1064         a plain key-value pairs thing.
1065
1066         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
1067         the local machine representation (but still have the hostname in
1068         the display). Remove the hostname from the display if it is
1069         localhost. Change session files to be named
1070         ~/.dbus/session-bus/machine-display. Change X atoms to be
1071         underscore-prefixed so nobody whines about ICCCM compliance.
1072         Otherwise name them the same as the env variables.
1073         Change session file format to include key-value pairs and an
1074         explanatory comment. Keys are the same as the env variables.
1075         (set_address_in_x11): X property format can't depend on
1076         sizeof(pid_t) on a particular machine, fix to always be 32 bits
1077
1078         * tools/dbus-launch.c: make --autolaunch take a machine id
1079         argument. If --autolaunch is used with a program to run, complain
1080         for now (but add a FIXME). Also, don't look for existing bus if 
1081         there's a program to run (but add a FIXME).
1082
1083         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
1084         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
1085         just to get this, and avoids duplicating uuid-reading code).
1086
1087         * tools/dbus-launch.1: clarify various things
1088         
1089 2006-10-01  Havoc Pennington  <hp@redhat.com>
1090
1091         * test/test-service.c (path_message_func): remove broken extra
1092         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
1093
1094         * test/test-shell-service.c (path_message_func): same fix
1095         
1096         * dbus/dbus-connection.c
1097         (_dbus_connection_get_dispatch_status_unlocked): break up the
1098         function a little for clarity and fix the notification of
1099         dbus-bus.c to not require dispatch to be complete
1100
1101         * dbus/dbus-connection.c (dbus_connection_unref): improve the
1102         warning when you try to finalize an open connection.
1103         
1104 2006-10-01  Havoc Pennington  <hp@redhat.com>
1105
1106         * dbus/dbus-bus.c
1107         (internal_bus_get): only weak ref the connection; this means 
1108         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
1109         called safely in any context
1110         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
1111         unref
1112
1113         * dbus/dbus-connection.c
1114         (_dbus_connection_get_dispatch_status_unlocked): move
1115         _dbus_bus_notify_shared_connection_disconnected_unlocked here
1116         when queuing Disconnected instead of when the Disconnected message
1117         arrives, so dbus_bus_get() won't return closed connections.
1118         
1119 2006-10-01  Havoc Pennington  <hp@redhat.com>
1120
1121         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
1122         Add a hack to make DBusNewConnectionFunction work right.
1123
1124         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
1125         the hack here. Also, fix the todo about refcount leak.
1126         
1127         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1128         and use the hack here
1129         
1130         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
1131         "shareable" flag; this was completely broken, since it meant 
1132         dbus_connection_open() returned a connection of unknown
1133         shared-ness. Now, we always hold a ref on anything opened 
1134         as shareable.
1135
1136         Move the call to notify dbus-bus.c into
1137         connection_forget_shared_unlocked, so libdbus consistently forgets
1138         all its knowledge of a connection at once. This exposed numerous
1139         places where things were totally broken if we dropped a ref inside
1140         get_dispatch_status_unlocked where
1141         connection_forget_shared_unlocked was previously, so move
1142         connection_forget_shared_unlocked into
1143         _dbus_connection_update_dispatch_status_and_unlock. Also move the
1144         exit_on_disconnect here.
1145
1146         (shared_connections_shutdown): this assumed weak refs to the
1147         shared connections; since we have strong refs now, the assertion 
1148         was failing and stuff was left in the hash. Fix it to close
1149         still-open shared connections.
1150         
1151         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
1152         debug pipe connections
1153         
1154         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
1155         dbus-bus.c if the closed connection is in fact shared
1156         (_dbus_connection_close_possibly_shared): rename from 
1157         _dbus_connection_close_internal
1158         (dbus_connection_close, dbus_connection_open,
1159         dbus_connection_open_private): Improve docs to explain the deal
1160         with when you should close or unref or both
1161
1162         * dbus/dbus-bus.c
1163         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
1164         from _dbus_bus_check_connection_and_unref_unlocked and modify to
1165         loop over all connections
1166
1167         * test/test-utils.c (test_connection_shutdown): don't try to close
1168         shared connections.
1169
1170         * test/name-test/test-threads-init.c (main): fix warnings in here
1171
1172         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
1173         env variable to cause blocking waiting for gdb; drop
1174         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
1175         unconditionally.
1176
1177         * configure.in: add -export-dynamic to libtool flags if assertions enabled
1178         so _dbus_print_backtrace works.
1179
1180         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
1181         instead of _dbus_verbose to print the backtrace, and diagnose lack 
1182         of -rdynamic/-export-dynamic
1183         
1184 2006-09-30  Havoc Pennington  <hp@redhat.com>
1185
1186         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
1187         (internal_bus_get): fix screwy code formatting. whoever committed
1188         that was not paying attention!
1189
1190 2006-09-30  Havoc Pennington  <hp@redhat.com>
1191
1192         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
1193         reflect addition of interfaces.
1194
1195         * doc/dbus-specification.xml: describe a new
1196         org.freedesktop.DBus.Peer.GetMachineId method
1197
1198         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
1199         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
1200         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
1201         at end of skip_white
1202         (_dbus_string_chop_white): new function
1203
1204         * bus/connection.c (bus_connections_setup_connection): call
1205         dbus_connection_set_route_peer_messages.
1206
1207         * dbus/dbus-connection.c
1208         (_dbus_connection_peer_filter_unlocked_no_update): modify to
1209         support a GetMachineId method.
1210
1211         Also, support a new flag to let the bus pass peer methods through
1212         to apps on the bus, which can be set with
1213         dbus_connection_set_route_peer_messages.
1214
1215         Finally, handle and return an error for anything unknown on the
1216         Peer interface, which will allow us to extend the Peer interface
1217         in the future without fear that we're now intercepting something
1218         apps were wanting to see.
1219         
1220         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
1221         dbus/dbus-uuidgen.c
1222
1223         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
1224         binary here, since most of the code is already in libdbus
1225
1226         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
1227         uuid from the system config file
1228
1229         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
1230         (_dbus_read_uuid_file_without_creating) 
1231         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
1232         uuid-related functions, partly factored out from dbus-server.c
1233
1234         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
1235         DBUS_ERROR_FILE_EXISTS instead of EEXIST
1236
1237         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
1238
1239         * tools/dbus-cleanup-sockets.1: explain what the point of this
1240         thing is a bit more
1241
1242         * autogen.sh (run_configure): add --config-cache to default
1243         configure args
1244
1245         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
1246         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
1247
1248         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
1249         don't try to save address, fixes crash in make check
1250         
1251 2006-09-30  Thiago Macieira  <thiago@kde.org>
1252
1253         * configure.in: add DBUS_BINDIR as a #define to C source code.
1254
1255         * tools/dbus-launch.c
1256         * tools/dbus-launch.h
1257         * tools/dbus-launch-x11.c:
1258         * tools/dbus-launch.1: Add the --autolaunch option to
1259         dbus-launch, which makes it scan for an existing session
1260         started with --autolaunch. With that option, it also creates
1261         an X11 window and saves the bus address and PID to it.
1262
1263         * dbus/dbus-sysdeps.h:
1264         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
1265         a function that runs "dbus-launch --autolaunch" to retrieve
1266         the running D-Bus session address (or start one if none was running)
1267
1268         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
1269         address protocol, which tries to get the running session from
1270         dbus-launch.
1271
1272         * dbus/dbus-bus.c:
1273         * dbus/dbus-internals.h: Make "autolaunch:" be the default
1274         D-Bus session bus address.
1275
1276         * dbus/dbus-connection.c: Fix horrible typo in error message.
1277
1278 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
1279
1280         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
1281
1282 2006-09-17  Havoc Pennington  <hp@redhat.com>
1283
1284         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1285         fix so that if unix_user_function is set on windows, we still
1286         do the default check that the auth identity matches the bus identity
1287
1288 2006-09-16  Havoc Pennington  <hp@redhat.com>
1289
1290         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
1291         to _dbus_transport_open_platform_specific,
1292         _dbus_transport_open_socket,
1293         and _dbus_transport_open_debug_pipe
1294
1295         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
1296
1297 2006-09-16  Havoc Pennington  <hp@redhat.com>
1298
1299         Attempt auditing public API to remove all cases where a Unix
1300         function returns weird emulated goo to Windows. This probably 
1301         breaks the bus daemon on Windows, to fix it again we may 
1302         need to stop processing unix-specific config options on Windows,
1303         and may need to add Windows-specific public API or config options.
1304         
1305         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
1306         to reflect added interfaces; should not break soname.
1307         
1308         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
1309         not invoke unix user function on Windows. Kind of a hacky fix, but 
1310         we don't want a "unix uid" leaking out on Windows.
1311
1312         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
1313         to get the socket fd on Windows or UNIX
1314         (dbus_connection_get_unix_fd): make this always fail on Windows
1315
1316 2006-09-16  Havoc Pennington  <hp@redhat.com>
1317
1318         * dbus/dbus-server.c (dbus_server_listen): change how this works
1319         to be able to delegate to a set of handlers that can succeed,
1320         fail, or choose not to handle. Allows us to have 
1321         dbus_server_listen_platform_specific.
1322
1323         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
1324         factor out the tcp socket stuff to be used on windows, leaving
1325         unix domain socket only in dbus-socket-unix.c
1326
1327         * dbus/dbus-transport-socket.c
1328         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
1329         stuff to be used on windows, leaving unix domain socket only 
1330         in dbus-transport-unix.c
1331
1332         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
1333         temporary hack to be sure this fails on windows
1334         (dbus_connection_get_unix_process_id): ditto
1335
1336 2006-09-16  Havoc Pennington  <hp@redhat.com>
1337
1338         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1339         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1340         _dbus_open_socket so the domain/type/protocol from system headers
1341         are not required. This is kind of pointless though unless we move
1342         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1343         sysdeps-unix.c, which would mean adding a wrapper around
1344         bind/listen/etc.
1345         Also, add DBusError to the socket-opening functions so they 
1346         don't require use of errno.
1347
1348 2006-09-16  Havoc Pennington  <hp@redhat.com>
1349
1350         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1351         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1352
1353         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1354         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1355         functions specifically for sockets only, and move generic 
1356         read/write/open/close into unix-specific code.
1357
1358 2006-09-14  Havoc Pennington  <hp@redhat.com>
1359
1360         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1361         complaint about accessing revents when poll returns 0, from Julian Seward.
1362
1363 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1364
1365         * Released 1.0 RC 1 (0.93) 
1366
1367 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1368
1369         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1370         use _dbus_close instead of close
1371
1372 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1373
1374         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1375         credentials.  Fixes "external" authentication under e.g. NetBSD
1376         which does not support any other socket credentials mechanism.
1377         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1378
1379 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1380
1381         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1382         dbus_threads_init and be used by the dbus mutex functions to
1383         avoid deadlocks.
1384
1385         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1386
1387 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1388
1389         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1390         use threadsafe readdir_r instead of readdir
1391
1392 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1393
1394         * dbus-threads.c (dbus_threads_init_default): New method for
1395         initializing the internal thread implementation (Patch from
1396         Alexander Larsson <alexl at redhat dot com>)
1397
1398 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1399
1400         * remove a bunch of todo items from the 1.0 list
1401
1402 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1403
1404         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1405         key not found
1406
1407 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1408
1409         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1410         complex debugging code
1411
1412         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1413         between the test suite ifdefs
1414         (_dbus_verbose_bytes): return if verbosity is not enabled 
1415
1416 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1417
1418         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1419         remove DBusMark
1420
1421 2006-09-10  Havoc Pennington  <hp@redhat.com>
1422
1423        patch mostly by Peter Kümmel, bug #8211
1424         
1425         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1426         unix-specific stuff in dbus-sysdeps.c
1427
1428         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1429         and move unix-specific stuff to dbus-sysdeps-unix.c
1430
1431         * configure.in: check HAVE_ERRNO_H
1432         
1433 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1434
1435         * bus/test-main.c (main): Initialize threading during tests
1436
1437         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1438         Unlock connection on error
1439         (generate_local_error_message): static method for generating
1440         an error message when we don't have a message to reply to
1441         (_dbus_connection_block_pending_call): Send a disconnect error
1442         instead of just a timeout (NULL) when the bus gets disconnected
1443         while blocking for a reply.
1444         
1445 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1446
1447         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1448         filters (Patch from Kimmo Hämäläinen 
1449         <kimmo dot hamalainen at nokia dot com>)
1450
1451 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1452
1453         * dbus/dbus-connection-internal.h: Add prototype for 
1454         _dbus_connection_test_get_locks to remove warning
1455
1456 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1457
1458         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1459         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1460         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1461
1462 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1463
1464         * Clean up close calls to use _dbus_close (Patch from 
1465         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1466
1467 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1468
1469         * doc/TODO:
1470         - Remove pending call locking todo item
1471         - dbus_connection_open now holds hard ref.  Remove todo item
1472         - do proper locking on _dbus_bus_check_connection_and_unref
1473           and handle DBUS_BUS_STARTER. Remove todo item
1474         - Warn on closing of a shared connection.  Remove todo item
1475
1476         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1477         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1478         so we don't get the warning when closing shared connections
1479
1480         * test/test-service.c, test/test-shell-service.c: Applications
1481         don't close shared connections themselves so we unref instead of
1482         close
1483
1484         * test/test-utils.c (test_connection_shutdown): Close the connection
1485
1486         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1487         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1488         method on a locked connection.  
1489         Make sure we call _dbus_connection_unref_unlocked instead of 
1490         dbus_connection_unref also.
1491         Handle DBUS_BUS_STARTER correctly
1492
1493         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1494         Mark as shared and hard ref the connection
1495         (connection_forget_shared_unlocked): Remove the hard ref from the 
1496         connection
1497         (_dbus_connection_close_internal_and_unlock):  New internal function
1498         which takes a locked connection and unlocks it after closing it
1499         (_dbus_connection_close_internal): New internal function which acts
1500         like the origonal dbus_connection_close method by grabbing a connection
1501         lock and calling _dbus_connection_close_internal_and_unlock
1502         (dbus_connection_close): Public close method, warns when the app
1503         trys to close a shared connection
1504
1505 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1506
1507         * bus/driver.c:
1508         (bus_driver_generate_introspect_string): New method for populating
1509         a DBusString with the introspect data
1510         (bus_driver_handle_introspect): Move introspect generation code to 
1511         bus_driver_generate_introspect_string
1512
1513         * bus/main.c:
1514         (introspect): New function which prints out the intropect data and
1515         exits
1516         (main): Add a --introspect switch
1517
1518 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1519
1520         * doc/TODO: Removed dtd publishing item.  
1521         It seems the dtd has already been added at
1522         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1523
1524 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1525
1526         * doc/TODO, various source files: Audited todo's and FIXME's and
1527         prepended the ones we should be looking at with 1.0.  Those
1528         prepended with 1.0? need clerification or might not be needed
1529         for 1.0
1530
1531 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1532
1533         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1534         NULL in the public API (Patch from Kimmo Hämäläinen 
1535         <kimmo dot hamalainen at nokia dot com>)
1536
1537 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1538
1539         * configure.in: Fix for OS-X compile time endian issues (patch from
1540         Benjamin Reed <ranger at befunk dot com>)
1541
1542 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1543
1544         * configure.in: Check for no-common compiler flag (OS-X fix from
1545         Benjamin Reed <ranger at befunk dot com>)
1546
1547 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1548
1549         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1550         <fcrozat at mandriva dot com>)
1551
1552 2006-08-29  Havoc Pennington  <hp@redhat.com>
1553
1554         * test/test-service.c (path_message_func): fix lack of return value
1555
1556         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1557         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1558         any more sense than on anything else in this file.
1559         (_dbus_get_tmpdir): add const to return value, and keep the
1560         results of the various getenv around in a static variable.
1561
1562 2006-08-29  Havoc Pennington  <hp@redhat.com>
1563
1564         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1565         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1566
1567 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1568
1569         * test/Makefile.am: change find to use syntax that works with non
1570         gnu versions of find
1571
1572 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1573
1574         * dbus/dbus-transport.c: fix invalid deref when checking if
1575         a vtable method exists (Patch from Christian Ehrlicher 
1576         <ch dot ehrlicher at gmx dot de>)
1577
1578 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1579
1580         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1581         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1582         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1583         <bernard at brenda-arkle dot demon dot co dot uk>)
1584
1585 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1586
1587         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1588         default case
1589
1590 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1591
1592         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1593         it works on any system providing this interface, not only FreeBSD.
1594         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1595
1596 2006-08-20  Havoc Pennington  <hp@redhat.com>
1597
1598         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1599         the docs
1600
1601 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1602
1603         * Released 0.92 
1604
1605 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1606
1607         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1608         to reflect the init late change
1609
1610         * bus/bus.c (bus_context_new): Check user before we fork so we can
1611         print out an error message a user will be able to see
1612
1613 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1614
1615         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1616
1617         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1618         Add two more global locks for use on windows platforms.  These are
1619         unused on non-windows platforms but are not ifdefed out to avoid
1620         potential bugs (i.e. the few bytes lost does not warrent the extra
1621         maintanence and complexity that having seperate sets of locks would
1622         cause)
1623
1624 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1625
1626         * bus/services.c (bus_registry_acquire_service): Return an error
1627         when an application tries to register the org.freedesktop.DBus Bus Name
1628
1629         * bus/services.c (bus_registry_release_service): Return an error
1630         when an application tries to release the org.freedesktop.DBus Bus Name
1631
1632 2006-08-17  Alp Toker  <alp@atoker.com>
1633
1634         * doc/dbus-specification.xml: Fix some minor typos.
1635
1636 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1637
1638         * configure.in: use $with_init_scripts instead of $operating_system
1639         to determine where to store the pid since the init scripts manipulate 
1640         the pid file (patch from Marcelo Ricardo Leitner 
1641         <marcelo dot leitner at terra dot com dot br>.  
1642
1643 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1644
1645         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1646         static DBusList *uninitialized_condvar_list to support new late 
1647         initialization threading model.  In this model threads can be initialized
1648         even after the D-Bus API has been used but still needs to be initialized 
1649         before the second thread has been started.  Mutexes and condvar addresses
1650         are stored in the two static lists and are replaced with actuall locks
1651         when threads are initalized.
1652         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1653         the location into the static list
1654         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1655         from the static list and freeing the mutex
1656         (_dbus_condvar_new_at_location): New method for creating a conditional 
1657         variable and placing the location into the static list
1658         (_dbus_condvar_free_at_location): New method for removing a conditional
1659         variable location from the static list and freeing the conditional variable 
1660         (init_uninitialized_locks): Atomic method which goes through the static 
1661         lists of mutex and condvar location and updates them with actuall locks
1662         (init_global_locks): changed to init_locks
1663         
1664         * dbus/dbus-connection.c:
1665         (_dbus_connection_test_get_locks): New method for tests to check connections
1666         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1667         condvar API
1668         (dbus_connection_allocate_data_slot): Pass in the global lock address
1669         to _dbus_data_slot_allocator_alloc
1670
1671         * dbus/dbus-dataslot.c:
1672         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1673         instead of the mutex itself
1674
1675         * dbus/dbus-message.c:
1676         (dbus_message_allocate_data_slot): Pass in the global lock address
1677         to _dbus_data_slot_allocator_alloc
1678
1679         * dbus/dbus-pending-call.c:
1680         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1681         to _dbus_data_slot_allocator_alloc
1682
1683         * dbus/dbus-server.c:
1684         (_dbus_server_init_base): Use the new at_location mutex API
1685         (dbus_server_allocate_data_slot): Pass in the global lock address
1686         to _dbus_data_slot_allocator_alloc
1687
1688         * test/name-test/test-threads-init.c: New test case for late thread
1689         initialization
1690
1691 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1692
1693         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1694         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1695         causes compile problems when asserts are turned off
1696         Keeping _dbus_warn for printing out the message so even if
1697         asserts are turned off the user gets the messages that something is 
1698         wrong 
1699
1700 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1701
1702         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1703
1704         * bus/services.c (bus_service_list_queued_owners):
1705         Add a pointer cast to fix compiler warning
1706
1707         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1708         return a NULL instead of FALSE since the return type
1709         is not expecting a boolean
1710
1711         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1712         Remove unused variable
1713
1714         * dbus/dbus-marshal-recursive-util.c (node_new):
1715         return a NULL instead of FALSE since the return type
1716         is not expecting a boolean
1717
1718         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1719         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1720         because we are expecting a pointer not a boolean
1721
1722         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1723         add void as the parameter so some compilers
1724         don't complain
1725
1726         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1727           _dbus_transport_new_for_tcp_socket):
1728         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1729         because we are expecting a pointer not a boolean
1730
1731         * test/shell-test.c (test_command_line):
1732         cast the second argument to _dbus_list_append to avoid compiler
1733         warnings
1734
1735         * test/test-names.c (main): remove unused variable
1736
1737         * test/test-service.c (check_hello_from_self_reply):
1738         Initialize echo_message and echo_reply to NULL
1739         
1740         * test/test-shell-service.c (handle_echo):
1741         Remove unused variable and cast the third parameter passed to
1742         dbus_connection_get_object_path_data to avoid compiler warrnings
1743
1744         * test/name-test/test-names.c (clear_message_queue):
1745         Remove unused function
1746
1747         * test/name-test/test-pending-call-dispatch.c:
1748         Fix format string in printf
1749
1750
1751 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1752
1753         * dbus/dbus-bus.c:
1754         * test/name-test/test-names.c:
1755         Remove test method dbus_bus_connection_get_unique_name because 
1756         we already have public method dbus_bus_get_unique_name that 
1757         does the exact same thing
1758
1759 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1760
1761         * dbus/dbus-signature.c:
1762         fix typos in Julio's previous patch which cause make check to fail
1763
1764 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1765
1766         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1767         In any case it was wrong since this is a test checking to see if
1768         address parsing is correct.  There was no need to get the true
1769         tmp directory.  
1770
1771 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1772
1773         * dbus/dbus-macros.h: Revert the addition of stddef.h
1774         as we should not be adding it to library headers 
1775
1776 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1777
1778         * dbus/dbus-signature.c:
1779         Fix the unit tests so that they work if assertions are not enabled.
1780         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1781
1782 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1783
1784         * tools/run-with-tmp-session-bus.sh:
1785         * test/name-test/run-test.sh:
1786         Remove bashisms (patch from Julio M. Merino Vidal
1787         <jmmv at NetBSD dot org>)
1788
1789 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1790
1791         * configure.in: add a version (>= 2.6.0) check for libxml2
1792
1793 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1794
1795         * configure.in: make sure the compiler supports -Wfloat-equal
1796         
1797         * bus/dir-watch-dnotify.c: move functional code after 
1798         variable declerations (C99 fix)  (patches from Jens Granseuer
1799         <jensgr at gmx dot net>
1800
1801 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1802
1803         * dbus/dbus-macros.h:
1804         add #include <stddef.h> so that Sun compilers don't complain about
1805         the defining NULL
1806
1807 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1808
1809         * dbus/dbus-sysdeps.c:
1810         * dbus/dbus-address.c:
1811         * bus/activation.c:
1812         * test/shell-test.c:
1813         don't hardcode tmp directory (patch from Dave Meikle 
1814         <dmk at davemeikle dot co dot uk>)
1815
1816 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1817
1818         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1819         Change an assert to a detailed warning and abort.  
1820         When allocator->lock != mutex it indicates that the user has failed
1821         to initalize threads before using the D-Bus library.  This warning
1822         helps the user identify the issue and fix their app.
1823
1824 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1825
1826         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1827         with cleanups of bugs found from Coverity reports:
1828
1829         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1830         close the file on error to avoid a leak
1831
1832         * bus/expirelist.c (bus_expire_list_test):
1833         Check for NULL on dbus_new0
1834
1835         * bus/activation.c (update_directory):
1836         remove dead code
1837
1838         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1839         Fix some leaks
1840
1841         * bus/bus.c (process_config_every_time):
1842         Fixed a leak
1843
1844         * bus/desktop-file.c (parse_key_value):
1845         Fixed leak
1846
1847         * bus/selinux.c (bus_selinux_id_table_insert):
1848         Fixed leak
1849
1850 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1851
1852         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1853         remove dead code
1854
1855 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1856
1857         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1858         #!/bin/bash
1859
1860 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1861
1862         * Doxyfile.in: fix the INPUT line so we can generate docs 
1863         when sourcedir != builddir (patch from Cygwin Ports maintainer
1864         <yselkowitz at users dot sourceforge dot net>
1865
1866 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1867
1868         * dbus/dbus-sysdeps.h:
1869         * dbus/dbus-sysdeps.c: 
1870         * dbus/dbus-string.c: 
1871         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1872         GLib's function which does the same thing
1873
1874         * configure.in:
1875         * bus/Makefile.am:
1876         * bus/dir-watch-default.c:
1877         * bus/dir-watch-dnotify.c:
1878         * bus/dir-watch-kqueue.c:
1879         Add kqueue directory watching for freebsd and split the directory
1880         watching code into seperate files per method/arch
1881         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1882
1883 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1884
1885         * configure.in:
1886         * tools/Makefile.am:
1887         * tools/dbus-launch.c:
1888         * bus/Makefile.am:
1889         allow --with-dbus-daemondir switch to be used to make the
1890         daemon install to a seperate bindir like /usr/libexec
1891         (patch from Brian Cameron <brian dot cameron at sun dot com)
1892
1893 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1894
1895         * bus/Makefile.am (install-data-hook): removed the slash after 
1896         $(DESTDIR) so we don't get the double slash which does not work
1897         in windows (patch from Andras Porjesz 
1898         <andras dot porjesz at siemens dot com>)
1899
1900 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1901
1902         * dbus/dbus-sysdeps.h:
1903         * dbus/dbus-sysdeps.c: 
1904           add _dbus_printf_length (patch from Peter Kümmel 
1905           <syntheticpp at gmx dot net>)
1906
1907 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1908
1909         * dbus/dbus-internals.c: unistd.h is not used 
1910         (_dbus_verbose_real): only enable verbose printing 
1911         if DBUS_VERBOSE environment var is set to '1'
1912         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1913
1914 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1915
1916         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1917         so we still compile on older gcc (patch from Frederic Peters 
1918         <fpeters at 0d dot be>
1919
1920 2006-08-04  Havoc Pennington  <hp@redhat.com>
1921
1922         * configure.in: add -Wdeclaration-after-statement
1923
1924         * dbus/dbus-connection.c: change all the pending call stuff to
1925         reflect the fact that pending call operations use the connection
1926         lock
1927
1928         * dbus/dbus-pending-call.c: add locking here
1929
1930         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1931         field const consistent with how message field is done
1932
1933 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1934
1935         * s/D-BUS/D-Bus/g
1936
1937 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1938
1939         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1940         <in7y118 at public.uni-hamburg dot de> - fix invalid
1941         read/write reported by valgrind
1942
1943 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1944
1945         * Released 0.91
1946
1947 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1948
1949         * dbus/dbus-connection.c:
1950         (_dbus_connection_attach_pending_call_unlocked):
1951         (connection_timeout_and_complete_all_pending_calls_unlocked):
1952         Make sure we set timeout_added on pending calls to FALSE when
1953         we remove the timeout from the connection
1954
1955 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1956
1957         * Removed some extra bindings stuff lingering around (thanks timo)
1958         * dbus-pendingcall.c (_dbus_pending_call_new): 
1959         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1960         when we tried to take a lock on an already locked connection
1961
1962 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1963
1964         * Released 0.90
1965
1966 2006-07-17  Havoc Pennington  <hp@redhat.com>
1967
1968         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1969         ints, reported by Owen Taylor
1970
1971 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1972
1973         * doc/TODO:
1974         * dbus/dbus-bus.c:
1975         * dbus-errors.c:
1976         * dbus/dbus-marshal-validate.c:
1977           Removed TODO items which were fixed or are no longer relevent
1978
1979 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1980
1981         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1982         Remove stray files from the stripped bindings
1983
1984 2006-07-16  Havoc Pennington  <hp@redhat.com>
1985
1986         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1987         Improve the error message on reply timeout
1988
1989 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1990
1991         * Remove all bindings
1992
1993 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1994
1995         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1996         and set pending_reply out arg to NULL is connection is disconnected
1997         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1998         static method for cleaning up pending calls on disconnect
1999         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
2000         calls queued timeouts on disconnect 
2001
2002          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
2003         Remove 
2004
2005 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
2006
2007         * bus/activation.[ch] (bus_activation_list_services): new function to 
2008         get the list of services that can be activated
2009
2010         * bus/dispatch.c: test coverage for the new bus method
2011         ListActivatableNames
2012
2013         * bus/driver.c: new bus method ListActivatableNames to get the list of
2014         services that can be activated
2015
2016         * doc/dbus-specification.xml: ListActivatableNames method documentation
2017
2018 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
2019         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
2020         source files
2021
2022 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
2023         * dbus/dbus-message-factory.c:
2024         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
2025
2026 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
2027         * dbus/dbus-connection-internal.h:
2028         * dbus/dbus-connection.c:
2029         * file dbus/dbus-pending-call.c:
2030         * dbus/dbus-pending-call.h:
2031         Make DBusPendingCall an opaque type even to D-Bus internals
2032
2033 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
2034
2035         * dbus/dbus-connection.h: remove connection_disconnect and replace with
2036         connection_close
2037
2038         * dbus/dbus-connection.c: include dbus-bus.h
2039         (_dbus_connection_read_write_dispatch): make static
2040
2041 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
2042
2043         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
2044         function
2045         (dbus_connection_dispatch): On disconnect unref any shared connections
2046
2047         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
2048         for cleaning up shared connections on disconnect
2049         (internal_bus_get): get a hard refrence to shared connections when
2050         they are created
2051         
2052         * doc/TODO: Remove items which are no longer relevent or have been fixed
2053         Split 1.0 todo items with a 0.90 freeze todo list
2054  
2055 2006-06-14  Ross Burton  <ross@openedhand.com>
2056
2057         * glib/dbus-gobject.c:
2058         Free a leaking GArray (surely not!) in dbus_g_method_return.
2059
2060 2006-06-14  Ross Burton  <ross@openedhand.com>
2061
2062         * tools/Makefile.am:
2063         * tools/dbus-monitor.c:
2064         Don't use the GLib bindings in dbus-monitor (patch from Ralf
2065         Habacker).
2066         
2067 2006-06-14  Ross Burton  <ross@openedhand.com>
2068
2069         * tools/dbus-print-message.c:
2070         Also print the object path when outputting signals or method calls.
2071
2072 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
2073
2074         * qt/src/Makefile.am: install the qdbus.h header.
2075         This allows people to actually use the installed code.
2076
2077 2006-06-12  Ross Burton  <ross@openedhand.com>
2078
2079         * glib/dbus-gproxy.c:
2080         Don't leak a GArray when firing signals (thank Rob Taylor for review).
2081
2082 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2083
2084         * Released 0.62
2085
2086 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2087
2088         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
2089         break pedantic builds. Closes bug 6043 (patch approved by
2090         Havoc back in February).
2091
2092 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2093
2094         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
2095         that took a QDBusMessage parameter.
2096         * qt/src/qdbusbus.h: Add a default flag for RequestName.
2097         * qt/tools/dbus.cpp: Don't use automatic call because we might
2098         be calling an async method: request a reply.
2099
2100 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
2101
2102         * test/qt/*: Update the testcases, including testing the new
2103         functionality of sending null QByteArray and QString over the
2104         bus. Add new headertest test and restore the old
2105         qdbusxmlparser test.
2106
2107 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
2108
2109         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
2110         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
2111
2112         * qt/examples/Makefile.am:
2113         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
2114         form.
2115
2116         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
2117         QByteArray() (nulls) over the bus.
2118         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
2119         the one that has the signature suffix stripped.
2120         * qt/src/qdbusreply.h: Make some methods const.
2121
2122 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
2123
2124         Patch from Timo Hoenig <thoenig@suse.de>.
2125
2126         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
2127         required during build to EXTRA_DIST.
2128         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
2129         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
2130         * configure.in: Fix "make dist", take care that the Makefile for
2131         qt/dbus is being generated.
2132
2133 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2134
2135         * bus/bus.c: Fix eavesdropping on method calls
2136
2137 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2138
2139         * configure.in:
2140         * dbus/dbus-userdb-util.c:
2141         Add Solaris console owner patch from Artem Kachitchkine
2142
2143 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
2144
2145         * qt/Makfile.am:
2146         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
2147         reorganisation. Thanks to Timo Hoenig for pointing this out.
2148
2149 2006-06-06  Robert McQueen  <robot101@debian.org>
2150
2151         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
2152           call to dbus_g_type_get_struct.
2153
2154 2006-06-06  Robert McQueen  <robot101@debian.org>
2155
2156         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
2157           pointers were put into a GPtrArray-based specialised collection, and
2158           then freed along with the array. GValues which you add into
2159           collections or maps which have the NOCOPY flag set are assumed to not
2160           belong to the caller, so rather than the existing pointer-stealing
2161           semantics, they are copied instead. Given that the main consumers of
2162           this abstraction are the bindings themselves, I don't think this is
2163           too bad, but others should watch their choice of take vs set_static.
2164
2165 2006-06-06  Robert McQueen  <robot101@debian.org>
2166
2167         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
2168           of g_slist_prepend not being used. Fixed copying of slist-based
2169           specialised collections, then wrote a test case and found that it was
2170           all broken. Went on to fix iterating and appending too. Good thing
2171           nobody uses this code yet.
2172
2173 2006-06-06  Robert McQueen  <robot101@debian.org>
2174
2175         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
2176           the iterators use gvalue_take_ptrarray_value (the GValues themselves
2177           are discarded without unsetting, so it makes no difference whether
2178           we take or set_static). Remove cases for G_TYPE_POINTER because
2179           there really is nothing useful we can do with them in our
2180           specialised types - we *need* boxed copy/free functions at the very
2181           least.
2182
2183 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
2184
2185         * qt/dbus: Add directory. I had forgotten to add this
2186         yesterday after the move...
2187
2188         * qt/examples/Makefile.am:
2189         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
2190
2191         * qt/tools/Makefile.am:
2192         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
2193         Added feature to get and set properties.
2194         Added validation of service, object path and interface names.
2195
2196         * qt/tools/dbusidl2cpp.cpp: Two new features:
2197         1) Allow specifying both the header and the source file names,
2198         by separating them with a colon.
2199         2) Don't write an interface output if the -p switch wasn't
2200         given, but the -a was.
2201
2202         * qt/src/*: Fix usage of Iterators and ConstIterators.
2203         Fix shadowing of variables by other variables (-Wshadow).
2204         Fix keyword-cleanliness in headers.
2205         Fix ASCII-cast (QLatin1String, QLatin1Char).
2206         Fix validation of member names.
2207         Add extra checking of introspection data during XML parsing.
2208         Various bug fixes.
2209
2210 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2211
2212         * dbus/Makefile.am:
2213         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
2214         qt/dbus/qdbus.h now.
2215
2216 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2217
2218         * configure.in: Make --disable-qt actually do
2219           something. Patch inspired by Zack Rusin.
2220
2221 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2222
2223         * qt/: Update to Subversion r548032.
2224         This includes a big reorganisation of the files inside the
2225         subdir.
2226
2227 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
2228
2229         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
2230         clear:  
2231         "Failed to connect to socket <host>:<port> <error>" instead of
2232         "Failed to connect to socket <host>: <error>:<port>"
2233
2234         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
2235         for a tcp transport. 
2236
2237 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2238
2239         * qt/*: Update the QtDBus bindings up to revision 546310 in
2240         Subversion.
2241         This adds the dbuscpp2xml tool, that parses a C++ header and
2242         outputs a D-BUS Introspection XML.
2243
2244 2006-05-21  Havoc Pennington  <hp@redhat.com>
2245
2246         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
2247         is not NULL when it shouldn't be. Also a couple of possible fixes
2248         for #4637 though I don't understand why the bug happens, to be
2249         honest... also the object constructor has an assert name != NULL
2250         and the name is only currently NULL for peer-to-peer proxies that 
2251         I don't think anyone uses? So it should be asserting.
2252         Anyway, for now at least see if we get an earlier assertion failure.
2253
2254         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
2255         apparently broken code to be sure the tests fail and someone 
2256         will fix them...
2257
2258 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
2259
2260         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
2261         and arrays when they had a single element: has_next returns
2262         false, even before you read the element. So, instead, check
2263         the array length.
2264
2265 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2266
2267         * qt/qdbusmessage.cpp:
2268         * qt/qdbustypehelper_p.h:
2269         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
2270         the list is a const-reference
2271
2272 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
2273
2274         * Adding old doc patch that never got applied
2275         
2276         * dbus/bus.c (dbus_bus_add_match): Add documentation
2277
2278         * doc/dbus-specification.xml: Add documentation for the match rules
2279           and the AddMatch and RemoveMatch methods
2280
2281 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
2282
2283         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2284         call (r535506)
2285
2286         * qt/dbusidl2cpp.cpp:
2287         * qt/qdbusabstractadaptor.cpp:
2288         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
2289         sibling of the QDBusAbstractAdaptor objects instead of the
2290         parent. (r535848)
2291
2292         * qt/dbusidl2cpp.cpp:
2293         * qt/qdbusabstractinterface.cpp:
2294         * qt/qdbusabstractinterface.h:
2295         * qt/qdbusabstractinterface_p.h:
2296         * qt/qdbusinterface.cpp: Make properties in interfaces
2297         actually work. The code that was generated would not compile,
2298         due to moc calls to functions that did not exist. They now
2299         shall. (r536571)
2300
2301 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
2302
2303         * Makefile.am:
2304         * configure.in:
2305         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
2306         Thanks to Brad Hards for providing the patch
2307
2308 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2309
2310         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2311         call. (r535506)
2312
2313 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2314
2315         * qt/examples/dbus.cpp: Enhance error messages and use
2316         QDBusInterfacePtr.
2317
2318 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2319
2320         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
2321         and disable the copy operators. (r533772, r534746)
2322
2323         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
2324
2325         * qt/qdbusabstractinterface.cpp:
2326         * qt/qdbusabstractinterface.h: Change the default call mode to
2327         not use the event loop. Add convenience call() methods that
2328         take a CallMode parameter. (r534042)
2329
2330         * qt/qdbusconnection.h: Change the default call mode to not
2331         use the event loop. (r534042)
2332
2333         * qt/qdbusinterface.cpp:
2334         * qt/qdbusinterface.h: Add a method to tell us if the
2335         interface is valid (since we don't return a null pointer
2336         anymore) (r534099)
2337
2338         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2339         (r534101)
2340
2341         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2342         function in two so taht we get the chance to introspect
2343         without having a QDBusMessage (r534102)
2344
2345         * qt/qdbusbus.h:
2346         * qt/qdbusconnection.cpp:
2347         * qt/qdbusconnection_p.h:
2348         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2349         avoid a round-trip to the server when attempting to introspect
2350         one of our own objects. Also make sure the filter functions
2351         match the empty interface as well. (r534108)
2352         Don't keep the connection names. Instead, trust the unique
2353         connection name (r534111)
2354         Remove event loop usage (r534112)
2355
2356 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2357
2358         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2359         Brad Hards.
2360
2361 2006-04-28  Robert McQueen  <robot101@debian.org>
2362
2363         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2364         any order, making it easier for people who inherit from this
2365         object.
2366
2367 2006-04-28  Robert McQueen  <robot101@debian.org>
2368
2369         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2370         of memory from within pointer arrays and lists. Fixes bug #6300.
2371
2372 2006-04-28  Robert McQueen  <robot101@debian.org>
2373
2374         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2375         generating struct signatures. Fixes bug #6083.
2376
2377 2006-04-28  Robert McQueen  <robot101@debian.org>
2378
2379         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2380         to qdbusconnection_p.moc.
2381
2382 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2383
2384         * README, INSTALL: Doc fixes
2385         Patch from Brad Hards <bradh at frogmouth.net>
2386
2387 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2388
2389         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2390         the dynamic meta object. No need to guess which interface to
2391         call.
2392
2393 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2394
2395         * qt/qdbusconnection_p.h:
2396         * qt/qdbusmetaobject.cpp:
2397         * qt/qdbusmetaobject_p.h:
2398         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2399         for the dynamic meta object. No need to guess which
2400         interface to call.
2401         * qt/qdbusabstractinterface_p.h:
2402         * qt/qdbusconnection.cpp:
2403         * qt/qdbusintegrator.cpp:
2404         * qt/qdbusinterface.cpp:
2405         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2406         Add a QDBusRef that looks and behaves like DCOPRef.
2407
2408 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2409
2410         * dbus/dbus-connection.c: Interfaces are optional in method
2411         calls, so don't give up if the interface parameter is NULL.
2412         Patch reviewed by Havoc Pennington.
2413
2414 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2415
2416         * qt/qdbusreply.h: Add default constructor and operator=
2417           (r532625)
2418         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2419           in public headers (r532952)
2420         * qt/qdbusabstractinterface.cpp:
2421         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2422           make it the default (r532951)
2423
2424 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2425
2426         * dbus/dbus-connection.c: Fix asserts
2427         Patch from Tim Moloney <t.moloney at verizon.net>
2428
2429 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2430
2431         * mono/Connection.cs, mono/Message.cs: Check Target type
2432         Patch from Aaron Bockover (abockover at novell.com)
2433
2434 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2435
2436         * INSTALL: fine-tune the requirements for the Qt4 binding.
2437
2438 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2439
2440         * tools/dbus-print-message.c: Added support for printing of all 
2441           remaining data types. Fixed logic for indentation of compound
2442           data types.
2443         
2444 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2445
2446         * INSTALL: fill out content of file providing DBus specific
2447           build installations, followed by generic Auto* INSTALL file
2448           content
2449         
2450 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2451
2452         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2453           Patch by Stefan Eilers. (r529537)
2454
2455 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2456
2457         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2458           contents (r528208)
2459
2460 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2461
2462         * qt/Makefile.am: fix the dependency for
2463           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2464           not in qdbusconnection.cpp.
2465           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2466           spotting this.
2467
2468 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2469
2470         * qt/examples/listnames.cpp:
2471         * qt/examples/Makefile.am: Three ways to list the names on the
2472           bus.
2473
2474 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2475
2476         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2477           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2478
2479 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2480
2481         Merge from Subversion:
2482         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2483           something that exists (r526315)
2484         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2485           slots/signals (r526316)
2486         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2487           also return an unknown-method error if the parameters don't
2488           match for org.freedesktop.DBus.Properties. (r526842)
2489         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2490         * qt/qdbusintegrator.cpp: Restore the proper order of
2491           delivery: don't make method returns be delivered on priority
2492           (r528150)
2493
2494 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2495
2496         * configure.in qt/Makefile.am: add qt/examples
2497         * qt/examples: Add QtDBus example programs:
2498           - hello: Hello, World
2499           - ping: Simple method-calling program
2500           - pong: Simple object-exporting program (not using adaptors)
2501           - complexping: Interactive method-calling program 
2502                 (also gets and sets properties).
2503           - complexpong: Sample program exporting methods, signals and
2504                 properties, using adaptors.
2505           - dbus: Simple implementation of a generic method-calling
2506                 program, similar to 'dbus-send', but with semantics
2507                 similar to 'dcop'.
2508           - chat: Simplistic chat program, implemented using signals
2509                 and the system bus. Looks like IRC.
2510
2511 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2512
2513         * configure.in: Detect QtGui (necessary for one of the
2514           example programs). Note: this increases the minimum required
2515           version of Qt to 4.1.3.
2516
2517 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2518
2519         * test/qt/*: Sync with KDE Subversion revision 523647.
2520         Update the testcases to the new API. Remove testcases for
2521         classes that are no longer public or have been removed.
2522
2523 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2524
2525         * qt/*: 
2526         * dbus/qdbus.h: Sync with KDE Subversion revision
2527         523647. Hopefully, this will be the last of the
2528         source-incompatible changes. Documentation has been improved;
2529         support for QList<basic-types> has been added; QDBusObject is
2530         gone; QDBus(Abstract)Interface is now a QObject with
2531         auto-generated meta-object; QDBusIntrospection is marked
2532         private, since QMetaObject can be used now; lots of bugfixes.
2533
2534 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2535
2536         Patch from Milosz Derezynski <internalerror at gmail.com>
2537         
2538         * configure.in:
2539         Output the service directory in the configure summary
2540
2541         * dbus-1.pc.in:
2542         Add session_bus_services_dir
2543
2544 2006-03-10  Ross Burton  <ross@openedhand.com>
2545
2546         * tools/dbus-print-message.c:
2547         Add support for object paths and signatures.
2548
2549 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2550
2551         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2552         config reload.
2553         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2554         information caches
2555         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2556         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2557         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2558         * dbus/dbus-userdb.h: Add function to flush all user/group information
2559         caches.
2560
2561 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2562
2563         * qt/dbusidl2cpp.cpp:
2564         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2565         for dcopidl2cpp, found in the KDE installations (or the more
2566         modern kalyptus): generate Qt4 C++ code for the input XML
2567         introspection. Currently no IDL parsing.
2568
2569 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2570
2571         * test/qt/*: Update the self-tests.
2572
2573 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2574
2575         * qt/*: 
2576         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2577         represents the first feature-complete version of the Qt4
2578         bindings since I took ove maintainership.
2579
2580 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2581
2582         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2583         dir. This is C++, so we can't use the DBus ones.
2584
2585 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2586
2587         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2588         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2589
2590 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2591
2592         * dbus/dbus-connection.c: 
2593         (_dbus_connection_block_pending_call):
2594         Check to see if our data has already been read off the connection
2595         by another blocking pending call before we block in poll.
2596         (check_for_reply_and_update_dispatch_unlocked):
2597         Code taken from _dbus_connection_block_pending_call - checks for
2598         an already read reply and updates the dispatch if there is one.
2599
2600         * test/name-test/test-pending-call-dispatch.c:
2601         New test for making sure we don't get stuck polling a 
2602         dbus connection which has no data on the socket when
2603         blocking out of order on two or more pending calls.
2604
2605 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2606
2607         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2608         make/automake don't detect that we're talking about the same
2609         .lo file if I specify the full path to the source files.
2610
2611 2006-02-26  Havoc Pennington  <hp@redhat.com>
2612
2613         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2614
2615         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2616         session bus variable is unset, suggest "man dbus-launch" and "man
2617         dbus-daemon" to figure out how to fix the problem
2618
2619 2006-02-25  Havoc Pennington  <hp@redhat.com>
2620
2621         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2622         should make this thing use the new glib options parser
2623
2624 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2625
2626         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2627         .lo files taking moc sources.
2628
2629 2006-02-25  Havoc Pennington  <hp@redhat.com>
2630
2631         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2632         and install it as a public header
2633
2634 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2635
2636         * Released 0.61
2637
2638 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2639         
2640         * proxies.py: Fix the callchain
2641
2642 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2643         
2644         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2645
2646         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2647         dbus/dbus-sysdeps.c
2648
2649         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2650         call _dbus_group_info_free_allocated which causes infinite loop,
2651         correctly call _dbus_group_info_free
2652
2653 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2654
2655         * qt/qdbusinterface_p.h:
2656         * qt/qdbusinterface.cpp: Use the standard
2657         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2658         calls instead of creating one for us.
2659
2660         * qt/qdbusconnection_p.h:
2661         * qt/qdbusintegrator.cpp: Remove debugging code.
2662
2663         * qt/qdbusintegrator.cpp:
2664         * qt/qdbusmessage.cpp:
2665         * qt/qdbusmessage_p.h:
2666         * qt/qdbusmessage.h: Change the behaviour of automatic
2667         reply-sending: now a reply is always sent, unless the caller
2668         didn't request one or if the user slot has already sent one.
2669
2670 2006-02-16  Robert McQueen  <robot101@debian.org>
2671
2672         * configure.in: Patch from Debian packages by Sjoerd Simons
2673         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2674         arguments so it's possible to build both bindings in the
2675         same tree.
2676
2677         * qt/Makefile.am: Fix truncated value so that make dist works.
2678
2679 2006-02-16  Robert McQueen  <robot101@debian.org>
2680
2681         * acinclude.m4, configure.in: Patch from Brad Hards
2682         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2683         improving quoting, re-ordering a few checks, and a few other
2684         aesthetic tidy-ups.
2685
2686 2006-02-16  Robert McQueen  <robot101@debian.org>
2687
2688         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2689         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2690         assertion that the next element to read from the iter is fixed in
2691         size. This is not the case when you are at the end of the iter,
2692         because the next element type is INVALID.
2693
2694         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2695         a bogus assert which means that you may not initialise a 0-length
2696         string unless you provide a non-NULL pointer. This prevented
2697         you from marshalling messages containing zero-length arrays in
2698         some cases.
2699
2700         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2701         from Rob to correct bogus asserts when trying to demarshal an
2702         array and get_fixed_array got you 0 elements. Append nothing to
2703         the GArray in this case.
2704
2705         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2706         an empty array via the glib bindings. Without all of the above
2707         patches, this new test fails.
2708
2709 2006-02-16  Robert McQueen  <robot101@debian.org>
2710
2711         * glib/dbus-gmain.c: Make the previous commit compile.
2712
2713         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2714         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2715         specify sender_keyword="foo", path_keyword="bar" when adding
2716         a signal listener, so that you can bind to signals generically
2717         but still do something useful in your callback.
2718
2719         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2720         chars so that they're not cast to chars and made negative. Thanks
2721         to Jakub Stachowski for reporting this and testing the fix.
2722
2723 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2724
2725         * dbus/dbus-glib.h:
2726         * glib/dbus-gmain.h:
2727         (dbus_g_connection_open): new method for openning
2728         a connection to an arbitrary address in the glib bindings
2729
2730         * ChangeLog: checkin last entry which doesn't seem to be commited
2731
2732 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2733
2734         * tools/dbus-launch.c: Fixed sh syntax output
2735
2736 2006-02-13  Robert McQueen  <robot101@debian.org>
2737
2738         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2739         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2740         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2741         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2742         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2743         missing piece of the glib bindings jigsaw puzzle. This modifies
2744         the existing specialised types to have N type parameters (rather
2745         than the current 1 or 2 for arrays and dictionaries respectively).
2746         You can then use this to get a glib type to represent any arbitrary
2747         D-Bus struct type using dbus_g_type_get_struct. The only
2748         implementation of these types is with GValueArrays as before,
2749         but it's now possible to store these in arrays, emit them in
2750         signals, etc.
2751
2752 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2753
2754         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2755         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2756         <thiago.macieira at trolltech.com>
2757
2758 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2759
2760         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2761         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2762
2763 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2764
2765         * bus/connection.c (bus_connections_expect_reply): Make
2766         pending reply limit not common to all connections (Bug #5416)
2767         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2768
2769 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2770
2771         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2772
2773 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2774
2775         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2776         patch from Doug Goldstein <cardoe at gentoo.org>
2777
2778 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2779
2780         * mono/Arguments.cs: Fix a magic number in the mono bindings
2781         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2782
2783 2006-01-27  Robert McQueen  <robot101@debian.org>
2784
2785         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2786         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2787         when generating the client-side methods, instead of overloading
2788         CSymbol which broke everything horribly. My apologies.
2789
2790 2006-01-27  Robert McQueen  <robot101@debian.org>
2791
2792         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2793         by me and Rob Taylor to add a simple_free function to D-Bus map
2794         and collection types, which allows those types which can be freed
2795         with a GDestroyNotify (such as GHashTables and GArrays, but not
2796         GPtrArrays) to be stored as the values in hashtables.
2797
2798         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2799         Patch by Rob Taylor to add nested dicts to the glib tests to check
2800         the above code works, and appears not to leak when called repeatedly.
2801
2802 2006-01-27  Robert McQueen  <robot101@debian.org>
2803
2804         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2805         to free a D-Bus allocated string with dbus_free () instead of
2806         g_free ().
2807
2808 2006-01-27  Iain Holmes  <iain@openedhand.com>
2809
2810         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2811         method from being called multiple times.
2812
2813 2006-01-19  Robert McQueen  <robot101@debian.org>
2814
2815         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2816         <rob.taylor@collabora.co.uk> to add support for generating bindings
2817         to arrays that are represented as GPtrArrays rather than GArrays (ie
2818         size-variable things, such as strings, objects, structs, etc).
2819
2820 2006-01-05  Robert McQueen  <robot101@debian.org>
2821
2822         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2823         <ricardo.kekki@movial.fi> to make it possible to inherit from
2824         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2825         a private part, and moving the setting of the DBusGProxyManager into a
2826         connection property, allowing proper GObject construction.
2827
2828 2006-01-05  Robert McQueen  <robot101@debian.org>
2829
2830         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2831         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2832         annotations when generating glib client bindings.
2833
2834 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2835
2836         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2837
2838         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2839
2840 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2841
2842         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2843
2844 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2845
2846         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2847
2848 2005-12-19  Ross Burton  <ross@openedhand.com>
2849
2850         * doc/dbus-tutorial.xml:
2851         Document the Glib client-side bindings, and list all possible annotations.
2852
2853 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2854
2855         * dbus/bus.c (dbus_bus_release_name): Add documentation
2856
2857 2005-12-06  Robert McQueen  <robot101@debian.org>
2858
2859         * python/service.py: s/sucessful/successful/ so we're allocating to
2860         and reading from the same variable. Oops.
2861
2862 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2863
2864         * Released 0.60
2865
2866 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2867
2868         * test/qt/Makefile.am: build from srcdir
2869
2870         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2871         Note - this code is wrong and needs to be fixed by the Qt binding
2872         developers.  The flags should be treated as bitfields and not enums.
2873
2874         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2875
2876 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2877
2878         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2879           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2880           in production code
2881
2882 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2883
2884         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2885         method for getting messages off the bus in the absence of a
2886         mainloop.  This method is much like 
2887         dbus_connection_read_write_dispatch except it does not dispatch
2888         the messages to a registered filter function.  Instead it
2889         allows a developer to process messages by directly popping
2890         them off the bus.
2891
2892 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2893
2894         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2895         the parser to continue instead of returning error
2896         (bus_desktop_file_load): Do not free parser data when
2897         parse_section_start or parse_key_value fails because it was 
2898         already freed by parser_free (patch from Carlos Garcia Campos  
2899         <carlosgc at gnome.org>)
2900
2901 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2902
2903         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2904         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2905         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2906         test/test-segfault.c, test/test-utils.c,
2907         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2908         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2909         Various cleanup of dead code and compiler warnings (patch from
2910         Kjartan Maraas <kmaraas at gnome.org>) 
2911
2912 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2913
2914         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2915         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2916
2917 2005-11-27  Robert McQueen  <robot101@debian.org>
2918
2919         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2920         part of the preceding one. Oops. Merge patch by Johan Hedberg
2921         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2922         on big-endian platforms.
2923
2924         * test/python/test-client.py: Add some 16-bit integers to the test
2925         values.
2926
2927 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2928
2929         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2930         method return message for property getters
2931
2932 2005-11-27  Robert McQueen  <robot101@debian.org>
2933
2934         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2935         with type v of an instance of dbus.Variant(foo, type='x') caused
2936         it to be boxed twice before sending over the bus.
2937
2938         * python/dbus_bindings.pyx, python/service.py,
2939         test/python/test-client.py: Update the constants for the new
2940         request_name flags, and update comments/test cases now that queueing
2941         is the default action.
2942
2943 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2944
2945         * configure.in:
2946         - Change version to 0.60 for impending release
2947         - upped the sonames because of ABI and API breakage
2948
2949 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2950
2951         * configure.in: Add test/name-test/Makefile to the generated
2952         Makefile list
2953
2954         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2955         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2956         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2957         not to queue an ower if it can't be the primary owner
2958
2959         * bus/bus.h: Add new internal BusOwner struct
2960
2961         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2962         to bus_registry_ensure and don't set the prohibit_replacement flag
2963         since they are now set per BusOwner and not per name.
2964         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2965         that returns the list of connections in a name's connection queue
2966         
2967         * bus/services.c (struct BusService): remove prohibit_replacement field
2968         (struct BusOwner): new struct for keeping track of queued connections
2969         and their associated flags for the queue
2970         (struct BusRegistry): add a BusOwner memory pool
2971         (bus_registry_new): initialize the BusOwner memory pool
2972         (bus_registry_unref): free the BusOwner memory pool
2973         (_bus_service_find_owner_link): new internal method for
2974         searching the queue for a specific connection
2975         (bus_owner_set_flags): new method for adding setting the flags on a
2976         bus owner
2977         (bus_owner_new): new method that creates a BusOwner object from the
2978         pool and sets its flags
2979         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2980         (bus_registry_ensure): Add the flags parameter
2981         (bus_registry_acquire_service): Switch from using raw connections to
2982         using the BusOwner struct
2983         Add new state machine for dealing with the new set of flags
2984         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2985         cancel_ownership, free_ownership_cancel_data, 
2986         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2987         restore_ownership, free_ownership_restore_data, 
2988         add_restore_ownership_to_transaction): Switch to using BusOwner 
2989         instead of raw connections
2990         (bus_service_add_owner): Add flags parameter
2991         Switch to using BusOwner instead of raw connections
2992         Add state machine for dealing with the new set of flags
2993         (bus_service_swap_owner): Swaps the first and second owners in the
2994         queue.  Used to make sure proper signals are sent when a service looses 
2995         or gains primary ownership.  We never insert an owner at the top of the
2996         queue.  Instead we insert it in the second position and then swap.
2997         (bus_service_remove_owner): Remove the owner from the queue sending
2998         out the NameLost and NameOwnerChanged signals if the we were the 
2999         primary owner
3000         (bus_service_get_primary_owners_connection): New method that extracts
3001         the connection from the primary owner
3002         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
3003         connection
3004         (bus_service_get_allow_replacement): Changed from the old 
3005         bus_service_get_prohibit_replacement method.  Checks the flags of the 
3006         primary owner and returns if it can be replaced or not
3007         (bus_service_set_prohibit_replacement): removed
3008         (bus_service_has_owner): returns TRUE if and owner with
3009         the specified connection exists in the queue
3010         
3011         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
3012         method that only compiles if tests are enabled.  Allows us to get the 
3013         unique name of a connection so we can check it against the queue when
3014         doing regression tests
3015
3016         * bus/activation.c (bus_activation_send_pending_auto_activate),
3017         bus/dispatch.c (bus_dispatch),  
3018         bus/driver.c (bus_driver_handle_get_service_owner, 
3019         bus_driver_handle_get_connection_unix_user, 
3020         bus_driver_handle_get_connection_unix_process_id,
3021         bus_driver_handle_get_connection_selinux_security_context),
3022         bus/signals.c (connection_is_primary_owner): 
3023         use bus_service_get_primary_owners_connection instead of
3024         bus_service_get_primary_owner
3025
3026         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
3027         _dbus_listen_unix_socket): Calculate the length of the socket
3028         path and use that instead of using a fixed length which was
3029         causing socket names to contain many trailing Nul bytes.
3030
3031         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
3032         (dbus_g_method_get_sender): New method for extracting the sender 
3033         from a DBusGMethodInvocation
3034         (dbus_g_method_return_get_reply): changed name to 
3035         dbus_g_method_get_reply
3036         (dbus_g_method_return_send_reply): changed name to
3037         dbus_g_method_send reply
3038
3039         * doc/dbus-specification.xml: New docs that describe how the new
3040         queueing system works and talks about the changes to the how
3041         we specify socket names
3042
3043         * glib/examples/example-service.c, 
3044         glib/examples/example-signal-emitter.c,
3045         glib/examples/statemachine/statemachine-server.c:
3046         Changed the RequestName flags to the new system
3047
3048         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
3049         regression test suite for testing various states of the new
3050         queueing system
3051         
3052 2005-11-15  Robert McQueen  <robot101@debian.org>
3053
3054         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
3055         Taylor to add two methods, dbus_g_method_return_get_reply and
3056         dbus_g_method_return_send_reply, to allow you to get the reply
3057         message from a DBusGMethodInvocation, append arbitrary stuff to it,
3058         and send it. The GLib bindings can't marshal a return value of
3059         something like a(s) if the array is empty - ultimately they should be
3060         made to heed the signature of the out arguments as the Python bindings
3061         now can, but this is a workable interim solution which might have
3062         other applications.
3063
3064 2005-11-15  Robert McQueen  <robot101@debian.org>
3065
3066         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
3067         method to org.freedesktop.DBus to release a bus name or give up
3068         waiting in the queue for it.
3069
3070         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
3071         dbus_bus_release_name method to send the ReleaseName method calls.
3072         Add constants for the return values to dbus/dbus-shared.h.
3073
3074         * doc/dbus-specification.xml: Document the new ReleaseName method
3075         in the specification.
3076
3077         * python/dbus_bindings.pyx: Add a low-level python binding for the
3078         release name method.
3079
3080         * python/exceptions.py, python/service.py: Make freeing BusName
3081         objects release the name. Add a NameExistsException, and fix a
3082         bug with creating UnknownMethodException.
3083
3084         * test/python/test-client.py: Add tests for freeing BusName
3085         objects causing names to be released.
3086
3087 2005-11-14  Robert McQueen  <robot101@debian.org>
3088
3089         * python/service.py: Include the traceback in the error reply when we
3090         send an exception over the bus. _BEST_ _PATCH_ _EVER_
3091
3092 2005-11-14  David Zeuthen  <davidz@redhat.com>
3093
3094         Patch from Timo Hoenig <thoenig@suse.de>.
3095
3096         * bus/bus.c: I've recently investigated why the automatic reload
3097         of configuration files does not work as expected.
3098
3099         Currently, reloading configuration files does only work when
3100         running dbus-daemon with --nodaemon.  If we are running as daemon
3101         we're hitting a dnotify bug once we fork the process.
3102
3103         We're initializing the dnotify fds before calling fork().  Once
3104         the child process forked it does still have the fds (and they
3105         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
3106         getting SIGIO as changes are made to the configuration files.
3107
3108         The attached patch moves the initialization of the dnotify fds to
3109         process_config_postinit().  This is safe for all current code
3110         paths and solves the dnotify disfunction.  If we're running
3111         dbus-daemon as daemon the fds for dnotify are now being
3112         initialized after fork() for the child process.
3113
3114         * configure.in: The current configure.in check for dnotify probes
3115         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
3116         match for 'xlinux', too. Additionally I have adapted the configure
3117         option's style to match with the others.
3118
3119 2005-11-14  Robert McQueen  <robot101@debian.org>
3120
3121         * python/decorators.py, python/service.py: Add a new argument to the
3122         dbus.service.method decorator called sender_keyword, which if set,
3123         specifies the name of an argument which will be provided the bus
3124         name of the method caller.
3125
3126         * test/python/test-client.py, test/python/test-service.py: Add a
3127         method and test to check the sender_keyword functionality.
3128
3129 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
3130
3131         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
3132         empty reply so blocking calls don't block forever (Patch from Sjoerd 
3133         Simons <sjoerd at luon.net>)
3134
3135         * AUTHORS: Add Robert McQueen for his work on the Python
3136         Bindings and other parts of D-Bus
3137
3138 2005-11-07  Robert McQueen  <robot101@debian.org>
3139
3140         * python/decorators.py: Change emit_signal function to use the
3141         signature annotation of the signal when marhsalling the arguments from
3142         the service. Fix a bug where the code checking signature length
3143         against argument length referenced the wrong variable.
3144
3145         * python/introspect_parser.py: Avoid adding the type signature of
3146         signal arguments to any methods which occur after them in the
3147         introspection data (!) by making the parser a little more careful
3148         about its current state.
3149
3150         * python/service.py: Remove debug prints from last commit (again :D).
3151
3152         * test/python/test-client.py, test/python/test-service.py: Add test
3153         signals with signature decorators to test the strict marshalling code
3154         gives errors at the right time. Could do with checking the signals
3155         actually get emitted too, given that the test does nothing with
3156         signals at the moment...
3157
3158 2005-11-07  Robert McQueen  <robot101@debian.org>
3159
3160         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
3161         instances to stop madness of creating new instances representing
3162         the same bus connection all the time, rendering any tracking of
3163         match rules and bus names quite meaningless. Caught a bug where
3164         the private argument to SessionBus() and friends was being passed
3165         in as use_default_mainloop by mistake. Still some problems with
3166         multiple dbus_binding.Connection instances representing the same
3167         low-level connection (eg when you use both SessionBus() and
3168         StarterBus() in same process), but it's a lot better now than it
3169         was.
3170
3171         * python/dbus_bindings.pyx: Add constants with the return values
3172         for bus_request_name().
3173
3174         * python/service.py: Store bus name instances in a per-dbus.Bus cache
3175         and retrieve the same instances for the same name, so deletion can be
3176         done with refcounting. Also now throws some kind of error if you
3177         don't actually get the name you requested, unlike previously...
3178
3179         * test/python/test-client.py: Add tests for instance caching of buses
3180         and bus name objects.
3181
3182 2005-11-04  Robert McQueen  <robot101@debian.org>
3183
3184         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
3185         marshalling of boolean values. Add some booleans to the values in
3186         the test client.
3187
3188         * python/decorators.py, python/service.py: Add an 'async_callbacks'
3189         argument to the dbus.service.method decorator, which allows you to
3190         name arguments to take two callback functions for replying with
3191         return values or an exception.
3192
3193         * test/python/test-client.py, test/python/test-service.py: Add test
3194         case using asynchronous method reply functions, both return values and
3195         errors, and from within both the function itself and from a mainloop
3196         callback.
3197
3198         * python/decorators.py, python/service.py: Perform checking that the
3199         number of method/signal arguments matches the number of types in the
3200         signature at class loading time, not when you first introspect the
3201         class.
3202
3203         * python/service.py: Remove debug print left by the last commit.
3204
3205 2005-11-03  Robert McQueen  <robot101@debian.org>
3206
3207         * python/service.py: Heavy refactoring of method invocation, with
3208         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
3209         in favour of a new _message_cb that uses seperate functions for
3210         looking up the method to call, marshalling the return values, and
3211         sending exceptions as errors, and is easier to follow as a
3212         consequence.  Fixes some corner cases about returning things that
3213         don't match your declared out_signature, allows exceptions to define
3214         _dbus_error_name and have it be sent over the bus as the error name,
3215         and paves the way for cool stuff like heeding the message no reply
3216         flag, asynchronous method implementations, informing the method of the
3217         sender, and including backtraces in the error messages.
3218
3219         * test/python/test-client.py: Catch and print exceptions thrown in the
3220         async callback tests, rather than passing them to the low-level
3221         bindings to be ignored in a noisy and frustrating manner.
3222
3223 2005-11-03  Robert McQueen  <robot101@debian.org>
3224
3225         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
3226         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
3227         tweak others to be consistent.
3228
3229         * test/python/test-client.py: Tweak output of testInheritance.
3230
3231 2005-10-29  Robert McQueen  <robot101@debian.org>
3232
3233         * python/service.py: Major changes to allow multiple inheritance
3234         from classes that define D-Bus interfaces:
3235         
3236          1. Create a new Interface class which is the parent class of
3237             Object, and make the ObjectType metaclass into InterfaceType.
3238         
3239          2. Patch written with Rob Taylor to replace use of method_vtable
3240             with code that walks the class's __MRO__ (method resolution order)
3241             to behave like Python does when invoking methods and allow
3242             overriding as you'd expect. Code is quite tricky because
3243             we have to find two methods, the one to invoke which has the
3244             right name and isn't decorated with the /wrong/ interface,
3245             and the one to pick up the signatures from which is decorated
3246             with the right interface.
3247         
3248             The same caveats apply as to normal multiple inheritance -
3249             this has undefined behaviour if you try and inherit from two
3250             classes that define a method with the same name but are
3251             decorated with different interfaces. You should decorate
3252             your overriding method with the interface you want.
3253         
3254          3. Replace grungy introspection XML generation code in the metaclass
3255             with dictionaries that cope correctly with multiple inheritance
3256             and the overriding of methods. This also uses the signature
3257             decorations to provide correct introspection data, including
3258             the debut appearance of the types of your return values. :D
3259
3260         * test/python/test-client.py, test/python/test-service.py: Add a test
3261         case to try invoking an method that overrides one inherited from a
3262         D-Bus interface class.
3263
3264 2005-10-29  Robert McQueen  <robot101@debian.org>
3265
3266         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
3267         Add checking for the end of struct character when marshalling a
3268         struct in MessageIter.append_strict.
3269
3270         * python/examples/example-service.py,
3271         python/examples/gconf-proxy-service.py,
3272         python/examples/gconf-proxy-service2.py: Update to use gobject
3273         mainloop directly rather than appearing to depend on gtk.
3274
3275         * python/test/test-client.py, python/test/test-server.py: Remove
3276         obsolete and broken test scripts for old bindings. We have up to date
3277         and working tests in test/python/.
3278
3279 2005-10-29  Robert McQueen  <robot101@debian.org>
3280
3281         * python/decorators.py: Add optional arguments to the method and
3282         signal decorators to allow you to specify the signature of arguments
3283         and return values. Preserve the doc strings of signal functions in the
3284         decorated version, for pydoc and friends.
3285
3286         * python/dbus_bindings.pyx, python/proxies.py: Replace the
3287         parse_signature_block function with an iterable dbus.Signature()
3288         type. Fix a bug in MessageIter.append_strict where you could append
3289         anything by claiming it was a string.
3290
3291         * python/service.py: Use the out_signature decoration on methods to
3292         marshal return values, meaning you no longer require dbus.Array()
3293         or dbus.Dictionary() to indicate the type when returning empty
3294         arrays or dictionaries. Fix a bug where exceptions which are defined
3295         in __main__ are not turned into error replies.
3296
3297         * test/python/test-client.py, test/python/test-service.py: Add test
3298         for correct marshalling of return values according to out_signature.
3299         Fix a bug in the async call test where the error_handler is missing a
3300         self argument.
3301
3302 2005-10-29  Robert McQueen  <robot101@debian.org>
3303
3304         * glib/Makefile.am, glib/examples/Makefile.am,
3305         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
3306         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
3307
3308         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
3309
3310         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
3311         from Ubuntu by Daniel Silverstone to allow specifying match rules on
3312         the command line.
3313
3314 2005-10-27  Ross Burton  <ross@openedhand.com>
3315
3316         * dbus/dbus-marshal-header.c:
3317         Remove dead code.
3318
3319         * glib/dbus-gobject.c:
3320         Stop compiler warning.
3321
3322 2005-10-25  Ross Burton  <ross@openedhand.com>
3323
3324         * dbus/dbus-auth.c:
3325         * dbus/dbus-server-unix.c:
3326         * dbus/dbus-transport-unix.c:
3327         * glib/dbus-gmain.c:
3328         * glib/dbus-gobject.c:
3329         Add some const keywords.
3330
3331 2005-10-25  Ross Burton  <ross@openedhand.com>
3332
3333         * doc/dbus-specification.xml:
3334         Document the NoReply annotation.
3335
3336         * glib/dbus-binding-tool-glib.h:
3337         * glib/dbus-binding-tool-glib.c:
3338         Respect the NoReply annotation.
3339
3340 2005-10-24  Robert McQueen <robot101@debian.org>
3341
3342         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3343         derive from unicode instead of str, and encode/decode UTF-8 when
3344         marshalling/unmarshalling bus messages
3345
3346         * python/introspect_parser.py: encode introspection data as UTF-8
3347         before passing the buffer into libxml2
3348
3349         * test/python/test-client.py: add unicode test strings
3350
3351         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3352         ignore generated python test files
3353
3354 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3355
3356         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3357         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3358         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3359
3360         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3361         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3362         when constructing struct signatures
3363
3364         * python/_dbus.py (Bus): handle private connections using the
3365         private keyword in the constructor. defaults to private=False
3366         (Bus::close): new method to close a connection to the bus
3367
3368         * python/dbus_bindings.pyx (Connection::close): renamed method
3369         was previously called disconnect
3370         (bus_get): now supports getting a private connection
3371
3372         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3373         keyword is set to True.  if it is, execute the method without waiting
3374         for a reply
3375         (ProxyObject::_introspect_execute_queue): new method for executing
3376         all the pending methods that were waiting for the introspect to
3377         finish.  this is called when introspect either succeeds or fails
3378         (ProxyObject::_introspect_error_handler): call queued methods
3379
3380 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3381
3382         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3383         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3384
3385         * python/service.py (Object::_message_cb): handle exceptions correctly
3386         by sending them over the wire to the calling app.  This makes sure
3387         the client returns immediately instead of waiting the 15 seconds to
3388         timeout.
3389
3390         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3391         Add a test to benchmark how long it takes to introspect a service and 
3392         call a method which returns a large element (pretty fast)
3393
3394         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3395         method which pushes a lot of data
3396
3397 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3398
3399         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3400         reclaim memory outside of the loop and use del istead of just setting
3401         the key to None
3402
3403 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3404
3405         * python/service.py (ObjectType::_reflect_on_signal): Always close
3406         signal tag even when there are no arguments
3407
3408 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3409
3410         * configure.in: Set mono, mono-docs and Qt3 to default
3411         to no instead of auto when building.  These bindings do not
3412         have full time maintainers and will not be supported for the
3413         1.0 release.
3414
3415 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3416
3417         patches from Michael Krivoruchko <misha at sun.com>: 
3418         
3419         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3420         _dbus_connection_message_sent, 
3421         _dbus_connection_send_preallocated_unlocked_no_update, 
3422         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3423         is NULL when calling _dbus_verbose
3424
3425         * configure.in: check for functions getpeerucred and getpeereid
3426
3427         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3428         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3429         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3430         Patch was only tested on Solaris 10 x86 so it might be issues
3431         with other platforms (i.e. BSDs and MacOSX)
3432         
3433
3434 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3435
3436         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3437         instead of marshal basic so we can handle recursive types in a variant
3438
3439         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3440         in variants
3441
3442         * test/glib/test-service-glib.c, test-service-glib.xml
3443         (my_object_echo_variant [EchoVariant], 
3444         my_object_process_variant_of_array_of_ints123
3445         [ProcessVariantOfArrayOfInts123]): 
3446         Add two test methods
3447
3448         * python/introspect_parser.py: New module for parsing introspect
3449         data.
3450
3451         * python/dbus_bindings.pyx:
3452         (various places): when throwing errors fix to use errormsg instead 
3453         of message local variable because Pyrex can get confused with other 
3454         message variables (initial patch by Robert McQueen 
3455         <robert.mcqueen at collabora.co.uk>)
3456         (MessageIter::parse_signature_block): new method for getting the next
3457         block in a signiture.
3458         (MessageIter::append_strict): new method for appending values strictly
3459         using the passed in signature instead of guessing at the type
3460         (MessageItter:: append_dict, append_struct, append_array): use 
3461         signatures to marshal children if the signature is available
3462         
3463         * python/exceptions.py (IntrospectionParserException): new exception
3464
3465         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3466         introspected signatures if available, else we fall back to the
3467         old way of doing things.
3468         (ProxyObject::_introspect_reply_handler ): parse introspection data
3469         
3470         * python/service.py (ObjectType::_reflect_on_method): Properly
3471         terminate <method> if there are no args in the reflection data
3472
3473         * test/python/test-client.py: add tests for talking with the GLib
3474         test server.  This gives us better coverage for introspection since
3475         python to python will always generate arguments as variants.  It also
3476         allows us to test the robustness of the GLib bindings and interlanguage
3477         communications.
3478
3479         
3480 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3481
3482         * bus/driver.c (bus_driver_handle_introspect): Add signals
3483         to the introspect data. (patch from Daniel P. Berrange 
3484         <dan at berrange.com>)
3485
3486         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3487         
3488         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3489         _dbus_connection_run_builtin_filters): Changed these to
3490         be unlock_no_update functions and call 
3491         _dbus_connection_send_unlocked_no_update instead of
3492         dbus_connection_send to avoid locking errors.
3493         
3494         * doc/TODO: Removed the make Ping test TODO
3495         
3496 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3497
3498         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3499         We now copy the message from a DBusError and then free 
3500         the error object befor throwing the error
3501
3502         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3503         DBusBindingOutputMode enum which was causing a warning.
3504         #include <time.h> so using time_t is explicitly defined
3505
3506 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3507
3508         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3509         - dbus/dbus-bus.c
3510         (internal_bus_get): new method that take over the heavy lifting
3511         of dbus_bus_get and adds the ability to get a private connection
3512         to the bus
3513         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3514         interface as in previous versions
3515         (dbus_bus_get_private): new method that is a wrapper to 
3516         internal_bus_get to get a private connection to the bus
3517
3518         - dbus/dbus-bus.h
3519         (dbus_bus_get_private): add as a public libdbus interface
3520
3521         - dbus-1.pc.in: output system_bus_default_address and 
3522         sysconfdir variables so apps can use them when compiling
3523
3524 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3525         * dbus/qt: New Qt bindings
3526
3527 2005-09-12  Waldo Bastian  <bastian@kde.org>
3528
3529         * dbus/dbus-marshal-validate.c,
3530         doc/dbus-specification.xml, test/Makefile.am,
3531         test/test-names.c: allow hyphens in bus names.
3532
3533 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3534
3535         * test/data/auth/fallback.auth-script: we don't
3536         retry the EXTERNAL method when we know its going
3537         to fail anymore.
3538
3539 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3540
3541         * dbus/dbus-connection-internal.h: rename
3542         (add|remove|toggle)_(watch|timeout) to unlocked()
3543         
3544         * dbus/dbus-connection.c: ditto.
3545         
3546         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3547         Update some callers for the renaming.
3548
3549 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3550
3551         * dbus/dbus-auth.c: (record_mechanisms): don't
3552         retry the first auth mechanism because we know
3553         we're just going to get rejected again.
3554         
3555         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3556         Fix thinko ... and what a nasty little bugger to
3557         track down you were ...
3558
3559         * dbus/dbus-connection.c:
3560         (_dbus_connection_add_watch),
3561         (_dbus_connection_remove_watch): add note about
3562         these needing the connection to be locked.
3563         (_dbus_connection_get_dispatch_status_unlocked):
3564         set status to DATA_REMAINS when we queue the
3565         disconnected message.
3566         
3567         * bus/dispatch.c:
3568         (bus_dispatch): fix warning.
3569         (check_existent_service_no_auto_start):
3570         Expect ChildSignaled error too.
3571         (check_existent_hello_from_self): fix another
3572         couple of warnings.
3573         
3574 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3575
3576         Patches from James Willcox <snorp@snorp.net>
3577
3578         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3579
3580         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3581         support array "out" parameters.
3582
3583         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3584         for 16-bit int support.
3585
3586 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3587
3588         * Released 0.50
3589
3590         * Patch from Steve Grubb:
3591         - bus/activation.c (bus_activation_service_reload_test): clean up
3592         some indentation
3593         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3594         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3595         buffer overflows in the test suite.  This is non critical because
3596         it can not be exploited and this code is only run when doing a 
3597         make check.
3598
3599         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3600         - configure.in: Don't check and link against kdecore, only qt headers
3601         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3602         - gcj/org/freedesktop/dbus/Makefile.am:
3603         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3604         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3605         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3606         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3607         - tools/Makefile.am: Add platform extentions to binaries 
3608         (i.e. .exe on windows)
3609
3610         * configure.in: 
3611         - Make it so if no suitable version of python is found we only 
3612         disable building python instead of exiting the configure script
3613         - Require version 2.4 of glib for glib bindings
3614         - Up version to 0.50
3615
3616         * python/__init__.py: Sync version with libdbus to (0,50,0)
3617         
3618 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3619
3620         * dbus/dbus-object-tree.c (find_subtree_recurse):
3621         a couple of optimizations (bug #710):
3622         - do a binary search in the tree
3623         - insert a new child at the right place directly, no need for
3624           qsort anymore
3625         - do the "double alloc" thing when allocating children
3626
3627 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3628
3629         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3630
3631         * python/dbus_bindings.pyx: Memory management foo
3632         (global): remove hacky _user_data_references global list
3633         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3634         tuples. Unref user_data
3635         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3636         (Connection::__del__): Remove and replace with __dealloc__ method
3637         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3638         to keep tuple from being deallocated instead of the global var hack
3639         (Connection::register_object_path): Stuff user_data into a tuple.
3640         Use Py_INCREF to keep tuple from being deallocated instead of the 
3641         global var hack
3642         (Connection::register_fallback): Stuff user_data into a tuple.
3643         Use Py_INCREF to keep tuple from being deallocated instead of the 
3644         global var hack
3645         (GIL_safe_pending_call_notification): Don't unref the message
3646         because it gets unreffed when going out of scope.  Py_XDECREF
3647         the user_data
3648         (PendingCall::__del__): Remove and replace with __dealloc__ method
3649         (PendingCall::set_notify): ref the pending call because we will
3650         need it to stick around for when the notify callback gets called
3651         (Message::__del__): Remove and replace with __dealloc__ method
3652
3653         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3654         gthreads_init to match up with the dbus call
3655
3656         * python/glib.py (init_threads): Changed to threads_init to match
3657         up with gobject.threads_init().  init_threads is kept for backwards
3658         compat but will most likely be deprecated in the future
3659
3660         * test/python/test-client.py: 
3661         - revamp to use Python's unittest functionality
3662         - add async call tests
3663         - setup threads in glib and dbus so we make sure locks are working
3664         
3665 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3666
3667         * python/dbus_bindings.pyx 
3668         (_pending_call_notification, cunregister_function_handler, 
3669         cmessage_function_handler): All callback functions have been rearranged 
3670         to workaround a bug in Pyrex when working with the GIL which is Python's 
3671         global lock when dealing with threads.  They have been split into
3672         a wrapper function (which assumes the name of the old function) and
3673         a _GIL_safe_<function name> function which contains the functionality
3674         of the old function.  This ensures that Pyrex does not write code
3675         the lock is released.
3676         
3677
3678 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3679
3680         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3681         GIL global lock when calling back into Python
3682
3683 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3684
3685         * Release 0.36.2
3686
3687         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3688
3689         * bus/policy.c (bus_policy_allow_user): change default "user is
3690         allowed" to be "user has same uid as the bus itself"; any
3691         allow/deny rules will override.
3692
3693         * bus/session.conf.in: don't allow all users, since now by default
3694         the user that ran the bus can connect.
3695
3696 2005-08-26  Colin Walters  <walters@verbum.org>
3697
3698         * tools/dbus-print-message.c (print_message): Flush stdout
3699         after printing a message, so that redirecting to a file, then
3700         hitting Ctrl-C works.
3701
3702 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3703
3704         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3705         (EmptyMessage): new class that subclasses Message.  This is a workaround
3706         to a Pyrex bug that fails to call __del__ when the Message object goes out
3707         of scope.  For some reason subclassing Message fixes this bug
3708         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3709         - s/Message(_create=0)/EmptyMessage everywhere else
3710         
3711         * test/python/test-{server|client}.py: add the python/.libs directory
3712         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3713         get picked up from the system
3714
3715 2005-08-25  Colin Walters  <walters@verbum.org>
3716
3717         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3718         to Ryan Lortie for the suggestion.
3719
3720 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3721
3722         * test/python: Add python regression test
3723
3724         * configure.in: Add test/python/Makefile
3725
3726         * test/Makefile.am: Add the python directory to SUBDIRS
3727
3728 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3729
3730         * Release 0.36.1
3731
3732         * python/_dbus.py: 
3733         (Interface::connect_to_signal): propigate keywords for match on args
3734         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3735
3736         * python/proxies.py (ProxyObject::connect_to_signal):
3737         propigate keywords for match on args
3738
3739         * Makefile.am: point everything to pyexecdir since python borks
3740         on multilib
3741
3742 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3743
3744         * Release 0.36
3745
3746 2005-08-23  Colin Walters  <walters@verbum.org>
3747
3748         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3749
3750 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3751
3752         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3753         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3754         of defining DBusConnection ourselves.
3755
3756 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3757
3758         * python/dbus.pth: New path file to fix up problems when installing
3759         c libraries to lib64 and python files to lib.
3760
3761         * python/Makefile.am: install dbus.pth in the correct spot
3762
3763 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3764         * ChangeLog: clean up my last entry a bit
3765
3766         * doc/introspect.xsl: New stylesheet for converting introspection data
3767         into browser renderable xhtml. Contributed by Lennart Poettering.
3768
3769         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3770         Poettering.
3771
3772         * doc/dbus-tutorial.xml: 
3773         - Add Colin Walter to the Authors section for authoring the GLib
3774         section
3775         - Add descriptions of the new signature and type functionality
3776         in the Python complex type mapping section
3777         - Add a sidenote on the new args matching functionality in 
3778         the Python bindings
3779         - Fixed up some of the examples to use the gobject.MainLoop
3780         instead of gtk.main
3781         
3782         * python/_dbus.py:
3783         (Bus::_create_args_dict): New. Converts a hash of arg matches
3784         to a more useable format
3785         (Bus::add_signal_receiver): add a **keywords parameter for catching
3786         arg match parameters
3787         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3788         arg match parameters
3789         
3790         * python/matchrules.py:
3791         (MatchTree::exec_matches): Check for arg matches
3792         (SignalMatchRule::add_args_match): New method
3793         (SignalMatchRule::execute): Added args_list parameter as an optimization
3794         so we don't have to marshal the args more than once
3795         (SignalMatchRule::match_args_from_list): New method that checks to see
3796         if the rule's arg matches match an argument list.  Only arguments
3797         set in the rule are checked.
3798         (SignalMatchRule::match_args_from_rule): New method that checks to see
3799         if the rule's arg matches match another rule's.  All args have to match
3800         in order for this method to return true.  If either rule has more args
3801         then it is not a match.
3802         (SignalMatchRule::is_match): Add args match
3803         (SignalMatchRule::repr): Add args to the final output if they exist
3804
3805 2005-08-17  Ross Burton  <ross@burtonini.com>
3806
3807         * glib/dbus-gproxy.c:
3808         (dbus_g_proxy_call_no_reply): unref the message once sent.
3809         (dbus_g_proxy_call): protect against NULL proxy.
3810
3811 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3812
3813         * python/__init__.py: Version updated (0, 43, 0)
3814         
3815         * python/dbus_bindings.pyx: 
3816         - Fixed type objects to have self passed into __init__
3817         - Added the Variant type
3818         - Add the ability to specify types or signatures for Array, Variant 
3819         and Dictionary
3820         (Connection::send_with_reply_handlers): return a PendingCall object
3821         (_pending_call_notification): handle the case when an error is returned 
3822         without an error message in the body
3823         (MessageIter::get_boolean): return True or False instead of an integer
3824         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3825         and add checks for objects with embeded signatures or types (Array, 
3826         Variant and Dictionary)
3827         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3828         (MessageIter::append_dict): handle embeded types or signatures
3829         (MessageIter::append_array): handle embeded types or signatures
3830         (MessageIter::append_variant): new method
3831         
3832         * python/proxies.py:
3833         (DeferedMethod): New. Dummy executable object used when queuing calls 
3834         blocking on introspection data
3835         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3836         or shorter timeouts for method calls
3837         (ProxyObject): Add first pass at an introspection state machine
3838         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3839         introspection. 
3840         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3841         the usual mechanisms for sending messages.  This is to avoid a deadlock
3842         where the Intospect call would be queued waiting for the Introspect 
3843         call to finish ;-)
3844         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3845         when introspection returns with no error
3846         (ProxyObject::_introspect_error_handler): New.  This method is called 
3847         when introspection encounters an error
3848         (ProxyObject::__getattr__): Code to handle different introspection 
3849         states.  Queue async calls or block blocking calls if we are 
3850         introspecting.  Pass through as normal if we are not or are done with 
3851         introspecting.
3852         
3853         * python/service.py: Import signal and method from decorators.py
3854
3855         * python/types.py: Add Variant type
3856
3857 2005-08-16  Colin Walters  <walters@verbum.org>
3858
3859         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3860         DBusError message is NULL.
3861
3862 2005-08-09  Havoc Pennington  <hp@redhat.com>
3863
3864         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3865         malloc'd copy of the name parameter
3866
3867 2005-08-09  Havoc Pennington  <hp@redhat.com>
3868
3869         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3870         warning if the reply serial is set to 0
3871
3872 2005-08-04  Colin Walters  <walters@verbum.org>
3873
3874         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3875         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3876         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3877         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3878         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3879         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3880         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3881         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3882         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3883         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3884         
3885         Prefix name with _ to ensure they're not exported.  All callers
3886         updated.
3887
3888         * glib/dbus-gvalue.c (typecode_to_gtype)
3889         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3890         (signature_iter_to_g_type_dict)
3891         (signature_iter_to_g_type_array)
3892         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3893         (dbus_gtypes_from_arg_signature):
3894         Move to dbus-gsignature.c.
3895
3896         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3897         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3898         (dbus_binding_tool_output_glib_client): Ditto.
3899
3900         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3901         and dbus-gsignature.h
3902
3903         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3904         unused variable.
3905
3906 2005-08-03  Colin Walters  <walters@verbum.org>
3907
3908         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3909         catch any incompatible changes accidentally made.
3910
3911 2005-08-03  Havoc Pennington  <hp@redhat.com>
3912
3913         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3914         typo, from Julien Puydt
3915
3916         * bus/connection.c (bus_connection_disconnected): we were always
3917         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3918
3919 2005-08-01  Colin Walters  <walters@verbum.org>
3920
3921         Patch from Joe Markus Clarke:   
3922         
3923         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3924         use-after-free.
3925
3926 2005-08-01  Colin Walters  <walters@verbum.org>
3927         
3928         Patch from Joe Markus Clarke:   
3929         
3930         * tools/dbus-send.c (main): 
3931         
3932         Don't use C99 style initializers (bug #3933).
3933         
3934 2005-08-01  Colin Walters  <walters@verbum.org>
3935
3936         Patch from Joe Markus Clarke:   
3937
3938         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3939         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3940         * glib/dbus-gobject.c (write_interface):
3941
3942         Don't use C99 style initializers (bug #3933).
3943
3944 2005-07-31  Havoc Pennington  <hp@redhat.com>
3945
3946         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3947         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3948
3949 2005-07-30  Havoc Pennington  <hp@redhat.com>
3950
3951         * fix a bunch of Doxygen warnings and mistakes
3952
3953 2005-07-30  Havoc Pennington  <hp@redhat.com>
3954
3955         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3956         DBUS_BUILD_TESTS since it's now used in production code
3957
3958 2005-07-29  Havoc Pennington  <hp@redhat.com>
3959
3960         * test/glib/test-profile.c (write_junk): initialize the junk
3961         buffer so valgrind doesn't have a breakdown
3962
3963 2005-07-29  Havoc Pennington  <hp@redhat.com>
3964
3965         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3966         (match_rule_matches): remove unused arg
3967         (test_matching): add tests for match_rule_matches()
3968
3969         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3970         do arg0='foo' arg5='bar' in the match rules
3971         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3972
3973         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3974
3975 2005-07-29  Ross Burton  <ross@openedhand.com>
3976
3977         * dbus/dbus-connection.c:
3978         Don't create a DBusCondVar which is never used.
3979
3980 2005-07-27  Ross Burton  <ross@openedhand.com>
3981
3982         * dbus/dbus-message.c:
3983         Reduce the size of the maximum cached message to 10K.
3984
3985 2005-07-25  Ross Burton  <ross@openedhand.com>
3986
3987         * glib/dbus-gproxy.c:
3988         Remove matches when all proxies are unregistered.
3989
3990 2005-07-24  Colin Walters  <walters@verbum.org>
3991
3992         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3993         typedata; recursive arrays won't have it.
3994
3995         * test/glib/test-dbus-glib.c:
3996         * test/glib/test-service-glib.c:
3997         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3998         
3999 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
4000
4001         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
4002         proxies.py, service.py: Cleanup of code after running it through the
4003         pyflakes code checker mostly dealing with undefined names.  
4004         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
4005
4006 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
4007
4008         * NEWS: Update to 0.35.2
4009
4010 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
4011
4012         * python/_dbus.py: Remove import of the dbus.services
4013         module as it no longer exists (patch from Dimitur Kirov)
4014
4015         * python/service.py (Object::__init__): Fixed typo
4016         s/name/bus_name (patch from Dimitur Kirov)
4017
4018         * python/examples/example-signal-emitter.py: import dbus.glib
4019         to get the main loop and use glib mainloop instead of gtk so
4020         X doesn't have to be running.
4021
4022         * python/examples/example-signal-recipient.py: import dbus.glib
4023         to get the main loop and use glib mainloop instead of gtk so
4024         X doesn't have to be running. Import the decorators module
4025         directly.
4026
4027         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
4028         didn't pick up on but are needed to build
4029
4030         * configure.in: upped version to 0.35.2
4031
4032         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
4033         added Colin Walters' SELinux API rename patch from head 
4034         s/unix sercurity context/selinux security context/
4035
4036 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
4037
4038         * python/Makefile.am: dbus_binding.pxd.in should be included 
4039         in EXTRA_DIST not dbus_binding.pxd
4040         fix up $(srcdir) hopefully for the last time
4041
4042         * NEWS: Update to 0.35.1
4043
4044 2005-07-16  Colin Walters  <walters@verbum.org>
4045
4046         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
4047         from bus_driver_handle_get_connection_unix_security_context.  Update for
4048         error usage.
4049         (message_handlers): Update for renames.
4050
4051         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
4052         _dbus_string_init failure correctly.
4053         (bus_selinux_append_context): Convert SID to context.  Append it
4054         as a byte array.
4055         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
4056         hasn't been called.
4057
4058         * bus/selinux.h: Update prototype.
4059
4060         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
4061         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
4062
4063 2005-07-15  Colin Walters  <walters@verbum.org>
4064
4065         * doc/TODO: Add note about convenience wrappers.
4066
4067 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4068
4069         * NEWS: Update to 0.35
4070
4071 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4072
4073         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
4074         so distcheck doesn't fail
4075
4076         * glib/examples/Makefile.am: Add example-service.xml and 
4077         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
4078
4079         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
4080         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
4081
4082         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
4083         compiler looks in the right places during distcheck
4084
4085 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4086
4087         * glib/example/Makefile.am: Fix a typo which cause make distcheck
4088         to fail
4089
4090 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4091
4092         * python/examples/example-service.py,
4093         python/examples/example-signal-emitter.py: Fixed up examples
4094         for API changes
4095
4096 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4097
4098         * python/__init__.py: Upped to version (0,42,0) because of
4099         the API change
4100
4101 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4102
4103         * ChangeLog: fix date in last entry
4104
4105         * configure.in, bus/system.conf.in: add the ability to configure 
4106         the system bus user at compiletime with the --with-dbus-user flag
4107         (patch from Kristof Vansant)
4108
4109 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4110
4111         * bus/dispatch.c, test/test-service.c: Add testcase
4112         for sending messages to oneself (TODO item).
4113
4114         * python/service.py (class Object): Swap ordering of bus_name 
4115         and object_path parameters to better support inheritance.
4116
4117         * doc/dbus-tutorial.xml: change Python docs to reflect change
4118         in parameter ordering and fix the inheritance section.
4119
4120         * doc/TODO: remove sending message to oneself TODO item
4121
4122 2005-07-15  Ross Burton  <ross@openedhand.com>
4123
4124         * glib/dbus-gproxy.c:
4125         Fix a leak when calling methods via the proxy.
4126
4127 2005-07-15  Colin Walters  <walters@verbum.org>
4128
4129         * bus/selinux.c (bus_selinux_append_context): Wrap in
4130         HAVE_SELINUX.
4131
4132 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4133
4134         * python/_dbus.py (Bus::remove_signal_receiver):
4135         don't add a callback to the match if none has been passed in
4136         
4137         * python/matchrules.py (SignalMatchTree::remove): if the rule
4138         being matched does not have a callback treat it as a wildcard
4139         fix matching logic
4140
4141         * doc/dbus-tutorial.xml: Add Python tutorial
4142
4143 2005-07-14  Colin Walters  <walters@verbum.org>
4144
4145         * bus/driver.c
4146         (bus_driver_handle_get_connection_unix_security_context): New function.
4147         (message_handlers): Add.
4148
4149         * bus/selinux.c (bus_selinux_append_context): New function; appends
4150         security context to message.
4151
4152         * bus/selinux.h: Prototype.
4153
4154         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
4155
4156 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4157
4158         * bus/activation.c: clean up all tabs to be 8 spaces 
4159         (bus_activation_activate_service): make sure we clean up
4160         if activation fails
4161
4162         * bus/dispatch.c: clean up all tabs to be 8 spaces 
4163         (check_shell_fail_service_auto_start): New function
4164         tests to make sure we get fail properly when trying to auto start a service
4165         with a faulty command line
4166         (check_shell_service_success_auto_start): New function tests to make sure
4167         auto started services get the arguments on the command line
4168
4169         * test/test-shell-service.c: Added service for testing auto-starting with 
4170         command line arguments
4171
4172         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
4173         test/data/valid-service-files/debug-shell-echo-success.service.in:
4174         Added service files for testing auto-starting with command line arguments
4175
4176         * */.cvsignore: added a bunch of generated files to various .cvsignore files
4177
4178 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
4179
4180         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
4181         
4182         * dbus/Makefile.am: added new files to build.
4183
4184         * bus/activation.c (bus_activation_activate_service): support
4185         activation commands with parameters.
4186
4187         * test/shell-test.c: added test program for the shell parsing
4188         code.
4189
4190 2005-07-13  David Zeuthen  <davidz@redhat.com>
4191
4192         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
4193         64 bit signed and unsigned parameters
4194
4195 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
4196
4197         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
4198
4199         * python/service.py (class Name): renamed BusName to make it clearer
4200         what the object is for (a name on the bus)
4201
4202         * python/examples/example-service.py,
4203         python/examples/example-signal-emitter.py: change the Name object to
4204         BusName
4205
4206 2005-07-12  Colin Walters  <walters@verbum.org>
4207
4208         Patch from Jim Gettys <Jim.Gettys@hp.com>.
4209
4210         * tools/dbus-launch.c: Include sys/select.h.
4211
4212 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
4213         * python/dbus_bindings.pyx.in: removed
4214
4215         * python/dbus_bindings.pyx: Added.
4216         - Fixed some memleaks (patch from 
4217         Sean Meiners <sean.meiners@linspireinc.com>)
4218         - Broke out the #include "dbus_h_wrapper.h" and put it in its
4219         own pxd file (Pyrex definition)
4220         - Broke out glib dependancies into its own pyx module
4221         
4222         * python/dbus_bindings.pdx: Added.
4223         - Defines C class Connection for exporting to other modules
4224
4225         * python/dbus_glib_bindings.pyx: Added.
4226         - New module to handle lowlevel dbus-glib mainloop integration
4227
4228         * python/glib.py: Added.
4229         - Registers the glib mainloop when you import this module
4230
4231         * python/services.py: Removed (renamed to service.py)
4232         
4233         * python/service.py: Added.
4234         - (class Server): renamed Name
4235
4236         * python/__init__.py: Bump ro version (0,41,0)
4237         -don't import the decorators or service module
4238         by default.  These now reside in the dbus.service namespace
4239
4240         * python/_dbus.py (Bus::__init__): Add code run the main loop 
4241         setup function on creation 
4242
4243         * python/examples/example-service.py,
4244         python/examples/example-signal-emitter.py: update examples
4245
4246         * python/examples/gconf-proxy-service.py,
4247         python/examples/gconf-proxy-service2.py: TODO fix these up
4248
4249         * doc/TODO: Addition
4250         - Added a Python Bindings 1.0 section
4251         - added "Add match on args or match on details to match rules"
4252
4253
4254 2005-07-12  Colin Walters  <walters@verbum.org>
4255
4256         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
4257         (statemachine-glue.h): 
4258         * glib/examples/Makefile.am (example-service-glue.h) 
4259         (example-signal-emitter-glue.h): 
4260         * glib/Makefile.am (dbus-glib-error-switch.h): 
4261         Add libtool --mode=execute so we use the built library instead
4262         of any installed one.
4263
4264 2005-07-11  Colin Walters  <walters@verbum.org>
4265
4266         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
4267         (dbus_g_value_types_init): Remove assertion.
4268         (dbus_g_value_get_g_type, dbus_g_value_open)
4269         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
4270         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
4271         functions related to DBusGValue.  Now we marshal/demarshal
4272         structures as GValueArray.
4273         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
4274         structures.
4275         (signature_iter_to_g_type_array): Don't call
4276         signature_iter_to_g_type_struct.
4277         (signature_iter_to_g_type_struct): Delete.
4278         (dbus_gvalue_to_signature): Delete.
4279         (dbus_gvalue_to_signature): New function with same name as other
4280         one; we can convert structures to signatures.
4281         (demarshal_valuearray): New function.
4282         (get_type_demarshaller): Use it.
4283         (demarshal_recurse): Delete.
4284         (marshal_proxy): New function.
4285         (marshal_map): Warn if we can't determine signature from type.
4286         (marshal_collection_ptrarray): Ditto.
4287         (marshal_collection_array): Ditto.
4288         (get_type_marshaller): Use marshal_valuearray.
4289         (marshal_recurse): Delete.
4290         (_dbus_gvalue_test): Add some tests.
4291
4292         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
4293         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
4294         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4295         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4296         (dbus_g_value_free): Remove prototypes.
4297
4298         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
4299         G_TYPE_VALUE_ARRAY.
4300
4301         * glib/examples/example-service.c:
4302         * glib/examples/example-client.c: Implement GetTuple.
4303
4304         * test/glib/test-dbus-glib.c:
4305         * test/glib/test-service-glib.c:
4306         * test/glib/test-service-glib.xml: Add structure tests.
4307
4308 2005-07-10  Colin Walters  <walters@verbum.org>
4309
4310         * doc/TODO: Knock off some GLib items with this patch.
4311
4312         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
4313         (_dbus_gvalue_signals_error): New functions.
4314
4315         * glib/dbus-gvalue-utils.h: Prototype them.
4316
4317         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
4318         and change to not output const/retval flags for input args.  All
4319         callers updated.
4320         (invoke_object_method): Refactor to handle return values.  Add
4321         some more comments in various places.  Remove debug g_print.
4322
4323         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
4324
4325         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
4326         Handle G_TYPE_NONE.
4327         (compute_gsignature): New function; refactored from code from
4328         compute_marshaller and compute_marshaller_name.  Enhance to
4329         handle return values and async ops more cleanly.  Update for
4330         async ops returning NONE instead of BOOLEAN.
4331         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
4332         and output appropriate string.
4333         (generate_glue): Handle return value annotation.  Also don't dump
4334         constness flag for input arguments.
4335
4336         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
4337         files shared between installed library and utilities.
4338         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4339         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4340         binding tool can access gtype utility functions.
4341
4342         * test/glib/test-service-glib.c: 
4343         * test/glib/test-service-glib.xml: 
4344         * test/glib/test-dbus-glib.c: Add some tests for return values.
4345
4346 2005-07-09  Colin Walters  <walters@verbum.org>
4347
4348         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4349         argument if available, not method.
4350
4351         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4352         (invoke_object_method): First, remove some redundant
4353         GValues (object_value, error_value) in favor of working on
4354         array directly.  Second, rework constness to be less buggy.
4355         Now we iterate directly over the argument metadata instead
4356         of parallel iterating over output signature and metadata.
4357
4358         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4359
4360         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4361         annotation on input args.
4362         
4363 2005-07-09  Colin Walters  <walters@verbum.org>
4364
4365         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4366         Define.
4367
4368         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4369         annotation.
4370
4371         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4372         (method_dir_signature_from_object_info): Handle arg_iterate change.
4373         (write_interface): Ditto.
4374         (lookup_object_info): Don't barf if format_version is > 0.
4375         (invoke_object_method): Handle arg constness.
4376
4377         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4378         (arg_info_new): Create.
4379         (arg_info_unref): Destroy.
4380         (arg_info_get_annotations, arg_info_get_annotation) 
4381         (arg_info_add_annotation): New functions.
4382
4383         * glib/dbus-gidl.h: Prototype them.
4384
4385         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4386         args, disallow them in properties.
4387         (parse_annotation): Handle arg annotations.
4388
4389         * test/glib/test-service-glib.xml: 
4390         * test/glib/test-service-glib.c: Update to make some methods
4391         const.
4392
4393 2005-07-08  Colin Walters  <walters@verbum.org>
4394
4395         * test/glib/test-service-glib.xml: 
4396         * test/glib/test-service-glib.c:
4397         * test/glib/test-dbus-glib.c: Test a{sv}.
4398
4399         * glib/examples/statemachine/statemachine.c:
4400         * glib/examples/statemachine/statemachine-server.c:
4401         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4402         add progress bar, etc.
4403
4404         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4405         needed anymore due to generic array/map marshalling.
4406         (dbus_g_value_types_init): Don't register basic arrays or the
4407         string/string hash.
4408         (dbus_gtype_from_signature_iter): Don't try to recurse into
4409         variants.
4410         (dbus_gtype_to_signature): Check collection/map before type
4411         metadata.
4412         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4413         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4414         generic map creation/append functions instead of hash table
4415         specifically.
4416         (get_type_demarshaller): Handle maps.
4417         (demarshal_collection): Dispatch on collection type to either
4418         demarshal_collection_ptrarray or demarshal_collection_array.
4419         (get_type_marshaller): Handle maps.
4420         (marshal_collection): Dispatch collection type to either
4421         marshal_collection_ptrarray or marshal_collection_array.
4422         (_dbus_gvalue_test): New test.
4423
4424         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4425         (hash_free_from_gtype): Use it to free GValues.
4426         (hashtable_append): New function.
4427         (ptrarray_append): Fix prototype.
4428         (slist_append): Ditto.
4429         (_dbus_gvalue_utils_test): Extend tests.
4430
4431         * glib/dbus-gtype-specialized.c
4432         (dbus_g_type_specialized_init_append): Renamed from
4433         dbus_g_type_specialized_collection_init_append.  Remove const from
4434         value, since we steal it.
4435         (dbus_g_type_specialized_map_append): New function.
4436
4437         * glib/dbus-gtype-specialized.h: Update prototypes.
4438         Add DBusGTypeSpecializedMapAppendFunc.
4439
4440         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4441         _dbus_gvalue_test.
4442         
4443         * glib/dbus-gtest.h: Prototype it.
4444
4445 2005-07-08  Ross Burton  <ross@openedhand.com>
4446
4447         * dbus/dbus-glib.h:
4448         Add DBysGAsyncData for the async bindings.
4449
4450         * glib/dbus-binding-tool-glib.c:
4451         Re-enable the async bindings.
4452
4453         * test/glib/test-dbus-glib.c:
4454         Add a test for the generated async bindings.
4455
4456 2005-07-08  Colin Walters  <walters@verbum.org>
4457
4458         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4459         connection concept.
4460         
4461 2005-07-08  Colin Walters  <walters@verbum.org>
4462         
4463         * tools/Makefile.am: Kill of print-introspect in favor of using
4464         dbus-send --print-reply=literal.
4465
4466         * test/glib/test-service-glib.xml: 
4467         * test/glib/test-service-glib.c (my_object_get_objs): New test
4468         for "ao".
4469
4470         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4471         (main): Test GetObjs.
4472
4473         * glib/examples/statemachine/Makefile.am:
4474         * glib/examples/statemachine/sm-marshal.list:
4475         * glib/examples/statemachine/statemachine-client.c:
4476         * glib/examples/statemachine/statemachine-server.c:
4477         * glib/examples/statemachine/statemachine-server.xml:
4478         * glib/examples/statemachine/statemachine.c:
4479         * glib/examples/statemachine/statemachine.h:
4480         * glib/examples/statemachine/statemachine.xml:
4481
4482         New example.
4483
4484         * glib/examples/example-service.c (main): Move invocation
4485         of dbus_g_object_type_install_info earlier, to emphasize it
4486         should only be done once.
4487
4488         * glib/examples/example-signal-emitter.c (main): Ditto.
4489
4490         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4491
4492         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4493         (dbus_gvalue_marshal): Update prototypes.
4494
4495         * glib/dbus-gvalue.c: Update all marshalling functions to take
4496         const GValue instead of GValue.
4497         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4498         types.
4499         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4500         change.
4501         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4502         Return a newly-allocated string.
4503         (demarshal_proxy, demarshal_object_path, demarshal_object)
4504         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4505         we get the wrong types from message.
4506         (get_type_demarshaller): New function, extracted from
4507         dbus_gvalue_demarshal.
4508         (demarshal_collection): New function, demarshals generic
4509         collection.
4510         (dbus_gvalue_demarshal): Just invoke result of
4511         get_type_demarshaller.  Throw error if we don't have one.
4512         (marshal_garray_basic): Abort on OOM.
4513         (get_type_marshaller): New function, extracted from
4514         dbus_gvalue_marshal.
4515         (collection_marshal_iterator, marshal_collection): New functions;
4516         implements generic marshalling for an iteratable specialized
4517         collection.
4518         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4519
4520         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4521         G_TYPE_STRING.
4522         (ptrarray_value_from_gvalue): Ditto.
4523         (ptrarray_append, ptrarray_free): New functions.
4524         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4525         (slist_append, slist_end_append, slist_free): New functions.
4526         (dbus_g_type_specialized_builtins_init): Add append fuctions
4527         for GPtrArray and GSList.  Register GSList.
4528         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4529
4530         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4531         New.
4532         (dbus_g_type_specialized_collection_init_append)
4533         (dbus_g_type_specialized_collection_append)
4534         (dbus_g_type_specialized_collection_end_append): Prototype.
4535         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4536         end_append_func.
4537
4538         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4539         (dbus_g_type_specialized_collection_append) 
4540         (dbus_g_type_specialized_collection_end_append): New functions.
4541         (dbus_g_type_map_value_iterate): Take const GValue.
4542         (dbus_g_type_collection_value_iterate): Ditto.
4543
4544         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4545         _dbus_gvalue_utils_test.
4546         
4547         * glib/dbus-gtest.h: Prototype it.
4548
4549         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4550         using uninitialized owner_list.
4551         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4552         public API.
4553         (dbus_g_proxy_end_call_internal): Update to use error set
4554         from dbus_gvalue_demarshal instead of setting it here.
4555         (dbus_g_proxy_begin_call): Move return_if_fail here.
4556
4557         * glib/dbus-gobject.c (write_interface): Update for
4558         dbus_gtype_to_signature returning new string.
4559
4560         * configure.in: Add glib/examples/statemachine.
4561
4562 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4563
4564         * configure.in: Add a configure option, --with-console-auth-dir
4565         
4566         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4567         new setting.  Patch from Kay Sievers.
4568
4569 2005-07-06  Colin Walters  <walters@verbum.org>
4570
4571         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4572         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4573         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4574         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4575         Delete in favor of dbus_g_proxy_begin_call and
4576         dbus_g_proxy_cancel_call.
4577         (DBusGProxyCall, DBusGProxyCallNotify): New.
4578         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4579         data, and destroy function.  This replaces
4580         dbus_g_pending_call_set_notify.
4581         (dbus_g_proxy_cancel_call): Prototype.
4582         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4583
4584         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4585         pending_calls map.
4586         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4587         internal proxy for calls to the bus. Remove
4588         pending_nameowner_calls, now the internal proxy keeps track.
4589         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4590         pending_nameowner_calls.
4591         (got_name_owner_cb): Update prototype, and use
4592         dbus_g_proxy_end_call.
4593         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4594         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4595         favor of using internal proxy.
4596         (dbus_g_proxy_manager_unregister): Update to use
4597         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4598         (dbus_g_proxy_init): Initialize pending calls map.
4599         (dbus_g_proxy_constructor): New.
4600         (dbus_g_proxy_class_init): Add get/set property functions,
4601         constructor, and add NAME, PATH, and INTERFACE properties.
4602         (cancel_pending_call): New function.
4603         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4604         cancel them.
4605         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4606         (GPendingNotifyClosure): New structure.
4607         (d_pending_call_notify, d_pending_call_free): Moved here from
4608         dbus-glib.c.
4609         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4610         ordering.
4611         (manager_begin_bus_call): New internal function for talking to
4612         internal bus proxy.
4613         (dbus_g_proxy_new): Construct object using GObjet properties.
4614         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4615         Create closure of same, and insert call into map of pending calls.
4616         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4617         call.  Look up pending call in current set.  Remove it when we've
4618         completed.
4619         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4620         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4621         and destroy function directly.
4622         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4623         (dbus_g_proxy_call): Invoke with NULL callback.
4624         (dbus_g_proxy_cancel_call): New function, replaces
4625         dbus_g_pending_call_cancel.
4626
4627         * glib/dbus-gparser.c (validate_signature): Fix call to
4628         dbus_set_g_error.
4629
4630         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4631         New quark for attaching metadata to GType.
4632         (info_hash): Delete.
4633         (lookup_object_info): Look up using quark.
4634         (dbus_g_object_type_install_info): Check that a type is classed,
4635         not that it's an object.  Also just install type data using quark
4636         instead of using global hash.
4637
4638         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4639         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4640         (GPendingNotifyClosure): Delete.
4641         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4642         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4643
4644         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4645         client method generation until we can fix it...
4646         
4647         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4648         (load_from_service_thread_func): Ditto.
4649
4650         * tools/dbus-names-model.c (struct NamesModel): Hold
4651         DBusGProxyCall.
4652         (have_names_notify): Update prototype, use
4653         dbus_g_proxy_cancel_call.
4654         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4655
4656         * tools/dbus-monitor.c (filter_func): Update for print_message
4657         API change.
4658
4659         * test/glib/test-dbus-glib.c: Add more tests for async
4660         invocations.  Update many begin_call/end_call pairs to just use
4661         dbus_g_proxy_call.
4662
4663         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4664         allows us to dump print-introspect.c.
4665
4666         * tools/dbus-print-message.h (print_message): Add literal argument
4667         to print_message which is intended to allow printing arguments without
4668         metadata like "string=".
4669
4670         * tools/dbus-print-message.c (print_iter): Add literal argument.
4671         (print_message): Allow printing string messages literally.
4672
4673 2005-07-05  Colin Walters  <walters@verbum.org>
4674
4675         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4676         Remove value refcount leak, original patch from Jorn Baayen
4677         <jorn@openedhand.com>.  Also remove useless extra value in favor
4678         of prepending to value array directly.
4679
4680 2005-07-02  Colin Walters  <walters@verbum.org>
4681
4682         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4683
4684 2005-07-01  Colin Walters  <walters@verbum.org>
4685
4686         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4687         
4688         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4689         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4690         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4691         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4692
4693 2005-06-30  Colin Walters  <walters@verbum.org>
4694
4695         * test/glib/test-dbus-glib.c:
4696         * test/glib/test-service-glib.c:
4697         * test/glib/test-service-glib.xml: Update tests for new error
4698         setting bits, also add async tests (patch from Ross Burton).
4699
4700         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4701         DBUS_GLIB_THREADS_LIBS.
4702
4703         * glib/dbus-gproxy.c (get_name_owner)
4704         (dbus_g_pending_call_end_valist): Ditto.
4705
4706         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4707         domain (GQuark) to DBusGErrorInfo.  
4708         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4709         quark in error_metadata.  Take message interface as default
4710         error message interface.
4711         (gerror_to_dbus_error_message): Pass message interface.
4712         (dbus_set_g_error): Resurrected.
4713         (dbus_g_error_info_free): New function.
4714         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4715         of _peek to actually create the object class if it hasn't been
4716         created yet.
4717         (dbus_g_error_domain_register): New function.
4718
4719         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4720
4721         * glib/dbus-gparser.c (validate_signature): Ditto.
4722
4723         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4724         (dbus_g_error_domain_register): Prototype.
4725
4726         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4727         Update tests.
4728
4729 2005-06-29  Colin Walters  <walters@verbum.org>
4730
4731         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4732         DBUS_TYPE_G_OBJECT_PATH.
4733
4734         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4735         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4736         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4737         (dbus_g_object_path_get_g_type): New function.
4738         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4739         to DBUS_TYPE_G_OBJECT_PATH by default.
4740         (demarshal_proxy): Remove unused name variable.
4741         (demarshal_object_path, marshal_object_path): New functions.
4742         (demarshal_proxy_array, marshal_proxy_array): Delete.
4743         
4744         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4745         DBUS_TYPE_G_OBJECT_PATH to char *.
4746         (dbus_g_type_get_lookup_function): Map builtin
4747         DBUS_TYPE_G_OBJECT_PATH.
4748
4749         * test/glib/test-dbus-glib.c
4750         * test/glib/test-service-glib.c (my_object_objpath): 
4751         Adapt tests to new object path marshalling.
4752
4753 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4754
4755         * configure.in: force check for Python >= 2.4
4756
4757 2005-06-29  Colin Walters  <walters@verbum.org>
4758         
4759         Patch from Ross Burton <ross@openedhand.com>
4760         
4761         * glib/dbus-gobject.c (invoke_object_method): Unset object
4762         value in all cases, not only in async case.
4763
4764 2005-06-29  Colin Walters  <walters@verbum.org>
4765
4766         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4767         name_call for keeping track of any outgoing GetNameOwner call.
4768         Also add for_owner and associated.
4769         (struct _DBusGProxyManager): Add owner_names, which is hash table
4770         that maps a base name to a list of names it owns (that we're
4771         interested in).  Add pending_nameowner_calls which is a list of
4772         all outstanding GetNameOwner; avoids us having to iterate over
4773         every proxy.  Add unassociated_proxies which keeps track of name
4774         proxies with no associated name owner.
4775         (dbus_g_proxy_manager_unref): Destroy owner_names.
4776         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4777         name refcounts.
4778         (find_name_in_info, name_owner_foreach)
4779         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4780         (dbus_g_proxy_manager_monitor_name_owner)
4781         (dbus_g_proxy_manager_unmonitor_name_owner)
4782         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4783         New functions; they manipulate the owner_names mapping.
4784         (got_name_owner_cb): New function.
4785         (get_name_owner): New function, extracted from
4786         dbus_g_proxy_new_for_name_owner.
4787         (dbus_g_proxy_manager_register): For now we need to keep track of
4788         all NameOwnerChanged.  Also if the proxy is for a name, if we
4789         don't already know the name owner, queue a new GetNameOwner
4790         request and add it to our list of unassociated proxies.  Otherwise
4791         inc the refcount.
4792         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4793         cancel any pending GetNameOwner call, etc.
4794         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4795         the owner_names mapping to look up the current names for the
4796         signal source, and dispatch to any proxies for that name.
4797         (dbus_g_proxy_new): Initialize new members.
4798         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4799         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4800         (dbus_g_pending_call_end_valist): New function, extracted from
4801         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4802         but want to use the GLib infrastructure.  Also note how many
4803         arguments in reply were over.
4804         (dbus_g_pending_call_end): New function, just call
4805         dbus_g_pending_call_end_valist.
4806         (dbus_g_proxy_end_call_internal): Just call
4807         dbus_g_pending_call_end_valist.
4808
4809         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4810         of builtin marshaller for STRING_STRING_STRING.
4811
4812         * test/glib/test-dbus-glib.c: 
4813         * test/glib/test-service-glib.c:
4814         * test/glib/test-service-glib.xml:
4815         Extend tests to cover name proxies, destruction of owner proxies,
4816         etc.
4817         
4818         * glib/examples/example-signal-recipient.c
4819         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4820         
4821         * tools/dbus-send.c (main): Print D-BUS error name in addition
4822         to message.
4823
4824 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4825
4826         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4827         cmessage_function_handler): Patch from 
4828         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4829         by using the Py_GILState_Ensure/Release to synchronize with the
4830         python runtime.
4831         
4832 2005-06-28  Ray Strode  <rstrode@redhat.com>
4833
4834         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4835         babysitter helper process on last unref, bug #2813.
4836
4837 2005-06-27  Colin Walters  <walters@verbum.org>
4838
4839         * test/glib/test-dbus-glib.c: 
4840         * test/glib/test-service-glib.c:
4841         * test/glib/test-service-glib.xml:
4842         Test hash table signal emitting.
4843
4844         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4845         types to their fundamental basis types, since this is what
4846         marshallers operate on.  Also add an entry for VOID__BOXED.
4847         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4848
4849 2005-06-26  Havoc Pennington  <hp@redhat.com>
4850
4851         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4852         from Don Park
4853
4854 2005-06-26  Colin Walters  <walters@verbum.org>
4855
4856         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4857         (dbus_g_error_set): New public function from its ashes; used by
4858         both service-side method implementation and GLib bindings
4859         internals.
4860         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4861         (_dbus_glib_test): Add some tests.
4862
4863         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4864
4865         * test/glib/test-service-glib.c (my_object_throw_error): Use
4866         dbus_g_error_set.
4867
4868         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4869         errors thrown by dbus_g_error_set.
4870
4871         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4872
4873         * glib/dbus-gparser.c (validate_signature): Ditto.
4874
4875         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4876         (dbus_g_proxy_end_call_internal): Ditto.
4877
4878         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4879         converts DBUS_ERROR_x to DBUS_GERROR_x.
4880         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4881
4882         * doc/TODO: Remove error TODO.
4883
4884         * doc/dbus-tutorial.xml: Update with documentation about error
4885         handling.
4886
4887         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4888         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4889         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4890
4891 2005-06-22  Colin Walters  <walters@verbum.org>
4892         
4893         Patch from Ross Burton <ross@openedhand.com>
4894
4895         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4896
4897 2005-06-20  Colin Walters  <walters@verbum.org>
4898
4899         * configure.in: Add glib/examples.
4900
4901         * glib/Makefile.am: Add examples/
4902
4903         * glib/examples/.cvsignore
4904         * glib/examples/Makefile.am
4905         * glib/examples/example-client.c
4906         * glib/examples/example-service.c
4907         * glib/examples/example-service.xml
4908         * glib/examples/example-signal-emitter.c
4909         * glib/examples/example-signal-emitter.xml
4910         * glib/examples/example-signal-recipient.c:
4911         New files; GLib binding examples, ported from
4912         python/examples.
4913
4914 2005-06-20  Colin Walters  <walters@verbum.org>
4915
4916         * dbus/dbus-glib.h: 
4917         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4918         dbus_g_proxy_call.
4919
4920         * glib/dbus-binding-tool-glib.c: 
4921         * doc/dbus-tutorial.xml: 
4922         * test/glib/test-dbus-glib.c: Update for rename.
4923         
4924 2005-06-20  Colin Walters  <walters@verbum.org>
4925
4926         Patch suggested by Ross Burton <ross@openedhand.com>
4927
4928         * glib/dbus-gobject.c (export_signals): Free signal name.
4929         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4930         memory leak.  Add a bit of documentation.
4931         (dbus_g_method_return_error): Free context, and note we do
4932         so.
4933
4934 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4935
4936         * dbus/dbus-glib.h:
4937         * glib/dbus-gobject.c:
4938         * glib/dbus-gproxy.c:
4939         * glib/dbus-gvalue.c: Predeclare structs as 
4940         typedef struct _Something Something instead of 
4941         typedef struct Something Something, so we can 
4942         redeclare the prototypes. Other GNOME libraries 
4943         do this already.
4944
4945 2005-06-17  Colin Walters  <walters@verbum.org>
4946
4947         * tools/dbus-names-model.c (have_names_notify): Fix call
4948         to dbus_g_proxy_end_call.
4949         
4950 2005-06-17  Colin Walters  <walters@verbum.org>
4951
4952         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4953         spew warnings if we get malformed remote signals.
4954
4955         * glib/dbus-gobject.c (propsig_iterate): New function.
4956         (lookup_object_info): New function, extracted from
4957         lookup_object_and_method.
4958         (introspect_properties, introspect_signals): Delete; these
4959         are merged into write_interface.
4960         (write_interface): Write out signals and properties here;
4961         dump the org.gtk.object stuff and use the interface given
4962         in the introspection data blob.  Also fix up property XML.
4963         (lookup_values): New function.
4964         (introspect_interfaces): Gather a mapping from interface to a
4965         list of its methods, signals, and properties, then write out
4966         each interface.
4967         (lookup_object_and_method): Use lookup_object_info.
4968         (struct DBusGSignalClosure): Add interface.
4969         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4970         we can just use the constant data.
4971         (dbus_g_signal_closure_finalize): Don't free signal name.
4972         (signal_emitter_marshaller): Use interface from signal closure.
4973         (export_signals): Only export signals mentioned in introspection
4974         blob.
4975         (dbus_g_connection_register_g_object): Warn if we have no
4976         introspection data for an object.
4977         (funcsig_equal): Remove unused variable.
4978         (dbus_g_object_register_marshaller): Take varargs instead of
4979         list.
4980         (dbus_g_object_register_marshaller_array): New function,
4981         extracted from old dbus_g_object_register_marshaller.
4982
4983         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4984         signals and property data.
4985         (write_quoted_string): New function, extracted from generate_glue.
4986         (generate_glue): Write signals and properties to introspection
4987         blob.
4988
4989         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4990         exported_signals and exported_properties.
4991         (dbus_g_object_register_marshaller): Update prototype.
4992         (dbus_g_object_register_marshaller_array): Prototype.
4993         
4994         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4995
4996         * test/glib/test-service-glib.c: Add new test signals and method
4997         to emit them.
4998
4999         * test/glib/test-service-glib.xml: Add some test signals.
5000
5001         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
5002         and my-object-marshal.h
5003         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
5004         my-object-marshal.c.
5005         (my-object-marshal.c, my-object-marshal.h): Implement.
5006
5007         * test/glib/.cvsignore: Update.
5008
5009         * doc/TODO: Remove two GLib TODO items fixed by this
5010         patch.
5011
5012 2005-06-16  Colin Walters  <walters@verbum.org>
5013
5014         * doc/TODO: Update for GLib bindings.
5015         
5016 2005-06-16  Colin Walters  <walters@verbum.org>
5017
5018         * glib/dbus-binding-tool-glib.c:
5019         * glib/dbus-gobject.c:
5020         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
5021         from Ross Burton, for his GLib bindings work.
5022
5023 2005-06-16  Colin Walters  <walters@verbum.org>
5024
5025         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
5026         to iterate instead of walking to G_TYPE_INVALID.
5027
5028         Patch based on a patch from Ryan Gammon.
5029
5030 2005-06-16  Colin Walters  <walters@verbum.org>
5031
5032         * bus/bus.c (bus_context_new): Set parser to NULL
5033         after we unref it (Patch from Chris Boscolo, #2174).
5034         
5035 2005-06-16  Colin Walters  <walters@verbum.org>
5036
5037         * python/dbus_bindings.pyx.in: Import size_t,
5038         __int64_t, __uint64_t, and __signed.
5039
5040         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
5041         Define cmsg struct, output it.
5042         (_dbus_read_credentials_unix_socket):
5043         Use cmsg struct.
5044         
5045         Patch from Joe Markus Clarke for FreeBSD support.
5046         
5047 2005-06-16  Colin Walters  <walters@verbum.org>
5048
5049         * tools/dbus-send.c (append_array): Use strtok.
5050         (append_dict): New function.
5051         (type_from_name): New function, extracted from main.
5052         (main): Handle sending dicts.
5053
5054         * tools/dbus-print-message.c (print_iter): Print dict
5055         entries.
5056         
5057 2005-06-16  Colin Walters  <walters@verbum.org>
5058
5059         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
5060         values as the empty string (#2948).
5061         
5062 2005-06-16  Colin Walters  <walters@verbum.org>
5063
5064         * dbus/Makefile.am:
5065         * mono/doc/Makefile.am:
5066         * test/glib/Makefile.am:
5067
5068         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
5069
5070 2005-06-16  Colin Walters  <walters@verbum.org>
5071
5072         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
5073         header byte order from expected byte order (Patch from Chris Wilson, #3475).
5074
5075         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
5076         Increment pointer after swapping fixed array.  Add assertion
5077         for array length.
5078                 
5079 2005-06-15  Colin Walters  <walters@verbum.org>
5080
5081         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
5082         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
5083         
5084 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5085
5086         * NEWS: Update to 0.34
5087
5088 2005-06-15  David Zeuthen  <davidz@redhat.com>
5089
5090         * configure.in (LT_CURRENT): Revert back to 1 as the library
5091         hasn't changed and we've certainly not committed to protocol
5092         stability yet.  All this does is to break ABI. See commit note
5093         from hp@redhat.com 2005-05-05 for details.
5094         
5095 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5096
5097         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
5098         (_dbus_connection_run_builtin_filters): New method
5099         (dbus_connection_dispatch): Run the builtin filters which in turn
5100         runs the peer filter which handles Ping messages.
5101
5102         * doc/TODO: 
5103          - Ping isn't handled: This patch fixes it
5104          
5105          - Add a test case for the Ping message: added TODO item
5106
5107 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5108
5109         * dbus/dbus-message.c:
5110         (dbus_message_has_path): New method
5111         (dbus_message_has_interface): New method
5112         (dbus_message_has_member): New method
5113
5114         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
5115         New method
5116
5117         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
5118         the keyring directory is private to the user
5119
5120         * doc/TODO:
5121          - The convenience functions in dbus-bus.h should perhaps have
5122          the signatures that they would have if they were autogenerated
5123          stubs. e.g. the acquire service function. We should also evaluate
5124          which of these functions to include, in light of the fact that
5125          GLib/Qt native stubs will probably also exist.: Punted
5126
5127          - add dbus_message_has_path(), maybe has_member/interface:
5128          fixed in this patch
5129
5130          - in dbus-keyring.c, enforce that the keyring dir is not
5131          world readable/writable: Fixed in this patch
5132
5133 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5134
5135         * dbus/dbus-marshal-validate.h: Added a new validation
5136         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
5137         out of memory errors when validating signitures
5138
5139         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
5140         in places where we previously used DBUS_VALID and a FALSE return 
5141         value to indicate OOM
5142         
5143         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
5144         Use a stack to track the number of elements inside containers.  The 
5145         stack values are then used to validate that dict entries have only two
5146         elements within them.
5147         (validate_body_helper): check the reason for failure when validating
5148         varients
5149         
5150         * dbus/dbus-message.c (load_message): use 
5151         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
5152         DBUS_VALID and a FALSE return value to indicate OOM
5153
5154         * doc/TODO: remove "- validate dict entry number of fields" as this
5155         patch fixes it
5156
5157 2005-06-14  David Zeuthen  <davidz@redhat.com>
5158
5159         * bus/bus.c (process_config_every_time): Drop existing conf-dir
5160         watches (if applicable) and add new watches
5161
5162         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
5163         (main): Setup SIGIO signal handler if using D_NOTIFY
5164
5165         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
5166
5167         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
5168         (merge_included): Also merge conf_dirs list
5169         (bus_config_parser_unref): Clear conf_dirs list
5170         (include_dir): Add directory to conf_dirs list
5171         (bus_config_parser_get_conf_dirs): New function
5172
5173         * bus/dir-watch.[ch]: New files
5174
5175         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
5176
5177         * configure.in: Add checks for D_NOTIFY on Linux
5178
5179 2005-06-14  Colin Walters  <walters@verbum.org>
5180
5181         * glib/dbus-binding-tool-glib.c:
5182         * glib/dbus-gobject.c:
5183         * glib/dbus-gvalue.c: Fix indentation and brace style.
5184         
5185 2005-06-14  Ross Burton <ross@openedhand.com>.
5186
5187         * glib/dbus-glib.h: Make DBusGMethodInvocation
5188         a private structure.  Rearrange prototypes a bit.
5189         
5190         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
5191         documentation for first_arg_type.
5192         
5193         * glib/dbus-gobject.c: Move DBusGMethodInvocation
5194         here, add documentation.  Move dbus_g_method_return
5195         and dbus_g_method_return_error into public API
5196         section.
5197
5198 2005-06-14  Colin Walters  <walters@verbum.org>
5199
5200         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
5201         Add missing return statements, noticed by Ross Burton.
5202         
5203 2005-06-13  Ross Burton <ross@openedhand.com>.
5204
5205         * glib/dbus-gobject.c: Handle errors on message
5206         demarshalling by sending error message back.
5207         * glib/dbus-gvalue.c: Initialize return variables.
5208
5209 2005-06-13  Colin Walters  <walters@verbum.org>
5210
5211         * glib/Makefile.am: Fix thinko in last patch.
5212
5213 2005-06-13  Colin Walters  <walters@verbum.org>
5214
5215         * glib/Makefile.am: Move dbus-gtype-specialized.c
5216         and dbus-gtype-specialized.h into a _HEADERS variable,
5217         install them.
5218
5219 2005-06-12  Colin Walters  <walters@verbum.org>
5220
5221         Async signals and various bugfixes and testing by
5222         Ross Burton <ross@openedhand.com>.
5223
5224         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
5225         (dbus_gvalue_genmarshal_name_from_type)
5226         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
5227         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
5228         (dbus_g_value_types_init, dbus_gtype_from_signature)
5229         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
5230         (dbus_gtypes_from_arg_signature): New function prototypes.
5231         (dbus_gvalue_demarshal): Take context and error arguments.
5232         (dbus_gvalue_demarshal_variant): New function.
5233         (dbus_gvalue_demarshal_message): New function.
5234         (dbus_gvalue_store): Delete.
5235
5236         * glib/dbus-gvalue.c:
5237
5238         File has been almost entirely rewritten; now we special-case
5239         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
5240         hash tables correctly, etc.  Full support for recursive values
5241         is not yet complete.
5242
5243         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
5244         argument of signal to G_TYPE_POINTER since we now pass a
5245         structure.
5246         (lookup_g_marshaller): Delete in favor of
5247         _dbus_gobject_lookup_marshaller.
5248         (marshal_dbus_message_to_g_marshaller): Use
5249         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
5250         to handle remote signal callbacks.
5251         (dbus_g_proxy_new_from_proxy): New function; creates a new
5252         DBusGProxy by copying an existing one.
5253         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
5254         (dbus_g_proxy_get_path): New functions.
5255         (dbus_g_proxy_marshal_args_to_message): New function;
5256         factored out of existing code.
5257         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
5258         from a varargs array.
5259         (dbus_g_proxy_begin_call_internal): New function.
5260         (dbus_g_proxy_end_call_internal): New function.
5261         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
5262         as arguments; simply invoke dbus_g_proxy_begin_call_internal
5263         after collecting args into value array.
5264         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
5265         invoke dbus_g_proxy_end_call_internal.
5266         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
5267         end_call_internal.
5268         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
5269         types.
5270         (array_free_all): New function.
5271         (dbus_g_proxy_add_signal): Take GTypes.
5272
5273         * glib/dbus-gobject.h:
5274         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5275         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
5276         Prototype.
5277
5278         * glib/dbus-gobject.c: Add a global marshal_table hash which
5279         stores mappings from type signatures to marshallers.  Change lots
5280         of invocations of dbus_gtype_to_dbus_type to
5281         dbus_gtype_to_signature.
5282         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5283         (introspect_signals): Fix test for query.return_type.
5284         (set_object_property): Update invocation of dbus_gvalue_demarshal.
5285         (invoke_object_method): Many changes.  Handle asynchronous
5286         invocations.  Convert arguments with
5287         dbus_gvalue_demarshal_message.  Handle errors.  Use
5288         DBusSignatureIter instead of strlen on args. Handle all arguments
5289         generically.  Special-case variants.
5290         (dbus_g_method_return, dbus_g_method_return_error): New function.
5291         (DBusGSignalClosure): New structure, closes over signal
5292         information.
5293         (dbus_g_signal_closure_new): New function.
5294         (dbus_g_signal_closure_finalize): New function.
5295         (signal_emitter_marshaller): New function; is special marshaller
5296         which emits signals on bus.
5297         (export_signals): New function; introspects object signals and
5298         connects to them.
5299         (dbus_g_object_type_install_info): Take GType instead of
5300         GObjectClass.
5301         (dbus_g_connection_register_g_object): Invoke export_signals.
5302         (dbus_g_connection_lookup_g_object): New function.
5303         (DBusGFuncSignature) New structure; used for mapping type
5304         signatures to marshallers.
5305         (funcsig_hash): New function; hashes DBusGFuncSignature.
5306         (funcsig_equal): New function; compares DBusGFuncSignature.
5307         (_dbus_gobject_lookup_marshaller): New function.
5308         (dbus_g_object_register_marshaller): New function; used to
5309         register a marshaller at runtime for a particular signature.
5310
5311         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
5312
5313         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
5314         which notes a server method implementation should be
5315         asynchronous.
5316
5317         * glib/dbus-binding-tool-glib.c
5318         (dbus_binding_tool_output_glib_server): Call
5319         dbus_g_value_types_init.
5320         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
5321         variants specially.
5322         (dbus_g_type_get_lookup_function): Turn GType into an invocation
5323         of a lookup function.
5324         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
5325         (write_untyped_out_args): New method; write output arguments.
5326         (write_formal_declarations_for_direction): Function for
5327         writing prototypes.
5328         (write_formal_parameters_for_direction): Function for
5329         writing implementations.
5330         (write_typed_args_for_direction): Function for writing
5331         arguments prefixed with GTypes.
5332         (write_async_method_client): Write out async version
5333         of method.
5334
5335         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
5336         (dbus_g_type_get_marshal_name): Move mapping from GType
5337         to marshal name into here.
5338         (dbus_g_type_get_c_name): Move into here.
5339         (compute_marshaller): Convert signature to type with
5340         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5341         (compute_marshaller_name): Ditto.
5342         (compute_marshaller): Handle async signal annotations.
5343         (gather_marshallers): Return if we don't have a known
5344         prefix.
5345         (generate_glue): Collect introspection blob here, and
5346         write all of the blob at the end.  This allows an object
5347         with multiple interfaces to work.
5348         Mark async methods in introspection blob.
5349
5350         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5351         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5352         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5353
5354         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5355         avoids people accidentally using DBUS_TYPE_* which should
5356         not be necessary anymore.
5357         Do include dbus-gtype-specialized.h, which are utilities
5358         for GLib container types.
5359         Add various #defines for types such as
5360         DBUS_TYPE_G_BOOLEAN_ARRAY.
5361         (DBusGValueIterator, DBusGValue): Define, not fully used
5362         yet.
5363         (dbus_g_value_get_g_type): Type for recursive value.
5364         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5365         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5366         (dbus_g_value_free): Prototypes.
5367         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5368         (dbus_g_proxy_set_interface): Prototype.
5369         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5370         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5371         types.
5372         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5373         Accessors.
5374         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5375         doing async invocations.
5376         (dbus_g_method_return, dbus_g_method_return_error):
5377         Prototypes.
5378         * doc/dbus-tutorial.xml: Update GLib section.
5379         
5380         * tools/dbus-viewer.c (load_child_nodes): Update
5381         for new invocation type of dbus_g_proxy_end_call.
5382         (load_from_service_thread_func): Ditto.
5383
5384         * tools/print-introspect.c (main): Ditto.
5385
5386         * tools/dbus-names-model.c (have_names_notify)
5387         (names_model_reload, names_model_set_connection)
5388         Use GTypes.
5389
5390         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5391         needed since Python bindings use GLib bindings.
5392
5393         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5394         Add --prefix argument.
5395
5396         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5397         unneeded --ignore-unsupported arg.
5398         
5399         * test/glib/test-service-glib.c: 
5400         * test/glib/test-service-glib.xml:
5401         * test/glib/test-dbus-glib.c: Add many more tests.
5402
5403 2005-06-06  David Zeuthen  <davidz@redhat.com>
5404
5405         * doc/TODO: Add item about need to remove deprecated functions.
5406
5407         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5408
5409         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5410         to repair the ABI which was broken with the last commit.
5411
5412 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5413
5414         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5415         (dbus_connection_disconnect): renamed to dbus_connection_close 
5416         for API symmetry with dbus_connection_open
5417         (_dbus_connection_open_internal): 
5418         s/dbus_connection_disconnect/dbus_connection_close
5419
5420         * dbus/dbus-bus.c (dbus_bus_get):
5421         s/dbus_connection_disconnect/dbus_connection_close
5422
5423         * bus/connection.c (bus_connections_unref, 
5424         bus_connections_setup_connection, bus_connections_expire_incomplete):
5425         s/dbus_connection_disconnect/dbus_connection_close
5426
5427         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5428         kill_client_connection_unchecked, check_hello_connection):
5429         s/dbus_connection_disconnect/dbus_connection_close
5430
5431         * bus/bus.c (new_connection_callback):
5432         s/dbus_connection_disconnect/dbus_connection_close
5433
5434         * tools/dbus-send.c (main):
5435         s/dbus_connection_disconnect/dbus_connection_close
5436
5437         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5438         s/dbus_connection_disconnect/dbus_connection_close
5439         
5440         * test/test-service.c (path_message_func, filter_func):
5441         s/dbus_connection_disconnect/dbus_connection_close
5442         
5443         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5444         
5445 2005-05-25  Colin Walters  <walters@verbum.org>
5446
5447         * dbus/dbus-protocol.h: Move various bus service #defines such
5448           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5449           dbus/dbus-shared.h.
5450         * dbus/dbus-shared.h: Various defines moved here.
5451         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5452
5453 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5454
5455         * python/__init__.py: Python bindings deserve a minor version
5456         update.  Upped to (0, 40, 2)
5457
5458 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5459
5460         * python/decorators.py: add explicitly_pass_message decorator
5461         for passing in the dbus message as keyword for edge case signal
5462         handling
5463
5464         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5465         to conform with what dbus expects for match rules
5466         (SignalMatchRule.execute): add the dbus message as a keyword
5467         if the signal handler has requested it
5468
5469         * python/examples/example/signal-recipient.py: added some more
5470         examples on how to hook up to signals
5471
5472 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5473
5474         * python/decorators.py: import dbus_bindings
5475
5476         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5477         SignalMatchNode): new classes that implement wildcard signal
5478         callback matching using a tree lookup. Heavily modified from a
5479         patch sent by Celso Pinto (fd.o bug #3241)
5480
5481         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5482         use new match classes to handle signals.
5483
5484 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5485         
5486         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5487
5488 2005-05-18  Havoc Pennington  <hp@redhat.com>
5489
5490         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5491         gettext. Not really worth requiring yet perhaps, but any
5492         production quality 1.0 would require it so we should go ahead and
5493         get things set up. We do have a couple token calls to
5494         bindtextdomain in the code already.
5495
5496 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5497
5498         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5499         when using recursive g_main_loops
5500
5501         * python/_dbus.py (class Bus): add the ProxyObjectClass
5502         alias for ProxyObject to make it easier for the Twisted 
5503         networking framework to integrate dbus.
5504
5505         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5506         alias for ProxyMethod to make it easier for the Twisted 
5507         networking framework to integrate dbus. 
5508
5509 2005-05-11  Ross Burton  <ross@openedhand.com>
5510
5511         * glib/dbus-glib-tool.c: Add --prefix argument.
5512         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5513         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5514         Add prefix argument.
5515         (generate_glue): Pass prefix argument down.
5516         (dbus_binding_tool_output_glib_server): Pass prefix to
5517         glib-genmarshal.
5518         
5519 2005-05-11  Colin Walters  <walters@verbum.org>
5520
5521         * tools/dbus-send.c (append_array): New function.
5522         (append_arg): Broken out from main.
5523         (main): Add cheesy hack to send arrays and variants.
5524         (usage): Update.
5525         * tools/dbus-print-message.c (print_iter): Broken out
5526         from main.
5527
5528 2005-05-11  Colin Walters  <walters@verbum.org>
5529
5530         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5531         New function, returns signature string for signature iter.
5532         * dbus/dbus-signature.h: Prototype it.
5533         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5534         New function, returns signature string for message iter.
5535         (dbus_message_iter_get_array_len): New function, returns
5536         length of array.
5537         (dbus_message_iter_get_fixed_array): Fix assertion; this
5538         function should be used when the iter is pointing to the
5539         contents of an array
5540         * dbus/dbus-message.h: Prototypes.
5541         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5542         New function; returns length of an array.
5543         * dbus/dbus-marshal-recursive.h: Prototype it.
5544         
5545 2005-05-11  Colin Walters  <walters@verbum.org>
5546
5547         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5548         compilation error.
5549         
5550 2005-05-08  Havoc Pennington  <hp@redhat.com>
5551
5552         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5553         daemon's pid, not the parent's pid, to the file descriptor.
5554         Reported by Taj Morton.
5555
5556 2005-05-05  Havoc Pennington  <hp@redhat.com>
5557
5558         * configure.in (LT_*): add notes on how the libtool versioning
5559         works to save thinking. Increment soname to indicate protocol
5560         breakage (though really the library interface hasn't changed I
5561         guess)
5562
5563         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5564         verify the GUID received from server matches what we were
5565         expecting, if we had an expectation
5566
5567         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5568         (_dbus_auth_get_guid_from_server): new function
5569         (send_begin): parse the OK args
5570
5571         * doc/dbus-specification.xml: add GUID to the auth protocol
5572
5573 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5574
5575         * Fix my name in previous changelog ;)
5576
5577         * python/proxies.py (ProxyObject.__getattr__): add further patch
5578         from Anthony Baxter to throw an AttributeError when python 
5579         __special__ functions are called instead of marshling them over 
5580         the bus (Bug#1685 comment 3).
5581
5582 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5583
5584         * python/Makefile.am: changed to use pyexecdir for the binding
5585         shared libraries (Bug#2494)
5586
5587         * python/exceptions.py: bring exceptions over from the bindings
5588         so they can be used in applications (Bug#2036)
5589         Make all exceptions derive from DBusException
5590
5591         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5592         of classes so that print obj doesn't throw an exception (Bug #1685)
5593
5594 2005-05-03  Ross Burton  <ross@openedhand.com>
5595
5596         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5597         Return if we get an error during registration.  Set up a
5598         weak reference on object to unregister if object is destroyed.
5599         (unregister_gobject): New function.
5600         
5601 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5602
5603         * python/dbus_bindings.pyx.in: 
5604         - added new type classes for hinting to the marashaler what type 
5605         to send over the wire
5606         - added int16 and uint16 marshalers
5607         - Fixed a bug in the type constants that caused int32 to go out
5608         as uint16 over the wire
5609         * python/dbus.py: split up into different files and renamed _dbus.py
5610         * python/__init__.py, python/_util.py, python/decorators.py, 
5611         python/exceptions.py, python/proxies.py, python/services.py,
5612         python/types.py: new files split off from dbus.py
5613         * python/Makefile.am: Add new files, remove dbus.py and 
5614         install all python files to <python module dir>/dbus
5615         * python/examples/*: Added #!/usr/bin/env python to the top of
5616         every example.  Patch provided by Tatavarty Kalyan
5617
5618 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5619
5620         * NEWS: Update to 0.33
5621
5622 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5623
5624         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5625         method for doing async calls
5626         (_pending_call_notification): New C function for handling pendning call
5627         callbacks
5628         (set_notify): New method for setting pending call notification
5629         
5630         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5631         Async capabilities added to remote method calls
5632         (Sender): class removed
5633         (RemoteService): class removed
5634         (ObjectTree): class removed for now
5635         (RemoteObject): Renamed to ProxyObject
5636         (RemoteMethod): Renamed to ProxyMethod
5637         (method): Decorator added for decorating python methods as dbus methods
5638         (signal): Decorator added for decorating python methods as signal emitters
5639         (ObjectType): Metaclass added for generating introspection data and the
5640         method callback vtable
5641         (Interface): Wrapper class added to wrap objects in a dbus interface
5642         (Object): Uses ObjectType as its metaclass and exports Introspect
5643         of the org.freedesktop.DBus.Introspectable interface
5644         (ValidationException, UnknownMethodException): new exceptions
5645
5646         * python/examples/*: Modified to fit with the new bindings
5647
5648 2005-04-23  Havoc Pennington  <hp@redhat.com>
5649
5650         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5651         reported by Tony Houghton
5652
5653         * test/test-service.c (main): test
5654         dbus_connection_get_object_path_data()
5655
5656         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5657         the exact_match
5658         (_dbus_object_tree_get_user_data_unlocked): new function used by
5659         dbus_connection_get_object_path_data()
5660         (do_register): add assertion test for get_user_data_unlocked
5661         (object_tree_test_iteration): more tests
5662
5663         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5664         new function from Dan Reed to let you get the user data from 
5665         dbus_connection_register_object_path()
5666
5667 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5668
5669         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5670         in numerous places that did not account for the NULL terminator
5671         (signature_from_seed): changed the manual string copy loop to 
5672         just use strcpy instead
5673         make check should now pass
5674
5675 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5676
5677         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5678         so that it allows messages that are not signals to pass in 
5679         NULL as the interface.
5680
5681 2005-04-18  David Zeuthen  <davidz@redhat.com>
5682
5683         * glib/dbus-gmain.c (io_handler_destroy_source): 
5684         (timeout_handler_destroy_source, connection_setup_free): 
5685         Also unref the source to avoid memory leaks.
5686
5687 2005-04-13  David Zeuthen  <davidz@redhat.com>
5688
5689         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5690         more reasonable, yet still totally arbitrary, value :-). 
5691
5692 2005-04-13  David Zeuthen  <davidz@redhat.com>
5693
5694         * doc/TODO: Added an "important for 1.0" item about selinux
5695         allow/deny messages
5696
5697 2005-04-13  David Zeuthen  <davidz@redhat.com>
5698
5699         * bus/selinux.c: Add c-file-style to top of file
5700         (log_audit_callback): Don't free the data here anymore
5701         (bus_selinux_check): Don't take spid and tpid since appending
5702         that to auxdata may OOM.
5703         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5704         to the caller if we are OOM by taking an error object.
5705         (bus_selinux_allows_send): -do-
5706
5707         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5708         and bus_selinux_allows_send
5709
5710         * bus/bus.c (bus_context_check_security_policy): Pass error and
5711         pass on OOM thrown by bus_selinux_allows_send()
5712
5713         * bus/services.c (bus_registry_acquire_service): Pass error and
5714         pass on OOM thrown by bus_selinux_allows_acquire_service()
5715
5716 2005-04-13  Havoc Pennington  <hp@redhat.com>
5717
5718         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5719         message at a time to avoid monopolizing the main loop, bug 
5720         #2953 from Benjamin Otte
5721
5722 2005-04-09  Havoc Pennington  <hp@redhat.com>
5723
5724         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5725         possible overlap, fix from Daniel Reed
5726         (fixup_alignment): fix signedness warnings
5727         (_dbus_string_append_unichar): ditto
5728
5729 2005-04-09  Havoc Pennington  <hp@redhat.com>
5730
5731         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5732
5733         * glib/dbus-glib-tool.c (main): fix warning
5734
5735         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5736
5737         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5738         add a new function that can be used in simple applications that
5739         don't have a main loop and are willing to block
5740
5741 2005-04-05  David Zeuthen  <davidz@redhat.com>
5742
5743         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5744
5745         * glib/dbus-gmain.c:
5746         (io_handler_destroy_source): Remove from list of IO handlers
5747         of the ConnectionSetup object
5748         (timeout_handler_destroy_source): -do- for timeout handlers
5749         (io_handler_source_finalized): Don't remove from list since
5750         we now do that in io_handler_destroy_source(). Renamed from
5751         io_handler_source_destroyed
5752         (timeout_handler_source_destroyed): -do- for timeout handlers
5753         (connection_setup_free): It is now safe to iterate over all
5754         IO and timeout handlers as the _destroy_source removes them
5755         from the list synchronously
5756
5757 2005-03-30  Havoc Pennington  <hp@redhat.com>
5758
5759         * configure.in: change check to gtk 2.4
5760
5761         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5762         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5763         to 2.4
5764
5765 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5766
5767         * News: Update 0.32
5768
5769         * HACKING: Fixed realease instructions.  configure.in should be updated to
5770           the next release by the person who made the last release.
5771
5772 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5773
5774         * python/lvalue_cast_post_process.py - removed.  Patch has been
5775           submitted to Pyrex maintainers that fixes gcc4.0 errors
5776
5777         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5778
5779 2005-03-24  Daniel Reed  <n@ml.org>
5780
5781         * tools/Makefile.am: Make print-introspect and
5782         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5783
5784 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5785
5786         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5787
5788         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5789           had in Red Hat packages for a while but for some reason never 
5790           got merged upstream
5791           (_dbus_is_a_number): New checks if a string
5792           can be converted to a number and does the conversion if it can
5793           (_dbus_user_database_lookup): Add check to see if the given username
5794           is a udi.  This allows udi's to be used instead of usernames in the
5795           config file.
5796           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5797           is a gdi.  This allows gdi's to be used instead of groupnames in the
5798           config file.
5799
5800 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5801
5802         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5803           code so that it compiles with gcc4.0
5804
5805         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5806           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5807           results back to dbus_binding.c
5808
5809 2005-03-20  Colin Walters  <walters@verbum.org>
5810
5811         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5812
5813         * configure.in: Require GTK+ 2.6.
5814         
5815 2005-03-20  Colin Walters  <walters@verbum.org>
5816
5817         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5818
5819 2005-03-17  Tom Parker  <palfrey@tevp.net>
5820
5821         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5822         print DBUS_UID_UNSET; instead print passed username.  Also
5823         be sure to actually use gid looked up in cache.
5824         
5825         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5826         for DBUS_GID_UNSET and groupname.
5827
5828 2005-03-17  Colin Walters  <walters@verbum.org>
5829
5830         * bus/print-introspect.c: Move to tools/.
5831         * bus/run-with-tmp-session-bus.sh: Ditto.
5832         
5833         * glib/Makefile.am (dbus-glib-bindings.h): Move
5834         generation to tools/Makefile.am.
5835
5836         * test/glib/run-test.sh: Update to handle move
5837         of run-with-tmp-session-bus.sh.
5838
5839         * test/glib/test-service-glib.c: Update to handle
5840         move of dbus-glib-bindings.h.
5841
5842         * tools/print-introspect.c: Moved here
5843         from bus/, and ported to GLib bindings.
5844
5845         * tools/run-with-tmp-session-bus.sh: Moved here
5846         from bus/.
5847
5848         * tools/Makefile.am: Generate dbus-glib-bindings.h
5849         and dbus-bus-introspect.xml here.
5850
5851         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5852         Update.
5853
5854 2005-03-17  Colin Walters  <walters@verbum.org>
5855
5856         * bus/driver.c (write_args_for_direction): Use
5857         _dbus_string_get_const_data to retrieve string;
5858         _dbus_string_get_const_data_len doesn't actually return
5859         a NULL-terminated substring.
5860
5861         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5862         (main): Change to use org_freedesktop_DBus_request_name
5863         instead of using g_proxy_begin_call/end_call.
5864
5865 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5866
5867         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5868         generating the finalizer.  Fixes from Ben Maurer.
5869
5870 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5871
5872         * mono/BusDriver.cs: Update method names: ListServices
5873         becomes ListNames; GetOwner becomes GetNameOwner.
5874
5875         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5876         onto the eval stack when removing the delegate.
5877
5878 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5879
5880         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5881         LT_CURRENT.  Set it to the autoconf variable.
5882                                                                                 
5883         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5884         classes that disconnects the signal handler delegate from the
5885         service object.  Fixes a big leak of proxy objects on the
5886         client side of things.  Patch from Ben Maurer
5887         <bmaurer@ximian.com>
5888
5889 2005-03-12  Colin Walters  <walters@verbum.org>
5890
5891         * bus/driver.c (write_args_for_direction): New function,
5892         parses a type signature into arguments and outputs to
5893         XML.
5894         (bus_driver_handle_introspect): Use it instead of
5895         hardcoding XML for certain signatures.
5896         
5897         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5898         dependency on dbus-daemon.
5899
5900         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5901         argument, pass it to dbus_binding_tool_output_glib_client.
5902
5903         * glib/dbus-binding-tool-glib.c
5904         (generate_client_glue): Protect against multiple inclusion.
5905         (dbus_binding_tool_output_glib_client): Add
5906         G_BEGIN_DECLS/G_END_DECLS.
5907
5908         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5909         Change to just take iface prefix directly.
5910         (write_formal_parameters): Clarify error message.
5911         (check_supported_parameters): New function; checks to see type
5912         signatures of method parameters are supported.
5913         (generate_client_glue): Handle ignore_unsupported flag.
5914         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5915         parameter.
5916
5917         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5918         --ignore-unsupported by default until glib bindings
5919         support arrays.
5920
5921 2005-03-11  Colin Walters  <walters@verbum.org>
5922
5923         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5924         install it.
5925
5926         * bus/print-introspect.c: New file; prints introspection
5927         data for a given name and object path.
5928
5929         * bus/run-with-tmp-session-bus.sh: New file, refactored
5930         from test/glib/run-test.sh.  Creates a temporary session
5931         bus and runs another program.
5932
5933         * test/glib/run-test.sh: Refactor to invoke
5934         run-with-tmp-session-bus.sh.
5935
5936         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5937         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5938         macros instead of hardcoding.
5939
5940         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5941
5942 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5943
5944         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5945         this unref; it doesn't match up evenly in some codepaths.
5946         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5947         this evenly matches with the ref near the top of this function.
5948
5949 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5950
5951         * dbus/dbus-object-tree.c
5952         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5953         and we try to unregister a path that's not registered, still go
5954         through the process of unlocking and don't just return.
5955
5956 2005-03-09  Colin Walters  <walters@verbum.org>
5957
5958         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5959         to this are generated for client-side wrappers.  Invokes a
5960         D-BUS method and returns reply values.  
5961
5962         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5963         function; writes signature string for argument direction.
5964         (write_args_for_direction): Change to pass input values directly
5965         instead of via address, and fix indentation.
5966         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5967         make generated wrappers inlineable.
5968
5969         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5970         note about using dbus_type_is_fixed.
5971
5972         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5973         dbus/dbus-signature.c as dbus_type_is_fixed.
5974
5975         All callers updated.
5976
5977         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5978         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5979
5980         * dbus/dbus-signature.h: Prototype.
5981
5982         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5983         error printf code.
5984
5985         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5986         appropriate instead of just freeing it.
5987         (main): Free returned strings using g_free.
5988
5989         * test/glib/Makefile.am (test-service-glib-glue.h)
5990         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5991
5992         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5993         simply maps a simple D-BUS type to GType.
5994         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5995         GType.
5996         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5997         initialize the value with it.
5998         (dbus_gvalue_binding_type_from_type): Unused, delete.
5999         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
6000         various types instead of unmarshalling to value data directly.
6001         Remove can_convert boolean.
6002         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
6003         returning directly instead of using can_convert boolean.
6004         (dbus_gvalue_store): New function; not related to D-BUS per-se.
6005         Stores a GValue in a pointer to a value of its corresponding C
6006         type.
6007
6008         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
6009         add dbus_gvalue_store.
6010
6011 2005-03-08  Joe Shaw  <joeshaw@novell.com>
6012
6013         Fix a bunch of lifecycle and memory management problems
6014         in the mono bindings.
6015
6016         * mono/Arguments.cs (Arguments): Implement IDisposable
6017
6018         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
6019         strictly a static class.
6020
6021         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
6022         delegates into this file.
6023         (Connection): Implement IDisposable.
6024         (Dispose): Disconnect the connection and set the raw connection
6025         pointer to IntPtr.Zero.
6026         (~Connection): Call Dispose().
6027         (RegisterObjectPath): Added.  Manages the registration of object
6028         paths so we can cleanly disconnect them at dispose/finalize time.
6029         (UnregisterObjectPath): Ditto.
6030         (set_RawConnection): Unregister all of the object paths when
6031         changing the underlying DBusConnection.  Add them back onto the
6032         new connection, if any.
6033
6034         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
6035         more unmanaged resources anymore, so it's not necessary.  Move all
6036         the DBusObjectPathVTable stuff out of here.
6037         (Handler): Save references to our delegates so that they don't get
6038         finalized.  Call Connection.RegisterObjectPath() instead of
6039         dbus_connection_register_object_path() directly.
6040         (Message_Called): Dispose the message after we're finished with
6041         it.
6042
6043         * mono/Message.cs (Message): Implement IDisposable.
6044         (Dispose): Dispose the Arguments, and set the RawMessage to
6045         IntPtr.Zero.
6046         (SendWithReplyAndBlock): We own the ref to the reply that comes
6047         back from dbus_connection_send_with_reply_and_block() so add a
6048         comment about that and unref it after we've constructed a managed
6049         MethodReturn class around it.  Fixes a big, big leak.
6050
6051         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
6052         method.
6053         (BuildSignalHandler): After we've sent the Signal message, dispose
6054         of it.
6055         (BuildMethod): Dispose of the method call and reply messages after
6056         we've sent the message and extracted the data we want from the
6057         reply.
6058
6059         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
6060         anymore.
6061         (Service_FilterCalled): Dispose of the message after we're
6062         finished with it.
6063
6064 2005-03-08  Joe Shaw  <joeshaw@novell.com>
6065
6066         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
6067         After we attach our pending call to the connection, unref
6068         it.  Fixes a leak.
6069  
6070         * mono/Connection.cs (set_RawConnection): Disconnect our
6071         filter and match callbacks from the old connection and
6072         reconnect them to the new connection, if any.
6073
6074         * mono/DBusType/Array.cs: "Code" is a static member, so
6075         don't use "this" to refer to it.  Fix for stricter checking
6076         in Mono 1.1.4.
6077  
6078         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
6079         object path that we pass into unmanaged code.
6080  
6081         * mono/DBusType/String.cs (Append): Don't leak the string
6082         that we pass into unmanged code.
6083
6084 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
6085         * NEWS: Update for 0.31
6086
6087         * configure.in: Release 0.31
6088         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
6089
6090         * qt/Makefile.am: fixed build
6091
6092         * dbus/Makefile.am: soname bump for libdbus
6093
6094         * glib/Makefile.am: soname bump for libdbus-glib
6095
6096 2005-03-05  Havoc Pennington  <hp@redhat.com>
6097
6098         * dbus/dbus-sysdeps.c:
6099         (pseudorandom_generate_random_bytes_buffer): fix to have no return
6100         value
6101         (_dbus_generate_random_bytes_buffer): fix return value
6102
6103         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
6104         checks actually work, from Tom Parker <fdo@tevp.net>
6105
6106 2005-03-01  Colin Walters  <walters@verbum.org>
6107
6108         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
6109         functions copied from dbus-glib-tool.c.
6110         (main): Convert lots of error code to use them.
6111         Also add some testing for introspection bits.
6112
6113 2005-03-01  Colin Walters  <walters@verbum.org>
6114         
6115         * doc/TODO: Remove introspection signature TODO.
6116
6117 2005-02-27  Colin Walters  <walters@verbum.org>
6118
6119         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
6120         Change return value to const char * instead of int so we can do
6121         full signatures.
6122         (struct PropertyInfo, struct ArgInfo): Store char *.
6123         (property_info_new, arg_info_new): Update parameters, strdup.
6124         (property_info_unref, arg_info_unref): Free.
6125
6126         * glib/dbus-gidl.h: Update prototypes.
6127
6128         * glib/dbus-gparser.c (basic_type_from_string): Delete.
6129         (validate_signature): New function, just validates signature and
6130         sets GError.
6131         (parse_property, parse_arg): Invoke validate_signature.  Store
6132         signature instead of just type code.
6133
6134         * glib/dbus-gvalue.c (base_type_from_signature): New utility
6135         function to return a primary type for a signature, dropping
6136         information about types in container types.
6137         (dbus_gvalue_genmarshal_name_from_type)
6138         (dbus_gvalue_binding_type_from_type)
6139         (dbus_gvalue_ctype_from_type): Update to take full signature
6140          instead of type code.
6141         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
6142
6143         * glib/dbus-gvalue.h: Update prototypes for above.
6144
6145         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
6146         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
6147         (introspect_properties, introspect_signals, write_interface):
6148         Update to handle signatures, and remove usage of
6149         _dbus_gutils_type_to_string.
6150         (handle_introspect): Print out type codes instead of e.g. "string"
6151         in hardcoded introspection XML; also use x_AS_STRING constants
6152         instead of hardcoding in string.
6153
6154         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
6155         to string.  Remove usage of _dbus_gutils_type_to_string.
6156
6157         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
6158
6159         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
6160         deletion.
6161         
6162         * glib/dbus-binding-tool-glib.c (compute_marshaller)
6163         (compute_marshaller_name, generate_glue): Handle signature change
6164         to string.
6165         (write_formal_parameters, write_args_for_direction): Ditto, and
6166         remove FIXME.
6167
6168         * tools/dbus-tree-view.c (type_to_string): Delete.
6169         (info_set_func_text): Update to print full signatures.
6170
6171         * test/glib/test-service-glib.xml: Change types to new
6172         introspection format.
6173
6174 2005-02-26  Havoc Pennington  <hp@redhat.com>
6175
6176         * doc/TODO: remove the "guid" item
6177
6178         * test/glib/test-profile.c (no_bus_thread_func): use open_private
6179         (with_bus_thread_func): use open_private
6180
6181         * dbus/dbus-connection.c (dbus_connection_open_private): new
6182         function that works like the old dbus_connection_open()
6183         (dbus_connection_open): now returns an existing connection if
6184         possible
6185
6186         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
6187         through the GUID to the transport
6188
6189         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
6190         GUID in hex-encoded form.
6191
6192         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
6193         pass GUID argument in to the transport
6194
6195         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
6196         guid argument
6197
6198         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
6199
6200         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
6201
6202 2005-02-25  Havoc Pennington  <hp@redhat.com>
6203
6204         * doc/dbus-specification.xml: document the GUID thing
6205
6206         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
6207         globally unique ID for the server, and put a "guid=hexencoded"
6208         field in the address
6209
6210         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
6211
6212         * dbus/dbus-message.c: ditto
6213
6214         * dbus/dbus-dataslot.c: ditto
6215
6216         * dbus/dbus-list.c: ditto
6217
6218         * dbus/dbus-internals.h: wait, just include
6219         dbus-threads-internal.h here
6220         
6221         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
6222         use in main library
6223
6224         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
6225
6226 2005-02-24  Colin Walters  <walters@verbum.org>
6227
6228         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
6229
6230 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
6231
6232         * glib/Makefile.am: added dbus-gobject.h to sources list
6233         so distcheck doesn't fail
6234         
6235 2005-02-24  Havoc Pennington  <hp@redhat.com>
6236
6237         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
6238         you must disconnect before unref, since locking and other things
6239         are screwed up otherwise. Fix assorted other locking stuff.
6240
6241         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
6242         fix compilation
6243
6244         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
6245         into a private header and don't export from the library
6246
6247         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
6248
6249 2005-02-24  Colin Walters  <walters@verbum.org>
6250         
6251         * dbus/dbus-signature.c: New file; implements various functions
6252         related to type signatures.  Includes an interator for parsing,
6253         validation functions.
6254         (dbus_type_is_basic): Moved here from
6255         dbus-marshal-basic.c:_dbus_type_is_basic.
6256         (dbus_type_is_container): Moved here from
6257         dbus-marshal-basic.c:_dbus_type_is_container.
6258
6259         All callers of _dbus_type_is_container and _dbus_type_is_basic
6260         updated, and include dbus-signature.h.
6261
6262         * dbus/dbus-signature.h: New file; prototypes for the above.
6263
6264         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
6265         dbus-signature.h.
6266
6267         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
6268         function factored out of _dbus_first_type_in_signature.
6269         (_dbus_first_type_in_signature_c_str): New function; returns first
6270         type code for a type signature character.
6271
6272         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
6273         handle function moves.
6274
6275         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
6276
6277         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
6278         function; skips to next complete type in type signature.
6279         Implemented using previous skip_one_complete_type.  Now
6280         skip_one_complete_type just delegates to
6281         _dbus_type_signature_next.
6282
6283         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
6284         to dbus-signature.c
6285         (_dbus_type_is_container): Ditto.
6286
6287         * doc/dbus-specification.xml: Update introspection sample to
6288         use real type signatures.
6289
6290         * dbus/dbus-test.h: Prototype signature test.
6291
6292         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
6293         signature tests.
6294
6295         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
6296
6297 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
6298
6299         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
6300         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
6301
6302 2005-02-21  Colin Walters  <walters@verbum.org>
6303
6304         * dbus/dbus-test-main.c (main): Take optional specific test
6305         argument.
6306
6307         * dbus/dbus-test.c (run_test): New function, runs a test function
6308         with no data directory.
6309         (run_data_test): Like above, but takes data directory.
6310         (dbus_internal_do_not_use_run_tests): Take
6311         specific test argument.  Replace lots of cut n' paste code
6312         with run_test and run_data_test.
6313
6314         * dbus/dbus-test.h: Update prototype for
6315         dbus_internal_do_not_use_run_tests.
6316
6317 2005-02-20  Havoc Pennington  <hp@redhat.com>
6318
6319         Fix bugs reported by Daniel P. Berrange
6320         
6321         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
6322         (protected_change_watch): new function
6323         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
6324         (_dbus_server_add_watch): change to work like the
6325         dbus-connection.c equivalents; like those, probably kind of
6326         busted, but should at least mostly work for now
6327         (dbus_server_disconnect): drop the lock if we were already
6328         disconnected, patch from Daniel P. Berrange
6329
6330         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
6331         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
6332         same stuff
6333
6334         * doc/TODO: todo about unscrewing this mess
6335
6336 2005-02-19  Colin Walters  <walters@verbum.org>
6337
6338         * glib/dbus-binding-tool-glib.c
6339         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6340
6341         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6342         as errno.h and sys/stat.h.
6343         (lose): New function, prints error with
6344         newline and exits.
6345         (lose_gerror): Similar, but takes GError for message.
6346         (main): Add --output argument to specify output file to write to,
6347         instead of always printing to stdout.  In this mode, determine
6348         timestamps on source files to see whether any are newer than the
6349         target file.  If not, exit.  Also convert a number of error
6350         messages to use lose (since it's shorter), and switch to using
6351         g_io_channel_shutdown.
6352
6353 2005-02-19  Havoc Pennington  <hp@redhat.com>
6354
6355         * glib/dbus-gobject.c
6356         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6357
6358         * glib/dbus-glib.c: fix doxygen warnings
6359
6360         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6361         is found on an <arg>
6362
6363 2005-02-17  Colin Walters  <walters@verbum.org>
6364
6365         * glib/dbus-gobject.h: Don't export
6366         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6367         
6368         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6369         (invoke_object_method): Handle it.
6370
6371         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6372         Handle rename.
6373         
6374 2005-02-17  Colin Walters  <walters@verbum.org>
6375
6376         * bus/.cvsignore, doc/.cvsignore
6377         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6378         Update.
6379
6380 2005-02-17  Colin Walters  <walters@verbum.org>
6381         
6382         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6383         Rename to DBUS_SERVICE_DBUS.
6384         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6385         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6386         Change the value from "org.freedesktop.Local"
6387         to "org.freedesktop.DBus.Local".
6388         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6389         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6390         DBUS_INTERFACE_INTROSPECTABLE.
6391         Change the value from "org.freedesktop.Introspectable"
6392         to "org.freedesktop.DBus.Introspectable".
6393         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6394         DBUS_INTERFACE_PROPERTIES.
6395         Change the value from "org.freedesktop.Properties"
6396         to "org.freedesktop.DBus.Properties".
6397         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6398         DBUS_INTERFACE_PEER.
6399         Change the value from "org.freedesktop.Peer"
6400         to "org.freedesktop.DBus.Peer".
6401         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6402         DBUS_INTERFACE_LOCAL.
6403         Change the value from "org.freedesktop.Local"
6404         to "org.freedesktop.DBus.Local".
6405
6406         All other users of those constants have been changed.
6407
6408         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6409
6410         * glib/dbus-gobject.c (handle_introspect): Use constants.
6411
6412         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6413
6414 2005-02-17  Colin Walters  <walters@verbum.org>
6415
6416         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6417         (parse_node, parse_interface, parse_method, parse_signal)
6418         (parse_property, parse_annotation): Lose if we're currently in an
6419         annotation.
6420         (parse_annotation): New function.
6421         (parser_start_element, parser_end_element): Handle annotation.
6422         (parse_method, parse_interface): Remove support for c_name attribute,
6423         switch to annotations.
6424
6425         * glib/dbus-gidl.h (interface_info_get_binding_names)
6426         (method_info_get_binding_names)
6427         (interface_info_get_binding_name, method_info_get_binding_name)
6428         (interface_info_set_binding_name, method_info_set_binding_name):
6429         Remove.
6430         (interface_info_get_annotations, method_info_get_annotations)
6431         (interface_info_get_annotation, method_info_get_annotation)
6432         (interface_info_add_annotation, method_info_add_annotation):
6433         Prototype.
6434
6435         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6436         for "bindings".
6437         (struct MethodInfo): Ditto.
6438         Straightfoward conversion of binding methods into annotation methods
6439         as prototyped.
6440
6441         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6442
6443         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6444
6445         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6446         Use new annotation API.
6447
6448         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6449         annotation element.
6450         
6451         * doc/dbus-specification.xml: Discuss introspection annotations,
6452         include list of well-known annotations.
6453
6454         * test/glib/test-service-glib.xml: Make validate against new DTD.
6455
6456 2005-02-17  Colin Walters  <walters@verbum.org>
6457
6458         This patch is based on initial work from
6459         Paul Kuliniewicz <kuliniew@purdue.edu>.
6460
6461         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6462         initialization of GValue from dbus type to here.
6463         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6464         for the "glib-genmarshal" program from a DBus type.
6465         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6466         into the C name for it we use in the glib bindings.
6467         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6468         glib C type (not GValue).
6469         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6470
6471         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6472         from dbus-gobject.c.
6473
6474         * glib/dbus-gutils.h: Prototype it.
6475
6476         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6477         (marshal_dbus_message_to_g_marshaller): Use new shared function
6478         dbus_glib_marshal_dbus_message_to_gvalue_array.
6479
6480         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6481         Will be changed once we have annotations.
6482
6483         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6484         GStaticRWLock.  Callers updated.
6485         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6486         (string_table_next): New function for iterating over zero-terminated
6487         string value array.
6488         (string_table_lookup): New function; retrieves specific entry in
6489         array.
6490         (get_method_data): New function; look up method data in object data chunk.
6491         (object_error_domain_prefix_from_object_info)
6492         (object_error_code_from_object_info): New functions, but not implemented yet.
6493         (method_interface_from_object_info): New function; retrieve interface name.
6494         (method_name_from_object_info): New function; retrieve method name.
6495         (method_arg_info_from_object_info): New function; retrieve argument data.
6496         (arg_iterate): New function; iterates over serialized argument data.
6497         (method_dir_signature_from_object_info): New function; returns a
6498         GString holding type signature for arguments for just one
6499         direction (input or output).
6500         (method_input_signature_from_object_info)
6501         (method_output_signature_from_object_info): New functions.
6502         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6503         converts dbus message arguments into a GValue array.  Used for both
6504         signal handling and method invocation.
6505         (struct DBusGlibWriteIterfaceData): New utility structure.
6506         (write_interface): New function; generate introspection XML for
6507         an interface.
6508         (introspect_interfaces): New function; gathers all interface->methods,
6509         generates introspection XML for them.
6510         (handle_introspect): Invoke introspect_interfaces.
6511         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6512         (lookup_object_and_method): New function; examines an incoming message
6513         and attempts to match it up (via interface, method name, and argument
6514         signature) with a known object and method.
6515         (gerror_domaincode_to_dbus_error_name): New function; converts a
6516         GError domain and code into a DBus error name.  Needs GError data
6517         added to object introspection to work well.
6518         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6519         GError.
6520         (invoke_object_method): New function to invoke an object method
6521         looked up via lookup_object_and_method.  Parses the incoming
6522         message, turns it into a GValue array, then invokes the marshaller
6523         specified in the DBusGMethodInfo.  Creates a new message with
6524         either return values or error message as appropriate.
6525         (gobject_message_function): Invoke lookup_object_and_method and
6526         invoke_object_method.
6527
6528         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6529         (enum DBusBindingOutputMode): New enum for binding output modes.
6530         (pretty_print): Print binding names.
6531         (dbus_binding_tool_error_quark): GError bits.
6532         (version): Fix typo.
6533         (main): Create GIOChannel for output.  Parse new --mode argument,
6534         possible values are "pretty-print", "glib-server", "glib-client".
6535         Use mode to invoke appropriate function.
6536         
6537         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6538
6539         * glib/dbus-glib-tool.h: New header, just includes GError bits
6540         for now.
6541
6542         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6543         maps binding style to name.
6544         (struct MethodInfo): Ditto.
6545         (get_hash_keys, get_hash_key): Utility function, returns keys for
6546         a GHashTable.
6547         (interface_info_new, method_info_new): Initialize bindings.
6548         (interface_info_unref, method_info_unref): Destroy bindings.
6549         (method_info_get_binding_names, method_info_get_binding_name)
6550         (interface_info_get_binding_names, interface_info_get_binding_name):
6551         Functions for retrieving binding names.
6552         (method_info_set_binding_name, interface_info_set_binding_name):
6553         Functions for setting binding names.
6554
6555         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6556         for glib binding generation.
6557
6558         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6559         and client-side glib glue generation.
6560
6561         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6562         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6563         dbus-glib-tool.h.
6564
6565         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6566         of using GClosureMarshal directly.
6567         (struct DBusGObjectInfo): Add n_infos member.
6568
6569         * test/glib/test-service-glib.xml: New file; contains introspection data
6570         for MyTestObject used in test-service-glib.c.
6571
6572         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6573         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6574         (my_object_uppercase, my_object_many_args): New test methods.
6575         (main): Use dbus_g_object_class_install_info to include generated object
6576         info.
6577
6578         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6579         as well as client-side bindings.
6580
6581         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6582         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6583         using both the dbus_gproxy stuff directly as well as the generated bindings.
6584
6585 2005-02-15  Havoc Pennington  <hp@redhat.com>
6586
6587         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6588         complete a pending call, don't run filters first.
6589
6590         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6591         dbus_pending_call_steal_reply
6592
6593         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6594         _dbus_connection_block_pending_call
6595         (dbus_pending_call_get_reply): change to steal_reply and return a
6596         ref
6597
6598         * dbus/dbus-connection.c
6599         (dbus_connection_send_with_reply_and_block): port to work in terms
6600         of DBusPendingCall
6601         (_dbus_connection_block_pending_call): replace block_for_reply
6602         with this
6603
6604 2005-02-14  Havoc Pennington  <hp@redhat.com>
6605
6606         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6607         properly handle looking up group information by name; fix 
6608         from j@bootlab.org
6609
6610 2005-02-13  Havoc Pennington  <hp@redhat.com>
6611
6612         * dbus/dbus-connection.c (dbus_connection_return_message) 
6613         (dbus_connection_borrow_message): hold dispatch lock while message
6614         is outstanding
6615         (_dbus_connection_block_for_reply): hold dispatch lock while we
6616         block for the reply, so nobody steals our reply
6617         (dbus_connection_pop_message): hold the dispatch lock while we
6618         pluck the message
6619
6620 2005-02-13  Havoc Pennington  <hp@redhat.com>
6621
6622         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6623         (_dbus_connection_release_dispatch)
6624         (_dbus_connection_acquire_io_path)
6625         (_dbus_connection_release_io_path): make the mutex and condvar
6626         control access to the "acquired" flag. Drop the connection lock
6627         while waiting on the condvar. Hopefully these are baby steps in
6628         roughly the right direction.
6629
6630 2005-02-13  Havoc Pennington  <hp@redhat.com>
6631
6632         * dbus/dbus-connection.c: use separate mutexes for the condition
6633         variables; this is some kind of baseline for sanity, but the
6634         condition variables still aren't used correctly afaict
6635
6636 2005-02-13  Havoc Pennington  <hp@redhat.com>
6637
6638         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6639         fix a double-unlock
6640
6641         * dbus/dbus-connection.c
6642         (_dbus_connection_detach_pending_call_unlocked): add this
6643
6644         Initial semi-correct pass through to fix thread locking; there are
6645         still some issues with the condition variable paths I'm pretty
6646         sure
6647         
6648         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6649         lock/unlock calls
6650
6651         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6652         rename to add _unlocked
6653         (struct DBusConnection): move "dispatch_acquired" and
6654         "io_path_acquired" to use only one bit each.
6655         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6656         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6657         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6658         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6659         (_dbus_connection_remove_timeout) 
6660         (_dbus_connection_toggle_timeout): drop lock when calling out to
6661         user functions; done in a hacky/bad way.
6662         (_dbus_connection_send_and_unlock): add a missing unlock
6663         (_dbus_connection_block_for_reply): add a missing unlock
6664
6665         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6666         drop lock in a hacky probably unsafe way to call out to user
6667         function
6668
6669 2005-02-12  Havoc Pennington  <hp@redhat.com>
6670
6671         * tools/dbus-tree-view.c (info_set_func_text): display more
6672         details on args
6673
6674         * bus/driver.c (bus_driver_handle_list_services): list the bus
6675         driver
6676
6677         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6678
6679         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6680         (method_info_get_n_args): new function
6681
6682 2005-02-12  Havoc Pennington  <hp@redhat.com>
6683
6684         * bus/driver.c (bus_driver_handle_introspect): add introspection
6685         for bus driver
6686
6687 2005-02-12  Havoc Pennington  <hp@redhat.com>
6688
6689         * bus/driver.c: put the signature of each bus driver method in the
6690         table of handlers and check it on incoming calls; this isn't
6691         really useful, but going to add introspect support in a minute.
6692
6693 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6694
6695         * mono/Connection.cs: The unpredictability of finalizers in mono
6696         prevents us from deterministically disconnecting the filters from
6697         the Service class's finalizer, so move tracking of filters and
6698         matches here.  Add API for that.
6699
6700         * mono/Service.cs: Remove the code, add code which calls the
6701         methods now on the Connection class.
6702
6703 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6704
6705         * python/dbus.py (class Sender): added to support dbus signals better
6706         (Bus::add_signal_receiver): added expand_args parameter which defaults
6707         to True.  When expand args is True the signal handler will pass the 
6708         message arguments as parameters to the signal handler.  If False
6709         revert to previous behavior where the signal handler must get the
6710         argument list from the message.  This is to help port applications
6711         like HAL that have a tendancy to send variable length argument lists.
6712         self._match_rule_to_receivers is now a dict of dicts.
6713         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6714         removing it from a list
6715         (Bus::_signal_func): change signal handlers so that interface,
6716         signal_name, service, path and message are packed into a Sender
6717         object and that is passed to the handler.  If expand_args is True
6718         extract the args list from the message and append it to the parameter
6719         list
6720         
6721         * python/dbus_bindings.pyx.in (class Signature): added to support 
6722         signiature types
6723         (MessageIter::__init__): changed iteration limit to match D-BUS
6724         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6725         STRUCT and VARIENT type support
6726         (MessageIter::python_value_to_dbus_sig): made recursive to support
6727         recursive types
6728         (MessageIter::append*): added Signature, dict, tuple 
6729         support
6730
6731         * python/examples/example-client.py: added examples of getting tuples
6732         and dicts
6733
6734         * python/examples/example-service.py: added examples of sending tuples
6735         and dicts
6736
6737         * python/examples/example-signal-recipient.py: Fixed to handle new
6738         signal callback format
6739
6740 2005-02-10  Havoc Pennington  <hp@redhat.com>
6741
6742         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6743         (call dbus_g_proxy_add_signal)
6744
6745         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6746         escape the hostname
6747         (_dbus_server_new_for_domain_socket): escape the path
6748
6749         * dbus/dbus-address.c (dbus_address_escape_value): new
6750         (dbus_address_unescape_value): new
6751         (dbus_parse_address): unescape values
6752
6753         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6754
6755         * doc/dbus-specification.xml: explain how to escape values in
6756         addresses
6757
6758 2005-02-10  Havoc Pennington  <hp@redhat.com>
6759
6760         * dbus/dbus-message-factory.c (generate_special): modify test to
6761         avoid using a non-basic dict key
6762
6763         * dbus/dbus-marshal-validate-util.c: add test for the below
6764
6765         * doc/dbus-specification.xml: require that dict keys are a basic
6766         type
6767
6768         * dbus/dbus-marshal-validate.c
6769         (_dbus_validate_signature_with_reason): require that dict key is a
6770         basic type
6771
6772 2005-02-10  Havoc Pennington  <hp@redhat.com>
6773
6774         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6775         change to be _and_unlock instead of _unlocked
6776
6777         * dbus/dbus-connection.c
6778         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6779         have no_update so we can find this bug quickly in future
6780
6781 2005-02-10  Havoc Pennington  <hp@redhat.com>
6782
6783         * dbus/dbus-message-util.c (verify_test_message): tests for string
6784         array
6785
6786         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6787         support for arrays of string/signature/path
6788
6789 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6790
6791         * dbus/dbus-connection.c
6792         (_dbus_connection_queue_received_message_link,
6793         _dbus_connection_message_sent): Add the path to
6794         the verbose output.
6795         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6796         _dbus_connection_send_preallocated_unlocked(), updated the
6797         dispatch status, and unlocks.  Fixes a bug where certain
6798         situations (like a broken pipe) could cause a Disconnect message
6799         to not be sent, tricking the bus into thinking a service was still
6800         there when the process had quit.
6801         (_dbus_connection_send_preallocated): Call
6802         _dbus_connection_send_preallocated_and_unlock().
6803         (_dbus_connection_send_and_unlock): Added.  Calls
6804         _dbus_connection_send_preallocated_and_unlock().
6805         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6806         (dbus_connection_send_with_reply): Update the dispatch status and
6807         unlock.
6808
6809         * mono/Service.cs (~Service): Added.  Removes the filter so that
6810         we don't get unmanaged code calling back into a GCed delegate.
6811         (RemoveFilter); Added.
6812
6813 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6814
6815         * dbus/dbus-message.c (dbus_message_iter_open_container):
6816         - Removed check for iterator type being an array because
6817         get_arg_type does not work with writer iterators
6818         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6819
6820 2005-02-07  Havoc Pennington  <hp@redhat.com>
6821
6822         * doc/dbus-specification.xml: some more language cleanups; add
6823         stuff about how to deal with invalid protocol and extension
6824         points; add _ to allowed chars in auth commands; add EXTENSION_
6825         auth command prefix
6826
6827 2005-02-06  Havoc Pennington  <hp@redhat.com>
6828
6829         * s/expected/required/ in a couple places for clarity
6830
6831 2005-02-07  Colin Walters  <walters@verbum.org>
6832
6833         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6834         sender or proposed_recipient.
6835
6836 2005-02-06  Havoc Pennington  <hp@redhat.com>
6837
6838         * dbus/dbus-message-factory.c (generate_special): more tests
6839
6840         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6841         array length that exceeds the maximum
6842
6843 2005-02-05  Havoc Pennington  <hp@redhat.com>
6844
6845         * dbus/dbus-message-factory.c (generate_special): more test cases,
6846         increasing coverage
6847
6848         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6849         reason why a signature was invalid
6850
6851         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6852         skip the length of the string before we look at it in validation
6853
6854         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6855         equal_substring
6856
6857         * dbus/dbus-message.c (_dbus_message_loader_new): default
6858         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6859
6860 2005-02-05  Havoc Pennington  <hp@redhat.com>
6861
6862         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6863         if the signature of a variant was empty
6864         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6865         struct with no element type)
6866
6867         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6868         mangled messages to break things
6869
6870 2005-02-04  Havoc Pennington  <hp@redhat.com>
6871
6872         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6873         g_quark_try_string() so it actually can return 0
6874         (dbus_g_proxy_connect_signal): ditto
6875
6876 2005-02-04  Havoc Pennington  <hp@redhat.com>
6877
6878         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6879         bogus warning
6880         (tristring_from_message): assert cleanly on null path/interface
6881         (should not be possible though I decided later)
6882         (dbus_g_proxy_dispose): move proxy manager unregistration here
6883         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6884         g_return_if_fail() checks
6885
6886 2005-02-04  Havoc Pennington  <hp@redhat.com>
6887
6888         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6889
6890         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6891         (with some minor changes)
6892
6893         * doc/dbus-specification.xml: add deprecated attribute to
6894         introspection format
6895
6896 2005-01-31  Havoc Pennington  <hp@redhat.com>
6897
6898         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6899         think it's sort of right
6900
6901 2005-01-30  Havoc Pennington  <hp@redhat.com>
6902
6903         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6904
6905 2005-01-30  Havoc Pennington  <hp@redhat.com>
6906
6907         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6908
6909         * autogen.sh: change to autotools 1.9
6910
6911         * glib/dbus-gproxy.c: completely change how signals work
6912         (dbus_g_proxy_add_signal): new function to specify signature of a
6913         signal
6914         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6915         and g_warning if the incoming message has the wrong signature.
6916
6917 2005-01-30  Havoc Pennington  <hp@redhat.com>
6918
6919         * tools/dbus-names-model.c (have_names_notify): fix this
6920
6921         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6922         up the string array handling a bit 
6923
6924 2005-01-30  Havoc Pennington  <hp@redhat.com>
6925
6926         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6927         (dbus_g_pending_call_cancel): new function
6928
6929         * dbus/dbus-glib.h: move GType decls for connection/message here;
6930         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6931         here, just kind of rationalizing how we handle all that
6932
6933         * tools/dbus-names-model.c: new file for a tree model listing the
6934         services on a bus
6935
6936         * tools/dbus-tree-view.c (model_new): use proper typing on the
6937         model rows
6938
6939 2005-01-30  Havoc Pennington  <hp@redhat.com>
6940
6941         * glib/dbus-gmain.c: add a custom GSource back that just checks
6942         whether the message queue has anything in it; otherwise, there are 
6943         cases where we won't see messages in the queue since there was no 
6944         IO visible to the glib main loop
6945
6946         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6947         increase default message timeout to 25 seconds
6948
6949 2005-01-30  Havoc Pennington  <hp@redhat.com>
6950
6951         * test/glib/test-profile.c (no_bus_stop_server): remove the
6952         warning about the g_warning that I just fixed
6953
6954         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6955         custom source, seems to be a lot easier to understand and work
6956         better.
6957
6958 2005-01-30  Havoc Pennington  <hp@redhat.com>
6959
6960         I think this main loop thing is conceptually broken, but here are 
6961         some band aids. I'll maybe rewrite it in a minute.
6962         
6963         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6964         custom GSource, so don't pass it in; confusing
6965         (gsource_server_finalize, gsource_connection_finalize): add
6966         finalize handlers that remove all the watches.  
6967
6968 2005-01-30  Havoc Pennington  <hp@redhat.com>
6969
6970         * glib/dbus-gobject.c (introspect_properties): fix the XML
6971         generated
6972
6973         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6974         which effectively detects the use of freed messages
6975
6976         * glib/dbus-gobject.c (handle_introspect): modify and return the
6977         reply message instead of the incoming message
6978
6979         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6980         gee, maybe it should SEND THE XML instead of just making a string
6981         and freeing it again ;-)
6982
6983         * tools/dbus-print-message.c (print_message): improve printing of
6984         messages
6985
6986         * configure.in: add debug-glib.service to the output
6987
6988 2005-01-30  Havoc Pennington  <hp@redhat.com>
6989
6990         dbus-viewer introspected and displayed the bus driver
6991         
6992         * dbus/dbus-object-tree.c 
6993         (object_tree_test_iteration): add tests for a handler registered on "/"
6994
6995         * dbus/dbus-object-tree.c
6996         (_dbus_decompose_path): fix to handle path "/" properly
6997         (run_decompose_tests): add tests for path decomposition
6998         
6999         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
7000         properly
7001
7002         * glib/dbus-gobject.c (handle_introspect): fix quotes
7003
7004         * test/glib/run-test.sh: support launching the bus, then running
7005         dbus-viewer
7006
7007         * test/glib/test-service-glib.c (main): put in a trivial gobject
7008         subclass and register it on the connection
7009
7010         * bus/driver.c (bus_driver_handle_introspect): implement
7011         introspection of the bus driver service
7012
7013         * dbus/dbus-protocol.h: add #defines for the XML namespace,
7014         identifiers, doctype decl
7015
7016         * bus/driver.c (bus_driver_handle_get_service_owner): handle
7017         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
7018         returning the service unchanged.
7019         (bus_driver_handle_message): remove old check for reply_serial in
7020         method calls, now the message type deals with that
7021         (bus_driver_handle_message): handle NULL interface
7022
7023         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
7024
7025         * glib/dbus-gloader-expat.c (description_load_from_string): allow
7026         -1 for len
7027
7028         * tools/dbus-viewer.c: add support for introspecting a service on
7029         a bus
7030
7031         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
7032         (dbus_g_pending_call_unref): add
7033
7034 2005-01-29  Havoc Pennington  <hp@redhat.com>
7035
7036         * tools/dbus-tree-view.c: add support for displaying properties.
7037         (run dbus-viewer with an introspect xml file as arg, then resize
7038         the window so the tree elements show up, not sure what that is)
7039
7040         * glib/dbus-gobject.c (handle_introspect): return
7041         org.freedesktop.Properties and org.freedesktop.Introspectable
7042         interfaces when we are introspected.
7043
7044         * doc/dbus-specification.xml: allow empty interface name when 
7045         Get/Set a property
7046
7047 2005-01-29  Havoc Pennington  <hp@redhat.com>
7048
7049         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
7050         though it uses glib, it could be extended for any binding in
7051         principle
7052
7053         * glib/dbus-gobject.c (gobject_message_function): change to the
7054         new way properties work
7055
7056         * dbus/dbus-protocol.h: add the new interfaces
7057
7058         * doc/dbus-specification.xml: document the introspection format,
7059         Introspectable interface, and add an org.freedesktop.Properties
7060         interface.
7061
7062         * glib/dbus-gparser.c: add support for a <property> element
7063
7064         * glib/dbus-gidl.c: add PropertyInfo
7065
7066         * glib/dbus-gobject.c (handle_introspect): put the outermost
7067         <node> outside the signal and property descriptions.
7068         (introspect_properties): export properties as <property> rather
7069         than as method calls
7070
7071 2005-01-28  Havoc Pennington  <hp@redhat.com>
7072
7073         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
7074         related to authentication protocol
7075
7076 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
7077
7078         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
7079                 - BUS_ACTIVATION -> BUS_STARTER
7080                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
7081                 - class MessageIter (__init__): Added recursion checking 
7082                 so we throw a nice error instead of just disconnecting from the
7083                 bus.
7084                 (get): Added arg_type parameter for recursion.
7085                 Removed the nil type
7086                 Added signiture type placeholder (not implemented)
7087                 Added struct type placeholder (not implemented)
7088                 Added varient type placeholder (not implemented)
7089                 Commented out dict type for now     
7090                 (get_element_type): renamed from get_array_type
7091                 (get_*): changed to use the dbus_message_iter_get_basic API
7092                 (get_*_array): removed in favor of recursive get_array method
7093                 (get_array): new recursive method which calls get to marshal
7094                 the elements of the array
7095                 (value_to_dbus_sig): New method returns the corrasponding
7096                 dbus signiture to a python value
7097                 (append): Comment out dict handling for now
7098                 Handle lists with the new recursive API
7099                 Comment out None handling for now
7100                 (append_nil): removed
7101                 (append_*): changed to use dbus_message_iter_append_basic API
7102                 (append_*_array): removed in favor of recursive append_array 
7103                 method
7104                 (__str__): Make it easier to print out recursive iterators
7105                 for debugging
7106                 - class Message (__str__): moved type inspection to the
7107                 MessageIter class' __str__ method
7108                 (get_iter): Added an append parameter wich defaults to False
7109                 If True use the new API's to create an append iterator
7110
7111         * python/dbus.py: Update to use new bindings API
7112                 - TYPE_ACTIVATION -> TYPE_STARTER
7113                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
7114                 - class ActivationBus -> class StarterBus
7115                 - class RemoteObject (__call__): get an append iterator
7116                 - (_dispatch_dbus_method_call): get an append iterator
7117                 - class Object (emit_signal): get an append iterator
7118
7119         * python/examples/: Fixed up the examples to work with the new API
7120                 
7121 2005-01-28  Joe Shaw  <joeshaw@novell.com>
7122
7123         * configure.in: Bump version up to 0.30.
7124
7125         * HACKING: Add a release item to bump the version number up after 
7126         a release.
7127
7128 2005-01-28  Havoc Pennington  <hp@redhat.com>
7129
7130         * doc/dbus-specification.xml: update to describe 16-bit types and
7131         dict entries
7132
7133         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
7134         assertion
7135
7136         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
7137         type
7138
7139         * dbus/dbus-marshal-recursive.c: implement
7140
7141 2005-01-27  Havoc Pennington  <hp@redhat.com>
7142
7143         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
7144
7145         * configure.in: find the right type for 16 and 32 bit ints as well
7146         as 64
7147
7148         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
7149         the 16-bit types so people don't have to stuff them in 32-bit or
7150         byte arrays.
7151
7152 2005-01-27  Havoc Pennington  <hp@redhat.com>
7153
7154         * dbus/dbus-message.c: byteswap the message if you init an
7155         iterator to read/write from it
7156         
7157         * dbus/dbus-marshal-byteswap.c: new file implementing 
7158         _dbus_marshal_byteswap()
7159
7160         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
7161
7162 2005-01-26  Havoc Pennington  <hp@redhat.com>
7163         
7164         * dbus/dbus-marshal-validate-util.c: break this out (and fix
7165         build, apparently - nobody noticed?)
7166         
7167 2005-01-26  Havoc Pennington  <hp@redhat.com>
7168
7169         * dbus/dbus-marshal-recursive.h: remove todo comment
7170
7171 2005-01-25  Joe Shaw  <joeshaw@novell.com>
7172
7173         * Land the mono binding changes to conform to the new APIs.
7174
7175         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
7176         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
7177
7178         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
7179         type code as a string.
7180         (InitAppending): Rename dbus_message_append_iter_init() to
7181         dbus_message_iter_init_append().
7182
7183         * mono/BusDriver.cs: Rename ServiceEventHandler to
7184         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
7185         Rename ServiceOwnerChanged to NameOwnerChanged.
7186
7187         * mono/Connection.cs: Rename BaseService to UniqueName, and the
7188         underlying C call.
7189
7190         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
7191
7192         * mono/Service.cs: Rename Exists to HasOwner, internally rename
7193         dbus_bus_acquire_service() to dbus_bus_request_name().
7194
7195         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
7196         of Type.UnderlyingSystemType to get the correct element type for
7197         the array.
7198         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
7199         dbus_message_get_{element|arg}_type() instead of
7200         dbus_message_iter_init_array_iterator().
7201         (Append): Replace dbus_message_iter_append_array() with
7202         dbus_message_iter_open_container() and
7203         dbus_message_iter_close_container().
7204
7205         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
7206         types have been removed.
7207         
7208         * mono/DBusType/*.cs: Replace calls of
7209         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
7210         but specify the type in the DllImport extern declaration.  Ditto
7211         for dbus_message_iter_append_[type]() ->
7212         dbus_message_iter_append_basic().
7213
7214         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
7215         NameOwnerChangedHandler.
7216
7217 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
7218
7219         * python/dbus_bindings.pyx.in: Rename of methods and bindings
7220                 - get_base_service -> get_unique_name
7221                 - bus_get_base_service -> bus_get_unique_name
7222                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
7223                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
7224                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
7225                 - bus_activate_service -> bus_start_service_by_name
7226                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
7227                 - bus_acquire_service -> bus_request_name
7228                 - dbus_bus_acquire_service -> dbus_bus_request_name
7229                 - bus_service_exists -> bus_name_has_owner
7230                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
7231
7232         * python/dbus.py: Rename of methods
7233                 - activate_service -> start_service_by_name
7234                 - bus_acquire_service -> bus_request_name
7235                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
7236                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
7237
7238         
7239 2005-01-24  Joe Shaw  <joeshaw@novell.com>
7240
7241         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
7242         signature for the method that can't be found.
7243
7244         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
7245         the message has any arguments, we need to call
7246         _dbus_type_reader_get_current_type(), not
7247         _dbus_type_reader_has_next().
7248
7249 2005-01-24  Havoc Pennington  <hp@redhat.com>
7250
7251         * dbus/dbus-message-factory.c: more testing of message validation
7252
7253         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
7254         header
7255
7256 2005-01-23  Havoc Pennington  <hp@redhat.com>
7257
7258         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
7259         get this all working, not many tests in the framework yet though
7260
7261 2005-01-22  Havoc Pennington  <hp@redhat.com>
7262
7263         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
7264         tutorial, based on work from David Wheeler.
7265
7266 2005-01-21  Havoc Pennington  <hp@redhat.com>
7267
7268         * dbus/dbus-bus.c: add more return_if_fail checks
7269
7270         * dbus/dbus-message.c (load_message): have the "no validation"
7271         mode (have to edit the code to toggle the mode for now though)
7272
7273         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
7274         skips all validation; I want to use this at least for benchmark
7275         baseline, I'm not sure if it should be a publicly-available switch.
7276
7277 2005-01-21  Havoc Pennington  <hp@redhat.com>
7278
7279         * glib/dbus-gmain.c: don't put the GLib bindings in the same
7280         toplevel doxygen group as the low-level API stuff
7281
7282         * dbus/dbus.h: note that libdbus is the low-level API
7283
7284 2005-01-20  Havoc Pennington  <hp@redhat.com>
7285
7286         * update-dbus-docs.sh: script to update docs on the web site, only
7287         works for me though. neener.
7288
7289 2005-01-20  Havoc Pennington  <hp@redhat.com>
7290
7291         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
7292         code can reveal bugs in it
7293
7294 2005-01-20  Havoc Pennington  <hp@redhat.com>
7295
7296         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
7297         select() version, patches from Tor Lillqvist
7298
7299 2005-01-20  Havoc Pennington  <hp@redhat.com>
7300
7301         * doc/dbus-tutorial.xml: replace > with &gt;
7302
7303         * bus/services.c (bus_registry_acquire_service): validate the name
7304         and return a better error if it's no good.
7305
7306         * doc/dbus-specification.xml: note NO_AUTO_START change
7307
7308         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
7309         from AUTO_START, we're toggling the default
7310
7311         * bus/dispatch.c: adapt the tests to change of auto-start default
7312
7313 2005-01-18  Havoc Pennington  <hp@redhat.com>
7314
7315         * rename dbus-daemon-1 to dbus-daemon throughout
7316
7317 2005-01-18  Havoc Pennington  <hp@redhat.com>
7318
7319         * Throughout, grand renaming to strip out the use of "service",
7320         just say "name" instead (or "bus name" when ambiguous).  Did not
7321         change the internal code of the message bus itself, only the
7322         programmer-facing API and messages.
7323         
7324         * doc/dbus-specification.xml: further update the message bus section
7325         
7326         * bus/config-parser.c (all_are_equiv): fix bug using freed string
7327         in error case
7328
7329 2005-01-17  Havoc Pennington  <hp@redhat.com>
7330
7331         * dbus/dbus-types.h: remove 16-bit types since we don't use them
7332         ever
7333
7334         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7335         "invalid name character" not only non-ASCII
7336
7337         * doc/dbus-specification.xml: further update spec, message bus 
7338         parts are still out-of-date but the marshaling etc. stuff is now
7339         accurate-ish
7340
7341 2005-01-17  Havoc Pennington  <hp@redhat.com>
7342
7343         * doc/dbus-specification.xml: partially update spec
7344
7345 2005-01-17  Havoc Pennington  <hp@redhat.com>
7346
7347         * Throughout, align variant bodies according to the contained
7348         type, rather than always to 8. Should save a fair bit of space in
7349         message headers.
7350         
7351         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7352         fix handling of case where p == end
7353
7354         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7355
7356 2005-01-17  Havoc Pennington  <hp@redhat.com>
7357
7358         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7359
7360         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7361         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7362         are marshaling/unmarshaling a boolean.
7363
7364 2005-01-16  Havoc Pennington  <hp@redhat.com>
7365
7366         This is about it on what can be disabled/deleted from libdbus
7367         easily, back below 150K anyhow. Deeper cuts are more work than 
7368         just turning the code off as I've done here.
7369         
7370         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7371         signed int convenience funcs
7372
7373         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7374         verbose mode
7375
7376         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7377         things out of libdbus
7378
7379         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7380         
7381         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7382         tests-enabled-only, though it should probably be deleted)
7383
7384         * dbus/dbus-message-util.c: same stuff
7385
7386         * dbus/dbus-auth-util.c: same stuff
7387
7388 2005-01-16  Havoc Pennington  <hp@redhat.com>
7389
7390         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7391
7392         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7393         way for stripping down dbus-userdb.c stuff included in libdbus.
7394         Rename _dbus_parse_uid for consistency.
7395
7396 2005-01-16  Havoc Pennington  <hp@redhat.com>
7397
7398         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7399         name the assertion failed in
7400
7401         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7402         (_dbus_return_val_if_fail): assert that the name of the function
7403         containing the check doesn't start with '_', since we only want to 
7404         use checks on public functions
7405         
7406         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7407         checks to assertions
7408
7409         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7410         change checks to asserts for private function
7411
7412         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7413         to asserts for private function
7414
7415         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7416         broken assertion that was breaking make check
7417         (_dbus_type_reader_array_is_empty): remove this rather than fix
7418         it, was only used in assertions
7419
7420 2005-01-16  Havoc Pennington  <hp@redhat.com>
7421
7422         * test/unused-code-gc.py: hacky script to find code that's used
7423         only by the bus (not libdbus) or used only by tests or not used at
7424         all. It has some false alarms, but looks like we can clean up a
7425         lot of size from libdbus.
7426
7427         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7428         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7429         
7430 2005-01-16  Havoc Pennington  <hp@redhat.com>
7431
7432         * Add and fix docs according to Doxygen warnings throughout
7433         source.
7434         
7435         * dbus/dbus-marshal-recursive.c
7436         (_dbus_type_reader_array_is_empty): change this to just call
7437         array_reader_get_array_len() and make it static
7438
7439         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7440         from get_array_type
7441         (dbus_message_iter_init_append): rename from append_iter_init
7442
7443         * dbus/dbus-marshal-recursive.c
7444         (_dbus_type_reader_get_element_type): rename from
7445         _dbus_type_reader_get_array_type
7446
7447 2005-01-15  Havoc Pennington  <hp@redhat.com>
7448
7449         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7450
7451         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7452         when DBUS_DISABLE_ASSERT
7453         (_dbus_marshal_set_basic): be sure we align for the string length
7454
7455         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7456         this look faster
7457
7458         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7459         inline macro version
7460         (_dbus_string_set_byte): provide inline macro version
7461
7462 2005-01-15  Havoc Pennington  <hp@redhat.com>
7463
7464         * Land the new message args API and type system.
7465
7466         This patch is huge, but the public API change is not 
7467         really large. The set of D-BUS types has changed somewhat, 
7468         and the arg "getters" are more geared toward language bindings;
7469         they don't make a copy, etc.
7470
7471         There are also some known issues. See these emails for details
7472         on this huge patch:
7473         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7474         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7475         
7476         * dbus/dbus-marshal-*: all the new stuff
7477
7478         * dbus/dbus-message.c: basically rewritten
7479
7480         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7481         freed blocks to be all non-nul bytes so using freed memory is less
7482         likely to work right
7483
7484         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7485         DBUS_FAIL_MALLOC=N environment variable, so you can do
7486         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7487         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7488         thorough.
7489
7490         * qt/message.cpp: port to the new message args API
7491         (operator<<): use str.utf8() rather than str.unicode()
7492         (pretty sure this is right from the Qt docs?)
7493
7494         * glib/dbus-gvalue.c: port to the new message args API
7495
7496         * bus/dispatch.c, bus/driver.c: port to the new message args API
7497
7498         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7499         "locked" flag to TRUE and align_offset to 0; I guess we never
7500         looked at these anyhow, but seems cleaner.
7501
7502         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7503         move allocation padding macro to this header; use it to implement
7504         (_DBUS_STRING_STATIC): ability to declare a static string.
7505
7506         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7507         change to return TRUE if the interface is not set.
7508
7509         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7510         to dbus-marshal-validate.[hc]
7511
7512         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7513         dbus-internals.c
7514
7515         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7516         to dbus-marshal-*.[hc]
7517
7518         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7519         function here from dbus-marshal.c
7520
7521 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7522
7523         * NEWS: Update for 0.23.
7524
7525         * configure.in: Release 0.23.
7526
7527 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7528
7529         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7530         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7531         behind.
7532
7533         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7534         uninstall"
7535
7536         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7537         is an enum, get the enum's underlying type.  Another mono
7538         1.1.3 fix.
7539
7540 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7541
7542         Patch from Sjoerd Simons <sjoerd@luon.net>
7543
7544         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7545         DESTDIR.  It breaks stuff.
7546
7547 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7548
7549         Patch from Tambet Ingo <tambet@ximian.com>
7550
7551         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7552         calling type.GetElementType().  The code previously depended on
7553         broken Mono behavior, which was fixed in Mono 1.1.3.
7554
7555         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7556         Activator.CreateInstance() so that the class's constructor is
7557         called with the right parameters.
7558
7559 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7560
7561         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7562
7563         * dbus/dbus-connection.c
7564         (_dbus_connection_queue_received_message_link): Call
7565         _dbus_connection_remove_timeout() instead of the _locked()
7566         variant, since it's always called from
7567         _dbus_connection_handle_watch(), which handles the locking.
7568         Removed the _locked() variant since it's no longer used.
7569
7570 2005-01-03  Havoc Pennington  <hp@redhat.com>
7571
7572         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7573         return
7574         
7575 2004-12-26  Havoc Pennington  <hp@redhat.com>
7576
7577         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7578
7579 2005-01-03  Havoc Pennington  <hp@redhat.com>
7580
7581         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7582         floating point
7583
7584         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7585
7586 2005-01-02  Havoc Pennington  <hp@redhat.com>
7587
7588         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7589
7590 2005-01-01  Havoc Pennington  <hp@redhat.com>
7591
7592         * configure.in: add -Wfloat-equal
7593
7594 2005-01-01  Havoc Pennington  <hp@redhat.com>
7595
7596         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7597         for a variety of reasons '==' doesn't do this.
7598
7599 2004-12-31  Havoc Pennington  <hp@redhat.com>
7600
7601         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7602         I keep wishing I had
7603
7604 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7605
7606         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7607
7608 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7609
7610         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7611         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7612         dbus-protocol.h.  Because they are defines and not enums they are not
7613         autogenerated.
7614
7615 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7616
7617         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7618         dbus_bus_activate_service
7619
7620         * python/dbus.py (Bus.activate_service): activate a service on the
7621         bus.
7622
7623 2004-12-24  Havoc Pennington  <hp@redhat.com>
7624
7625         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7626         file format has also changed and I haven't adapted to that yet
7627         
7628         * Makefile.am: load .gcno files from latest gcc
7629
7630 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7631         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7632
7633         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7634         lowlevel binding
7635
7636         * python/dbus.py (get_unix_user): Added binding to 
7637         call dbus_bindings.bus_get_unix_user
7638
7639         * python/extract.py: Modified the proto_pat regex to
7640         handle unsigned long
7641
7642 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7643
7644         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7645         better POSIX compliance.
7646
7647 2004-12-19  Havoc Pennington  <hp@redhat.com>
7648
7649         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7650         (_dbus_string_insert_8_aligned): new functions
7651
7652         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7653
7654 2004-12-18  Havoc Pennington  <hp@redhat.com>
7655
7656         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7657         macro
7658
7659         * dbus/dbus-message.c: fix a comment, and add a still-unused
7660         not-implemented function
7661
7662         * dbus/dbus-marshal.h: fix comment
7663
7664         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7665
7666 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7667
7668         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7669         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7670         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7671         Type.UnderlyingSystemType to get the actual system type
7672         underneath.  This code previously depended on the broken Mono
7673         behavior, which was fixed in 1.1.3.
7674
7675 2004-11-27  Havoc Pennington  <hp@redhat.com>
7676
7677         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7678         are disabled
7679         (_dbus_string_get_const_data): inline when asserts are disabled
7680
7681         * dbus/dbus-message.c: record the _dbus_current_generation of
7682         creation so we can complain if dbus_shutdown() is used improperly.
7683         Do this only if checks are enabled.
7684
7685         * dbus/dbus-connection.c: ditto
7686         
7687 2004-11-26  Havoc Pennington  <hp@redhat.com>
7688
7689         * test/glib/test-profile.c: add with_bus mode to profile echoes
7690         that go through the bus.
7691
7692         * test/glib/run-test.sh: add ability to run test-profile
7693
7694         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7695         config file reload.
7696
7697 2004-11-26  Havoc Pennington  <hp@redhat.com>
7698
7699         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7700         thing was implemented
7701
7702 2004-11-26  Havoc Pennington  <hp@redhat.com>
7703
7704         * test/glib/test-profile.c: tweak a bit, add support for some
7705         made-up minimal malloc overhead with plain sockets, since in 
7706         real life some sort of buffers are unavoidable thus we could 
7707         count them in the theoretical best case
7708
7709 2004-11-26  Havoc Pennington  <hp@redhat.com>
7710
7711         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7712         where I was trying to cache one too many messages
7713
7714 2004-11-26  Havoc Pennington  <hp@redhat.com>
7715
7716         * dbus/dbus-message.c: reimplement message cache as an array which 
7717         makes the cache about twice as fast and saves maybe 1.5% overall
7718
7719 2004-11-26  Havoc Pennington  <hp@redhat.com>
7720
7721         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7722         message cache lock here
7723
7724 2004-11-26  Havoc Pennington  <hp@redhat.com>
7725
7726         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7727         the "char byte_order" next to each other to save 4 bytes
7728         (dbus_message_new_empty_header): reduce preallocation, since the
7729         message cache should achieve a similar effect
7730         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7731         message cache that keeps a few DBusMessage around in a pool,
7732         another 8% speedup or so.
7733
7734         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7735
7736 2004-11-25  Havoc Pennington  <hp@redhat.com>
7737
7738         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7739         to write, without reading or blocking, try it before the poll()
7740         and skip the poll() if nothing remains to write. This is about a
7741         3% speedup in the echo client/server
7742
7743 2004-11-25  Havoc Pennington  <hp@redhat.com>
7744
7745         The primary change here is to always write() once before adding
7746         the write watch, which gives us about a 10% performance increase.
7747         
7748         * dbus/dbus-transport-unix.c: a number of modifications to cope
7749         with removing messages_pending
7750         (check_write_watch): properly handle
7751         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7752         messages_pending stuff
7753         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7754         AUTHENTICATED cases
7755         (unix_handle_watch): after writing, see if the write watch can be
7756         removed
7757         (unix_do_iteration): assert that write_watch/read_watch are
7758         non-NULL rather than testing that they aren't, since they 
7759         aren't allowed to be NULL. check_write_watch() at the end so 
7760         we add the watch if we did not finish writing (e.g. got EAGAIN)
7761
7762         * dbus/dbus-transport-protected.h: remove messages_pending call,
7763         since it resulted in too much inefficient watch adding/removing; 
7764         instead we now require that the transport user does an iteration 
7765         after queueing outgoing messages, and after trying the first
7766         write() we add a write watch if we got EAGAIN or exceeded our 
7767         max bytes to write per iteration setting
7768
7769         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7770         function
7771
7772         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7773         freed and then accessed, valgrind flagged this bug, fix it
7774
7775         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7776         as the last valid field plus 1, where really it is equal to the
7777         last valid field. Corrects some message corruption issues.
7778
7779         * dbus/dbus-mainloop.c: verbosity changes
7780
7781         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7782         instead of aborting in one of the test codepaths
7783
7784         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7785         caused not printing the pid ever again if a verbose was missing
7786         the newline at the end
7787         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7788
7789         * dbus/dbus-connection.c: verbosity changes; 
7790         (dbus_connection_has_messages_to_send): new function
7791         (_dbus_connection_message_sent): no longer call transport->messages_pending
7792         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7793         try to write() immediately, so we can avoid the write watch. This
7794         is the core purpose of this patchset
7795         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7796         dump the outgoing message queue, so nobody will get confused
7797         trying to send them or thinking stuff is pending to be sent
7798
7799         * bus/test.c: verbosity changes
7800
7801         * bus/driver.c: verbosity/assertion changes
7802
7803         * bus/dispatch.c: a bunch of little tweaks to get it working again
7804         because this patchset changes when/where you need to block.
7805
7806 2004-11-23  Havoc Pennington  <hp@redhat.com>
7807
7808         * test/glib/test-profile.c: modify to accept a plain_sockets
7809         argument in which case it will bench plain sockets instead of
7810         libdbus, for comparison purposes.
7811
7812 2004-11-22  Havoc Pennington  <hp@redhat.com>
7813
7814         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7815         threads for more time, so sysprof can get a grip on it.
7816
7817         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7818         pointless variable
7819
7820 2004-11-13  Havoc Pennington  <hp@redhat.com>
7821
7822         * test/glib/test-profile.c: fix this thing up a bit
7823
7824         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7825         preallocation sizes by a fair bit; not sure if this will be an
7826         overall performance win or not, but it does reduce reallocs.
7827
7828         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7829         the test hack that forced constant realloc if asserts are
7830         disabled, so we can profile sanely. Sprinkle in some
7831         _DBUS_UNLIKELY() which are probably pointless, but before I
7832         noticed the real performance problem I put them in.
7833         (_dbus_string_validate_utf8): micro-optimize this thing a little
7834         bit, though callgrind says it didn't help; then special-case
7835         ascii, which did help a lot; then be sure we detect nul bytes as
7836         invalid, which is a bugfix.
7837         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7838         superstition; use memset to nul the padding instead of a manual
7839         loop.
7840         (_dbus_string_get_length): inline this as a
7841         macro; it showed up in the profile because it's used for loop
7842         tests and so forth
7843
7844 2004-11-10  Colin Walters  <walters@verbum.org>
7845
7846         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7847         for extra paranoia.
7848
7849 2004-11-09  Colin Walters  <walters@verbum.org>
7850
7851         * dbus/dbus-string.c (_dbus_string_get_length): New
7852         function, writes DBusString to C buffer.
7853
7854         * dbus/dbus-string.h: Prototype it.
7855
7856         * dbus/dbus-message.c (dbus_message_type_to_string): New
7857         function, converts message type into C string.
7858
7859         * dbus/dbus-message.h: Prototype it.
7860
7861         * bus/selinux.c (bus_selinux_check): Take source pid,
7862         target pid, and audit data.  Pass audit data to
7863         avc_has_perm.
7864         (log_audit_callback): New function, appends extra
7865         audit information.
7866         (bus_selinux_allows_acquire_service): Also take
7867         service name, add it to audit data.
7868         (bus_selinux_allows_send): Also take message
7869         type, interface, method member, error name,
7870         and destination, and add them to audit data.
7871         (log_cb): Initialize func_audit.
7872         
7873         * bus/selinux.h (bus_selinux_allows_acquire_service)
7874         (bus_selinux_allows_send): Update prototypes 
7875
7876         * bus/services.c (bus_registry_acquire_service): Pass
7877         service name to bus_selinux_allows_acquire_service.
7878
7879         * bus/bus.c (bus_context_check_security_policy): Pass
7880         additional audit data.  Move assignment of dest
7881         to its own line.
7882
7883 2004-11-07  Colin Walters  <walters@verbum.org>
7884
7885         * dbus/dbus-transport-unix.c (do_authentication): Always
7886         initialize auth_completed.
7887         
7888 2004-11-07  Colin Walters  <walters@verbum.org>
7889
7890         * bus/bus.c (load_config): Break into three
7891         separate functions: process_config_first_time_only,
7892         process_config_every_time, and process_config_postinit.
7893         (process_config_every_time): Move call of
7894         bus_registry_set_service_context_table into
7895         process_config_postinit.
7896         (process_config_postinit): New function, does
7897         any processing that needs to happen late
7898         in initialization (and also on reload).
7899         (bus_context_new): Instead of calling load_config,
7900         open config parser here and call process_config_first_time_only
7901         and process_config_every_time directly.  Later, after
7902         we have forked but before changing UID,
7903         invoke bus_selinux_full_init, and then call
7904         process_config_postinit.
7905         (bus_context_reload_config): As in bus_context_new,
7906         load parse file inside here, and call process_config_every_time
7907         and process_config_postinit.
7908
7909         * bus/services.h, bus/services.c
7910         (bus_registry_set_service_context_table): Rename
7911         from bus_registry_set_sid_table.  Take string hash from config
7912         parser, and convert them here into SIDs.
7913
7914         * bus/config-parser.c (struct BusConfigParser): Have
7915         config parser only store a mapping of service->context
7916         string.
7917         (merge_service_context_hash): New function.
7918         (merge_included): Merge context string hashes instead
7919         of using bus_selinux_id_table_union.
7920         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7921         simply create a new string hash.
7922         (bus_config_parser_unref): Unref it.
7923         (start_selinux_child): Simply insert strings into hash,
7924         don't call bus_selinux_id_table_copy_over.
7925
7926         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7927         (bus_selinux_id_table_copy_over): Delete.
7928
7929 2004-11-03  Colin Walters  <walters@verbum.org>
7930
7931         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7932         variables.
7933         
7934 2004-11-03  Colin Walters  <walters@verbum.org>
7935
7936         * bus/test-main.c (test_pre_hook): Fix test logic,
7937         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7938
7939 2004-11-02  Colin Walters  <walters@redhat.com>
7940
7941         * bus/selinux.c (bus_selinux_init): Split into two functions,
7942         bus_selinux_pre_init and bus_selinux_post_init.
7943         (bus_selinux_pre_init): Just determine whether SELinux is
7944         enabled.
7945         (bus_selinux_post_init): Do everything else.
7946
7947         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7948         config file, and bus_selinux_post_init after.  This ensures that
7949         we don't lose the policyreload notification thread that
7950         bus_selinux_init created before forking previously.
7951         
7952         * bus/test-main.c (test_pre_hook): Update for split.
7953
7954 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7955
7956         Patch from Johan Fischer <linux@fischaz.com>
7957         
7958         * mono/doc/Makefile.am (install-data-local): Added directory
7959         install for DESTDIR
7960
7961 2004-10-29  Colin Walters  <walters@redhat.com>
7962
7963         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7964         parameter for fd to write pid to.       
7965
7966         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7967         
7968         * bus/bus.c (bus_context_new): Pass print_pid_fd
7969         to _dbus_become_daemon (bug #1720)
7970
7971 2004-10-29  Colin Walters  <walters@redhat.com>
7972
7973         Patch from Ed Catmur <ed@catmur.co.uk>
7974
7975         * mono/doc/Makefile.am (install-data-local): Handle
7976         DESTDIR.
7977
7978 2004-10-29  Colin Walters  <walters@redhat.com>
7979
7980         * bus/.cvsignore, qt/.cvsignore: Update.
7981
7982 2004-10-29  Colin Walters  <walters@redhat.com>
7983
7984         Patch from Kristof Vansant <de_lupus@pandora.be>
7985
7986         * configure.in: Detect Slackware.
7987         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7988         * bus/rc.messagebus.in: New file.
7989
7990 2004-10-29  Colin Walters  <walters@redhat.com>
7991
7992         * tools/dbus-monitor.c (filter_func): Return
7993         DBUS_HANDLER_RESULT_HANDLED in filter function
7994         for now.  See:
7995         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7996
7997 2004-10-29  Colin Walters  <walters@redhat.com>
7998
7999         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
8000
8001         * bus/services.c (bus_registry_acquire_service): 
8002         Correctly retrieve service name from DBusString
8003         for printing.
8004
8005 2004-10-29  Colin Walters  <walters@redhat.com>
8006
8007         * dbus/dbus-glib.h: Update documentation to not
8008         refer to internal APIs.
8009
8010 2004-10-27  Joe Shaw  <joeshaw@novell.com>
8011
8012         * mono/Arguments.cs (GetDBusTypeConstructor):
8013         type.UnderlyingSystemType will return "System.Byte" if you do it
8014         on "byte[]", which is not what we want.  So check the type.IsArray
8015         property and use System.Array instead.
8016
8017 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
8018
8019         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
8020         the DBusUserInfo structure since this is passed into the function.
8021         This would cause a double free when the function that allocated
8022         the structure would try to free it when an error occured.
8023
8024         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
8025         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
8026         for service activation to avoid 32bit/64bit parallel install issues
8027
8028 2004-10-21  Colin Walters  <walters@verbum.org>
8029
8030         * AUTHORS: Fix my email address, the @gnu.org one
8031         has been bouncing for some time.  Also add J5.
8032         
8033 2004-10-21  Colin Walters  <walters@verbum.org>
8034
8035         * dbus/dbus-transport-unix.c (do_authentication): Return
8036         authentication status to callers.
8037         (unix_handle_watch): If we completed authentication this round,
8038         don't do another read.  Instead wait until the next iteration,
8039         after we've read any pending data in the auth buffer.
8040         (unix_do_iteration): Ditto.
8041         (unix_handle_watch): Updated for new do_authentication prototype.
8042
8043 2004-10-18  Colin Walters  <walters@verbum.org>
8044
8045         * bus/selinux.c (bus_selinux_enabled): Handle
8046         --disable-selinux case.
8047         
8048 2004-10-18  Colin Walters  <walters@verbum.org>
8049
8050         * bus/selinux.h: Add bus_selinux_enabled.
8051         
8052         * bus/selinux.c (bus_selinux_enabled): Implement it.
8053         
8054         * bus/config-parser.c (struct include): Add
8055         if_selinux_enabled member.
8056         (start_busconfig_child): Parse if_selinux_enabled
8057         attribute for include.
8058         (bus_config_parser_content): Handle it.
8059
8060         * bus/session.conf.in, bus/system.conf.in: Add
8061         inclusion of context mapping to default config files;
8062         conditional on SELinux being enabled.
8063         
8064         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
8065         
8066         * test/data/invalid-config-files/badselinux-1.conf, 
8067         test/data/invalid-config-files/badselinux-2.conf:
8068         Test files for bad syntax.
8069         
8070 2004-10-17  Colin Walters  <walters@verbum.org>
8071
8072         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
8073         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
8074         format specifier mismatches.
8075
8076 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8077
8078         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
8079         format string.
8080
8081         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
8082         pointer (bug #1540, Leonardo Boiko).
8083
8084 2004-09-28  Jon Trowbridge  <trow@ximian.com>
8085
8086         * mono/BusDriver.cs: Changed BusDriver struct to remove
8087         the ServiceCreated and ServiceDeleted events and replace them
8088         with the new ServiceOwnerChanged event.
8089
8090         * mono/example/BusListener.cs: Added a new example program,
8091         which listens for and reports any ServiceOwnerChanged events
8092         on the bus driver.
8093
8094         * mono/example/Makefile.am (DESTDIR): Build changes for the
8095         new BusListener.cs example.
8096
8097 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8098
8099         * bus/signals.c (bus_match_rule_parse): validate the components of
8100         match rules (bug #1439).
8101
8102         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
8103
8104 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8105
8106         * doc/dbus-specification.xml: document ServiceOwnerChanged
8107         signal.
8108         
8109         * bus/driver.c, bus/driver.h, bus/services.c: Use
8110         ServiceOwnerChanged signal instead of ServiceCreated and
8111         ServiceDeleted.
8112         
8113         * bus/dispatch.c: update testcase for the new signal.
8114
8115 2004-09-20  Jon Trowbridge  <trow@ximian.com>
8116
8117         Patch from Nat Friedman <nat@novell.com>
8118
8119         * mono/Makefile.am: A number of small build fixes to allow "make
8120         distcheck" to succeed.
8121
8122         * mono/example/Makefile.am: "make distcheck" fixes.
8123
8124         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
8125         key in @srcdir@.
8126
8127         * test/Makefile.am: "make distcheck" fixes.
8128
8129 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8130
8131         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
8132
8133         * doc/busconfig.dtd: update the DTD for the at_console attribute.
8134
8135         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
8136         messages after the first one (bug #1389).
8137         
8138         * bus/dispatch.c (check_double_hello_message): add a test case for
8139         the double hello message bug.
8140         (check_existent_service_activation): fix check of spawning error.
8141         
8142 2004-09-16  David Zeuthen  <david@fubar.dk>
8143
8144         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
8145
8146 2004-09-12  David Zeuthen  <david@fubar.dk>
8147
8148         Patch from Kay Sievers <kay.sievers@vrfy.org>
8149
8150         * bus/bus.c (bus_context_new):
8151         * bus/bus.h:
8152         * bus/main.c (usage)
8153         (main):
8154         Add commandline option --nofork to override configuration file
8155         setting.
8156
8157 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8158
8159         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
8160         compilers don't like it (bug #974).
8161
8162 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
8163
8164         * qt/connection.*: Applied patch by Jérôme Lodewyck
8165         <lodewyck@clipper.ens.fr> to integrate an existing
8166         connection into the Qt eventloop
8167
8168 2004-08-30  Jon Trowbridge  <trow@ximian.com>
8169
8170         * mono/BusDriver.cs: Added.  This is a class for interacting with
8171         the org.freedesktop.DBus service.
8172
8173         * mono/Message.cs: Added a mechanism to expose the message that is
8174         currently being dispatched via the static Message.Current
8175         property.  Added Message.Sender and Message.Destination
8176         properties.
8177
8178         * mono/Handler.cs: Expose the dispatched message via
8179         Message.Current when handling method calls.
8180
8181         * mono/Service.cs: Expose the dispatched message via
8182         Message.Current when handling signal emissions.
8183         
8184         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
8185         Connection.BaseService property.
8186
8187 2004-08-28  Havoc Pennington  <hp@redhat.com>
8188
8189         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
8190
8191         More fixes from Steve Grubb
8192         
8193         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
8194         (_dbus_listen_tcp_socket): fix fd leak
8195
8196         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
8197         EINTR to a bit lower in the code
8198
8199 2004-08-26  Jon Trowbridge  <trow@ximian.com>
8200
8201         * bus/driver.c (bus_driver_handle_service_exists): Respond with
8202         TRUE if we are inquiring about the existence of the built-in
8203         org.freedesktop.DBus service.
8204
8205 2004-08-25  John Palmieri  <johnp@redhat.com>
8206         * bus/config-parser.c:
8207         (struct PolicyType): Add POLICY_CONSOLE
8208         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
8209         (start_busconfig_child): Sets up console element when
8210         <policy at_console=""> is encountered in a policy file
8211         (append_rule_from_element): Convert console elements to console
8212         rules.
8213
8214         * bus/policy.c: 
8215         (bus_policy_create_client_policy): Add console rules to the client
8216         policy based on if the client is at the console
8217         (bus_policy_append_console_rule): New function for adding a
8218         console rule to a policy
8219         (bus_policy_merge): Handle console rule merging
8220
8221         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
8222         where we check for console user files
8223         
8224         * dbus/dbus-sysdeps.c:
8225         (_dbus_file_exists): New function which checks if the given
8226         file exists
8227         (_dbus_user_at_console): New function which does the system
8228         specific process of checking if the user is at the console
8229
8230         * dbus/dbus-userdb.c:
8231         (_dbus_is_console_user): New function converts a UID to user name
8232         and then calls the system specific _dbus_user_at_console to 
8233         see if the user is at the console and therefor a console user
8234
8235 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8236
8237         * bus/config-parser.c (set_limit):
8238         * bus/dbus-daemon-1.1.in:
8239         * test/data/valid-config-files/many-rules.conf: set the
8240         max_match_rules_per_connection limt from the config file. 
8241
8242         * doc/busconfig.dtd: update the DTD.
8243
8244         * bus/driver.c: remove some unused variables.
8245
8246 2004-08-24  Mikael Hallendal  <micke@imendio.com>
8247
8248         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
8249         it's been replaced by dbus_g_bus_get
8250
8251 2004-08-23  Colin Walters  <walters@redhat.com>
8252
8253         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8254
8255         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
8256
8257         * bus/selinux.c: Create a thread for policy reload notification.
8258         (bus_selinux_get_policy_root): Implement.
8259
8260         * bus/config-parser.c (start_busconfig_child)
8261         (bus_config_parser_content): Support SELinux-root relative
8262         inclusion.
8263
8264         * configure.in <HAVE_SELINUX>: Add -lpthread.
8265         
8266         * bus/test-main.c (test_pre_hook, test_post_hook): New.
8267         (test_post_hook): Move memory checking into here.
8268         (test_pre_hook, test_post_hook): Move SELinux checks in
8269         here, but conditional on a DBUS_TEST_SELINUX environment
8270         variable.  Unfortunately we can't run the SELinux checks
8271         as a normal user, since they won't have any permissions
8272         for /selinux.  So this will have to be tested manually
8273         for now, until we have virtualization for most of
8274         libselinux.
8275         
8276 2004-08-23  Havoc Pennington  <hp@redhat.com>
8277
8278         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
8279         drop supplementary groups, suggested by Steve Grubb
8280
8281 2004-08-20  Colin Walters  <walters@redhat.com>
8282
8283         * bus/config-parser.c (start_busconfig_child): Remove some unused
8284         variables.
8285         
8286         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
8287         warning.
8288
8289 2004-08-17  Joe Shaw  <joeshaw@novell.com>
8290
8291         * configure.in: If --enable-mono is passed in, if we can't find
8292         mono error out.
8293
8294         * mono/Makefile.am: Use /gacutil to install assemblies into the
8295         GAC and not /root.
8296
8297 2004-08-12  Havoc Pennington  <hp@redhat.com>
8298
8299         * NEWS: update for 0.22
8300
8301         * configure.in: release 0.22
8302
8303 2004-08-11  Colin Walters  <walters@redhat.com>
8304
8305         * tools/dbus-send.c (main, usage): Add --reply-timeout
8306         argument.
8307
8308 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8309
8310         * bus/bus.c (process_config_first_time_only): get rid of an unused
8311         DBusError that was causing a memoy leak (bug #989).
8312
8313         * dbus/dbus-keyring.c, dbus/dbus-message.c:
8314         fix compilation on Solaris/Forte C (bug #974)
8315
8316         * bus/main.c (main): plug two minuscule memleaks.
8317
8318 2004-08-10  Havoc Pennington  <hp@redhat.com>
8319
8320         * doc/dbus-tutorial.xml: add some more info on GLib bindings
8321
8322 2004-08-09  Havoc Pennington  <hp@redhat.com>
8323
8324         * COPYING: switch to Academic Free License version 2.1 instead of
8325         2.0, to resolve complaints about patent termination clause.
8326
8327 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
8328
8329         * README: added documentation for the --enable-python 
8330         configure switch.
8331
8332 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8333
8334         * bus/config-parser.c (bus_config_parser_new): fix an invalid
8335         _unref in the SELinux support.
8336
8337         * doc/busconfig.dtd: update DTD for SELinux support.
8338
8339         * bus/config-loader-libxml.c: fix error handler and parser
8340         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8341
8342         * configure.in: remove the warning about libxml2.
8343
8344         * dbus/dbus-bus.c: silence doxygen warning.
8345
8346 2004-07-31  Colin Walters  <walters@redhat.com>
8347
8348         * configure.in: Move #error in SELinux check to its own line.
8349
8350 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8351
8352         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8353         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8354         dbus_error_set.
8355
8356         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8357         broken by the change in the _SET_OOM macros.
8358
8359 2004-07-31  Colin Walters  <walters@redhat.com>
8360
8361         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8362         BUS_SET_OOM.
8363
8364 2004-07-31  Colin Walters  <walters@redhat.com>
8365
8366         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8367         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8368         AC_MSG_CHECKING.
8369
8370 2004-07-24  Havoc Pennington  <hp@redhat.com>
8371
8372         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8373
8374         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8375         functionality
8376
8377         * configure.in: add --enable-selinux
8378         
8379         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8380
8381         * bus/main.c (main): initialize and shut down selinux
8382
8383         * bus/connection.c: store SELinux ID on each connection, to avoid 
8384         repeated getting of the string context and converting it into 
8385         an ID
8386
8387         * bus/bus.c (bus_context_get_policy): new accessor, though it
8388         isn't used
8389         (bus_context_check_security_policy): check whether the security
8390         context of sender connection can send to the security context of
8391         recipient connection
8392
8393         * bus/config-parser.c: add parsing for <selinux> and <associate>
8394         
8395         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8396         implement dbus_connection_get_unix_fd()
8397
8398         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8399         function, used by the selinux stuff
8400         
8401 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8402
8403         * bus/config-loader-libxml.c: complete the implementation of
8404         libxml backend for config file loader. Doesn't work with full OOM
8405         test yet. 
8406         
8407         * configure.in: change error when selecting libxml into a warning.
8408         
8409         * test/data/invalid-config-files: add two non-well-formed XML
8410         files. 
8411         
8412         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8413         
8414         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8415         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8416         be necessary to read all the buffer. (bug #894)
8417
8418         * bus/activation.c (bus_activation_activate_service): fix a
8419         potential assertion failure (bug #896). Small optimization in the
8420         case of auto-activation messages.
8421
8422         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8423         add test case for byte-through-vararg bug (#901). patch by Kimmo
8424         Hämäläinen. 
8425
8426 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8427
8428         * python/dbus.py:
8429         * python/dbus_bindings.pyx.in:
8430         Add dbus.init_gthreads (), allow emit_signal to pass
8431         arguments to the signal.
8432         
8433 2004-07-24  Havoc Pennington  <hp@redhat.com>
8434
8435         * AUTHORS: add some people, not really comprehensively, let me
8436         know if I missed you
8437
8438 2004-07-24  Havoc Pennington  <hp@redhat.com>
8439
8440         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8441         Owen
8442
8443         * test/Makefile.am (DIST_SUBDIRS): here also
8444
8445 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8446
8447         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8448         breaking build on Solaris, reported by Farhad Saberi on the ML.
8449
8450         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8451         va_arg invocation to account for integer promotion in the case of
8452         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8453
8454         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8455         _dbus_list_get_first_link, not _dbus_list_get_first.
8456
8457         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8458
8459         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8460         handler functions so that the asserts in _dbus_object_subtree_unref
8461         do not fail.
8462
8463         * dbus/dbus-transport-unix.c (do_reading):
8464         _dbus_transport_queue_messages return value is of type
8465         dbus_bool_t, not DBusDispatchStatus.
8466         
8467 2004-07-19  David Zeuthen  <david@fubar.dk>
8468
8469         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8470
8471         * bus/dispatch.c:
8472         (check_get_connection_unix_user): Debug says GetProperty; but the
8473         method is called GetConnectionUnixUser
8474         (check_get_connection_unix_process_id): New function
8475         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8476         also call check_get_connection_unix_process_id()
8477         
8478         * bus/driver.c:
8479         (bus_driver_handle_get_connection_unix_process_id): New function,
8480         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8481         interface
8482         
8483         * dbus/dbus-auth.c:
8484         (handle_server_data_external_mech): Set pid from the credentials
8485         obtained from the socket
8486         
8487         * dbus/dbus-connection.c:
8488         (dbus_connection_get_unix_process_id): New function
8489         
8490         * dbus/dbus-connection.h: 
8491         Add prototype for dbus_connection_get_unix_process_id
8492         
8493         * dbus/dbus-transport.c:
8494         (_dbus_transport_get_unix_process_id): New function
8495         
8496         * dbus/dbus-transport.h:
8497         Add prototype for _dbus_transport_get_unix_process_id
8498         
8499 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8500
8501         * dbus/dbus-message.c: Message counter fix, patch by Christian
8502         Hammond <chipx86@gnupdate.org>
8503
8504 2004-07-18  Seth Nickell  <seth@gnome.org>
8505
8506         * python/dbus.py:
8507         * python/dbus_bindings.pyx.in:
8508         * python/tests/test-client.py:
8509
8510         Add dbus.ByteArray and dbus_bindings.ByteArray
8511         types so that byte streams can be passed back.
8512
8513         Give jdahlin the heaps of credit that are so
8514         rightfully his.
8515         
8516 2004-07-12  Seth Nickell  <seth@gnome.org>
8517
8518         * python/dbus.py:
8519
8520         Add message argument to the default object_method_handler
8521         function.
8522         
8523         * python/dbus_bindings.pyx.in:
8524
8525         Automatically return NIL when passed an empty list
8526         (we can't pass back a list since lists are typed
8527         and we don't have any idea what type the the client
8528         intended the list to be... :-( )
8529         
8530 2004-07-10  Seth Nickell  <seth@gnome.org>
8531
8532         * python/examples/Makefile.am:
8533
8534         Fix distcheck breakage caused by new examples.
8535
8536 2004-07-10  Seth Nickell  <seth@gnome.org>
8537
8538         * python/dbus.py:
8539
8540         Add "message" argument to service-side dbus.Object
8541         methods. This will break existing services written
8542         using the python bindings, but will allow extraction
8543         of all the message information (e.g. who its from).
8544
8545         Add improved "object oriented" signal handling/emission.
8546         
8547         * python/examples/example-service.py:
8548
8549         Nix this example.
8550         
8551         * python/examples/example-signal-emitter.py:
8552         * python/examples/example-signal-recipient.py:
8553
8554         Two new examples that show how to emit and receive
8555         signals using the new APIs.
8556         
8557         * python/examples/example-signals.py:
8558         * python/examples/gconf-proxy-service.py:
8559         * python/examples/gconf-proxy-service2.py:
8560
8561         Add "message" argument to service methods.
8562
8563 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8564
8565         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8566         * dbus/bus.c (dbus_bus_get_unix_user)
8567         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8568         method of org.freedesktop.DBus interface.
8569
8570         * bus/dispatch.c: test case
8571
8572 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8573
8574         * python/Makefile.am: switched include directory from glib/ to dbus/
8575         since dbus-glib.h moved
8576  
8577 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8578
8579         * configure.in: prevent building the gcj stuff and libxml loader
8580         since they are broken.
8581
8582 2004-06-20  Havoc Pennington  <hp@redhat.com>
8583
8584         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8585         codes from the dbus error names
8586         
8587         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8588         as dbus/dbus-glib.h and that breakage is now visible due to 
8589         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8590         
8591         * glib/dbus-glib.h: s/gproxy/g_proxy/
8592
8593         * dbus/dbus-shared.h: new header to hold stuff shared with
8594         binding APIs
8595         
8596         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8597         than dbus-errors.h
8598
8599         * glib/dbus-glib.h (dbus_set_g_error): move to
8600         dbus-glib-lowlevel.h
8601
8602         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8603         of stuff to enable this
8604
8605         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8606
8607         * a bunch of other changes with the same basic "separate glib 
8608         bindings from dbus.h" theme
8609         
8610 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8611
8612         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8613
8614         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8615
8616 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8617
8618         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8619         the reply value of the ServiceExists message.
8620
8621 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8622
8623         * python/dbus_bindings.pyx.in: No longer need to parse path
8624         elements and pass them as arrays of strings.  The C API now
8625         accepts plain path strings.
8626         (_build_parsed_path): removed 
8627
8628 2004-06-07  Havoc Pennington  <hp@redhat.com>
8629
8630         * doc/TODO: remove auto-activation item since it's done; sort
8631         items by importance/milestone
8632
8633 2004-06-07  Havoc Pennington  <hp@redhat.com>
8634
8635         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8636         random signature when using REQUIRED_FIELDS (this hack won't work
8637         in the long term)
8638
8639         * dbus/dbus-message.c: change the signature to be a header field,
8640         instead of message->signature special-case string. Incremental
8641         step forward. Then we can fix up code to send the signature in the
8642         message, then fix up code to validate said signature, then fix up
8643         code to not put the typecodes inline, etc.
8644         (load_one_message): don't make up the signature after the fact
8645         (decode_header_data): require signature field for the known
8646         message types
8647
8648         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8649
8650         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8651
8652 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8653
8654         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8655
8656         * mono/Handler.cs: Updated to follow new path argument for
8657         (un-)registering objects.
8658
8659         * mono/example/Makefile.am:
8660         * mono/Makefile.am:
8661         * configure.in: Bumped required version for mono and use new -pkg
8662         syntax for deps
8663
8664 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8665
8666         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8667         registration functions take the path argument as char* instead of
8668         char**.
8669
8670         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8671         split off the path decompostion part of
8672         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8673         warnings. 
8674
8675         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8676         
8677 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8678  
8679         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8680         machine approach.  A state is implemented as a function that
8681         handles incoming events as specified for that state.
8682         
8683         * doc/dbus-specification.xml: Update auth protocol state machine
8684         specification to match implementation.  Remove some leftover
8685         base64 examples.
8686
8687 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8688
8689         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8690         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8691         quiet doxygen.
8692
8693         * Doxyfile.in: remove deprecated options.
8694
8695         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8696         glib/test-thread.h, glib/test-thread-client.c,
8697         glib/test-thread-server.c, glib/test-profile.c,
8698         glib/test-dbus-glib.c: remove these unused files.
8699
8700 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8701
8702         * dbus/dbus-object-tree.c
8703         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8704         non-fallback handlers (bug #684).
8705         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8706         (find_subtree_recurse): report wether the returned subtree is an
8707         exact match or a "fallback" match higher up in the tree.
8708         (object_tree_test_iteration): update test case.
8709
8710 2004-06-01  Seth Nickell  <seth@gnome.org>
8711
8712         * python/dbus_bindings.pyx.in:
8713         * python/tests/test-client.py:
8714
8715         Round off basic type support. Add dicts (yay!), and 
8716         remaining array types.
8717
8718         Make MessageIter more general so it works for dicts too.
8719
8720         Mark all loop variables as C integers.
8721         
8722 2004-05-31  Havoc Pennington  <hp@redhat.com>
8723
8724         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8725         "in" before "out"
8726
8727         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8728
8729         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8730         option that runs the tests, and start filling in some code
8731         including for starters just dumping the interfaces to stdout
8732
8733         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8734
8735         * test/data/valid-introspection-files/lots-of-types.xml: test of
8736         an example introspection file
8737
8738         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8739         "node" (I think...)
8740
8741 2004-05-31  Seth Nickell  <seth@gnome.org>
8742
8743         * python/dbus_bindings.pyx.in:
8744         * python/tests/test-client.py:
8745
8746         Test Suite: 1
8747         Python Bindings: 0
8748
8749         Fix string array memory trashing bug... oops...
8750
8751 2004-05-30  Seth Nickell  <seth@gnome.org>
8752
8753         * python/dbus.py:
8754
8755         Add a nicer-but-less-flexible alternate API for handling 
8756         calls to virtual objects in dbus.ObjectTree.
8757
8758         Screw up the argument order to the dbus.Object constructor
8759         for consistency with dbus.ObjectTree (and to make dbus_methods
8760         optional for future extension)
8761         
8762         * python/examples/Makefile.am:
8763         * python/examples/gconf-proxy-service.py:
8764         * python/examples/gconf-proxy-service2.py:
8765
8766         Alternate implementation of gconf-proxy-service using the
8767         nicer dbus.ObjectTree API.
8768         
8769         * python/examples/example-service.py:
8770         * python/tests/test-server.py
8771
8772         Reverse the argument order to deal with dbus.Object constructor
8773         changes.
8774         
8775 2004-05-30  Seth Nickell  <seth@gnome.org>
8776
8777         * python/examples/example-client.py:
8778         * python/examples/example-service.py:
8779
8780         Take it back. Lists seem to work but they're broken
8781         in the test suite. Make the base examples use
8782         lists (works fine).
8783
8784 2004-05-30  Seth Nickell  <seth@gnome.org>
8785
8786         * python/dbus_bindings.pyx.in:
8787         * python/tests/test-client.py:
8788
8789         Add some more tests and fix errors that crop up.
8790         Unfortunately, currently it seems like marshalling
8791         and unmarshalling of lists is completely broken :-(
8792
8793 2004-05-30  Seth Nickell  <seth@gnome.org>
8794
8795         * python/dbus_bindings.pyx.in:
8796
8797         Add support for ObjectPath type.
8798
8799         * python/dbus.py:
8800
8801         Refactor message handling code to a common function.
8802         
8803         * python/tests/test-client.py:
8804         * python/tests/test-server.py:
8805
8806         Add tests that check to make sure values of all types
8807         can be echoed from a service w/o mangling.
8808         
8809 2004-05-29  Seth Nickell  <seth@gnome.org>
8810
8811         * python/dbus.py:
8812
8813         Add ObjectTree class which allows implementation
8814         of trees of "virtual" objects. Basically the python
8815         wrapper for "register_fallback".
8816         
8817         * python/examples/Makefile.am
8818         * python/examples/gconf-proxy-client.py:
8819         * python/examples/gconf-proxy-service.py:
8820
8821         Implement a simple GConf proxy service that supports
8822         get/set on string and int GConf keys using the ObjectTree.
8823         
8824 2004-05-29  Seth Nickell  <seth@gnome.org>
8825
8826         * python/dbus.py:
8827         * python/examples/example-client.py:
8828         * python/examples/example-service.py:
8829         * python/examples/list-system-services.py:
8830
8831         Add SessionBus, SystemBus and ActivationBus classes
8832         so you don't need to know the special little BUS_TYPE
8833         flag.
8834         
8835 2004-05-29  Havoc Pennington  <hp@redhat.com>
8836
8837         * bus/config-parser.c (process_test_valid_subdir): temporarily
8838         stop testing config parser OOM handling, since expat has issues
8839         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8840
8841         * bus/dbus-daemon-1.1.in: change requested_reply to
8842         send_requested_reply/receive_requested_reply so we can send the
8843         replies, not just receive them.
8844
8845         * bus/config-parser.c: parse the new
8846         send_requested_reply/receive_requested_reply
8847
8848         * bus/policy.c (bus_client_policy_check_can_send): add
8849         requested_reply argument and use it
8850
8851         * bus/bus.c (bus_context_check_security_policy): pass through
8852         requested_reply status to message send check
8853
8854         * bus/system.conf.in: adapt to requested_reply change
8855         
8856 2004-05-28  Havoc Pennington  <hp@redhat.com>
8857
8858         * test/glib/test-service-glib.c (main): remove unused variable
8859
8860         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8861
8862         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8863         from the enum, no longer in use.
8864
8865         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8866         works right.
8867
8868         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8869         whether error_name passed in is a valid error name.
8870
8871 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8872
8873         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8874         OBJECT_PATH and OBJECT_PATH_ARRAY
8875
8876 2004-05-28  Seth Nickell  <seth@gnome.org>
8877
8878         * python/examples/Makefile.am:
8879
8880         Forget to add Makefile.am. Do not pass go.
8881
8882 2004-05-28  Michael Meeks  <michael@ximian.com>
8883
8884         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8885         fix no int64 case.
8886
8887         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8888
8889         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8890         (_dbus_message_iter_get_basic_type_array): impl.
8891         drastically simplify ~all relevant _get methods to use these.
8892         (_dbus_message_iter_append_basic_array),
8893         (dbus_message_iter_append_basic): impl
8894         drastically simplify ~all relevant _append methods to use these.
8895
8896         * dbus/dbus-message-builder.c (parse_basic_type) 
8897         (parse_basic_array, lookup_basic_type): impl.
8898         (_dbus_message_data_load): prune scads of duplicate /
8899         cut & paste coding.
8900
8901         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8902         (_dbus_demarshal_basic_type): implement,
8903         (demarshal_and_validate_len/arg): beef up debug.
8904         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8905
8906 2004-05-27  Seth Nickell  <seth@gnome.org>
8907
8908         * configure.in:
8909         * python/Makefile.am:
8910
8911         Include the example python apps in the tarball.
8912         
8913         * python/examples/list-system-services.py
8914
8915         Add a python new example that fetches the list of services
8916         from the system bus.
8917         
8918 2004-05-27  Seth Nickell  <seth@gnome.org>
8919
8920         * python/dbus.py:
8921         * python/dbus_bindings.pyx.in:
8922
8923         Fix failure to notify that a signal was not handled,
8924         resulted in hung functions.
8925         
8926 2004-05-25  Colin Walters  <walters@redhat.com>
8927
8928         * tools/dbus-monitor.c (main): Monitor all types of messages.
8929
8930 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8931
8932         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8933         which unregisters the object path and disposes the handler.
8934
8935 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8936  
8937         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8938          
8939         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8940         operands to && so we call dbus_message_iter_next () for the last
8941         argument also.
8942
8943 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8944
8945         * dbus/dbus-object-tree.c
8946         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8947         children even if the requested path isn't registered.
8948         (object_tree_test_iteration): test object_tree_list_registered.
8949
8950         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8951         it to 0.
8952         
8953 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8954
8955         * doc/TODO: Remove resolved items.
8956
8957         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8958         field.
8959         
8960         * bus/connection.c (bus_connections_expect_reply): Enforce the
8961         per-connection limit on pending replies.
8962         
8963         Patch from Jon Trowbridge <trow@ximian.com>:
8964  
8965         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8966         up a watch that triggers a config reload when one end of the pipe
8967         becomes readable.
8968         (signal_handler): Instead of doing the config reload in our SIGHUP
8969         handler, just write to the reload pipe and let the associated
8970         watch handle the reload when control returns to the main loop.
8971  
8972         * bus/driver.c (bus_driver_handle_reload_config): Added.
8973         Implements a ReloadConfig method for requesting a configuration
8974         file reload via the bus driver.
8975  
8976 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8977
8978         * HACKING: Updated release instructions concerning the wiki page.
8979
8980 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8981
8982         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8983         filter against auth->allowed_mechs; we only add allowed mechs in
8984         record_mechanisms().
8985  
8986         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8987         ALLOWED_MECHS to auth-script format so we can set the list of
8988         allowed mechanisms.
8989  
8990         * data/auth/client-out-of-mechanisms.auth-script: New test to
8991         check client disconnects when it is out of mechanisms to try.
8992  
8993         * dbus/dbus-auth.c (process_command): Remove check for lines
8994         longer that 1 MB; we only buffer up maximum 16 kB.
8995  
8996         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8997         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8998         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8999         assume there might be unused bytes.
9000  
9001         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
9002         client-out-of-mechs, it is handled in process_reject(). Move check
9003         for max failures to send_rejected(), as it's a server-only thing.
9004
9005         * dbus/dbus-auth.c: Factor out protocol reply code into functions
9006         send_auth(), send_data(), send_rejected(), send_error(),
9007         send_ok(), send_begin() and send_cancel().
9008
9009 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
9010
9011         Remove base64 encoding, replace with hex encoding. Original patch
9012         from trow@ximian.com, added error handling.
9013
9014         * dbus/dbus-string.c (_dbus_string_base64_encode)
9015         (_dbus_string_base64_decode): Remove.
9016         (_dbus_string_hex_decode): Add end_return argument so we can
9017         distinguish between OOM and invalid hex encoding.
9018         (_dbus_string_test): Remove base64 tests and add test case for
9019         invalid hex.
9020
9021         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
9022         Replace base64 with hex.
9023
9024         * test/data/auth/invalid-hex-encoding.auth-script: New test case
9025         for invalid hex encoded data in auth protocol.
9026
9027 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9028
9029         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
9030         leak.
9031
9032 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
9033
9034         * mono/dbus-sharp.dll.config.in: Added for GAC
9035         * mono/dbus-sharp.snk: Added for GAC
9036         * mono/Assembly.cs.in: Added for GAC
9037         * mono/Makefile.am: Changes for GAC installation        
9038         * configure.in: Added refs for dbus-sharp.dll.config.in and
9039         Assembly.cs.in. More fixes for mono testing
9040         * mono/example/Makefile.am: Changed var to CSC
9041         * Makefile.am: Changed flag name to DBUS_USE_CSC
9042
9043 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
9044
9045         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
9046         * mono/doc/*: Added documentation framework
9047         * configure.in: Added monodoc check
9048         * README: Added description of mono configure flags
9049
9050 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
9051
9052         * doc/dbus-specification.xml: Added a "Required" column to the 
9053         header fields table and changed the "zero or more" verbage in
9054         the above paragraph to read "The header must contain the required 
9055         named header fields and zero or more of the optional named header 
9056         fields".
9057         * test/data/invalid-messages/*.message: Added the required PATH 
9058         named header field to the tests so that they don't fail on 
9059         'Missing path field'
9060
9061 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
9062
9063         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
9064         the stack by implicitly defining variable and parameter types and
9065         removing the hack of defining C pointers as python objects and later
9066         casting them.
9067
9068 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
9069
9070         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
9071
9072 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
9073
9074         * mono/DBusType/Dict.cs: Handle empty dicts
9075         * mono/DBusType/Array.cs: Handle empty arrays
9076         * mono/Arguments.cs: Handle empty arguments
9077
9078 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
9079
9080         * dbus-sharp.pc.in: Modified to include include Libs and Requires
9081         field
9082
9083 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
9084
9085         * test/data/valid-messages/standard-*.message: Update message
9086         test scripts to new header field names.
9087
9088 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
9089
9090         * test/break-loader.c (randomly_do_n_things): tracked down buffer
9091         overflow to times_we_did_each_thing array which would chop off the
9092         first character of the failure_dir string. Increased the size of
9093         the array to 7 to reflect the number of random mutation functions
9094         we have.
9095
9096 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
9097
9098         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
9099         unix_server->watch here, it is unreffed in disconnect.
9100         (_dbus_server_new_for_tcp_socket): convert NULL host to
9101         "localhost" here so we don't append NULL to address.
9102         
9103         * dbus/dbus-server.c (_dbus_server_test): Add test case for
9104         various addresses, including tcp with no explicit host.
9105
9106 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9107
9108         * dbus/dbus-message.c (decode_header_data, decode_string_field):
9109         fix incorrect setting of .name_offset in the HeaderField (it was
9110         off by two bytes, positioned right after the name and typecode)
9111
9112         * bus/bus.c (bus_context_new, bus_context_unref): test before
9113         calling dbus_server_free_data_slot and _dbus_user_database_unref
9114         in case of an error.
9115
9116         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
9117         by libdbus-gtool.
9118
9119 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
9120
9121         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
9122         _dbus_poll() instead of select().
9123
9124 2004-04-15  Jon Trowbridge  <trow@ximian.com>
9125
9126         * bus/main.c (signal_handler): Reload the configuration files
9127         on SIGHUP.
9128         (main): Set up our SIGHUP handler.
9129
9130         * bus/bus.c (struct BusContext): Store the config file, user and
9131         fork flag in the BusContext.
9132         (process_config_first_time_only): Added.  Contains the code
9133         (previously in bus_context_new) for setting up the BusContext from
9134         the BusConfigParser that should only be run the first time the
9135         config files are read.
9136         (process_config_every_time): Added.  Contains the code (previously
9137         in bus_context_new) for setting up the BusContext from the
9138         BusConfigParser that should be run every time the config files are
9139         read.
9140         (load_config): Added.  Builds a BusConfigParser from the config
9141         files and passes the resulting structure off to
9142         process_config_first_time_only (assuming this is the first time)
9143         and process_config_every_time.
9144         (bus_context_new): All of the config-related code has been moved
9145         to process_config_first_time_only and process_config_every_time.
9146         Now this function just does the non-config-related initializations
9147         and calls load_config.
9148         (bus_context_reload_config): Added.
9149
9150 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9151
9152         * bus/driver.c (bus_driver_handle_get_service_owner):
9153         implement a GetServiceOwner method.
9154         * doc/dbus-specification.xml: document it.
9155         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
9156         
9157         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
9158         implement, using the bus GetServiceOwner method.
9159
9160         * test/glib/test-dbus-glib.c:
9161         use dbus_gproxy_new_for_service_owner so that we can receive the
9162         signal. 
9163
9164 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
9165
9166         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9167         dbus/dbus-message.c, dbus/dbus-protocol.h
9168         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
9169
9170         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9171         dbus/dbus-message.c, dbus/dbus-protocol.h
9172         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
9173
9174         * dbus/dbus-internals.c (_dbus_header_field_to_string):
9175         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
9176         DBUS_HEADER_FIELD_SENDER resolves to "sender"
9177
9178         * doc/dbus-specification.xml (Header Fields Table):
9179         s/SERVICE/DESTINATION
9180         s/SENDER_SERVICE/SENDER
9181
9182
9183 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9184
9185         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
9186         a few seconds.
9187
9188 2004-04-13  Michael Meeks  <michael@ximian.com>
9189
9190         * glib/dbus-gobject.c (handle_introspect): split out
9191         (introspect_properties): this.
9192         (handle_introspect): implement this.
9193
9194         * test/glib/Makefile.am: use the absolute path so the bus
9195         daemon's chdir ("/") doesn't kill us dead.
9196
9197         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
9198
9199 2004-04-12  Jon Trowbridge  <trow@ximian.com>
9200
9201         * bus/config-parser.c (struct BusConfigParser): Added
9202         included_files field.
9203         (seen_include): Added.  Checks whether or not a file has already
9204         been included by any parent BusConfigParser.
9205         (bus_config_parser_new): Copy the parent's included_files.
9206         (include_file): Track which files have been included, and fail on
9207         circular inclusions.
9208         (process_test_valid_subdir): Changed printf to report if we are
9209         testing valid or invalid conf files.
9210         (all_are_equiv): Changed printf to be a bit clearer about
9211         what we are actually doing.
9212         (bus_config_parser_test): Test invalid configuration files.
9213
9214 2004-04-09  Jon Trowbridge  <trow@ximian.com>
9215
9216         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
9217         argument.  If non-null, the newly-constructed BusConfigParser will
9218         be initialized with the parent's BusLimits instead of the default
9219         values.
9220         (include_file): When including a config file, pass in
9221         the current parser as the parent and then copy the BusLimits
9222         from the included BusConfigParser pack to the current parser.
9223         (process_test_valid_subdir): Renamed from process_test_subdir.
9224         (process_test_equiv_subdir): Added.  Walks through a directory,
9225         descending into each subdirectory and loading the config files
9226         it finds there.  If any subdirectory contains two config files
9227         that don't produce identical BusConfigParser structs, fail.
9228         For now, the BusConfigParser's BusPolicies are not compared.
9229         (bus_config_parser_test): Call both process_test_valid_subdir and
9230         process_test_equiv_subdir.
9231
9232         * bus/config-loader-libxml.c (bus_config_load): Take a parent
9233         argument and pass it along to the call to bus_config_parser_new.
9234         Also made a few small changes to allow this code to compile.
9235
9236         * bus/config-loader-expat.c (bus_config_load): Take a parent
9237         argument and pass it along to the call to bus_config_parser_new.
9238
9239         * bus/bus.c (bus_context_new): Load the config file
9240         with a NULL parent argument.
9241
9242 2004-03-29  Michael Meeks  <michael@ximian.com>
9243
9244         * glib/dbus-gobject.c (introspect_properties): split
9245         out, fix mangled 'while' flow control.
9246         (introspect_signals): implement.
9247         (handle_introspect): update.
9248
9249 2004-03-29  Michael Meeks  <michael@ximian.com>
9250
9251         * glib/dbus-gobject.c (set_object_property): split out / 
9252         re-work, use the property type, and not the message type(!)
9253         (get_object_property): ditto.
9254
9255         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
9256         (dbus_gvalue_marshal): make this code re-usable, needed
9257         for signals too, also on both proxy and server side.
9258         Re-write for more efficiency / readability.
9259
9260 2004-03-29  Michael Meeks  <michael@ximian.com>
9261
9262         * dbus/dbus-message.c
9263         (dbus_message_new_error_printf): impl.
9264
9265         * dbus/dbus-connection.c
9266         (dbus_connection_unregister_object_path): fix warning.
9267
9268         * configure.in: fix no-mono-installed situation.
9269
9270 2004-03-27  Havoc Pennington  <hp@redhat.com>
9271
9272         Patch from Timo Teräs:
9273         
9274         * tools/dbus-send.c (main): if --print-reply, assume type is
9275         method call; support boolean type args
9276         
9277         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
9278         bunch of memleak and logic bugs
9279         
9280 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9281
9282         * mono/Arguments.cs:
9283         * mono/Introspector.cs:
9284         * mono/Handler.cs:
9285         * mono/InterfaceProxy.cs:
9286         * mono/Message.cs
9287         * mono/ProxyBuilder.cs:
9288         * mono/Service.cs:
9289         Added InterfaceProxy class to avoid building proxies for every
9290         object.
9291
9292         * dbus-message.h:
9293         * dbus-message.c (dbus_message_append_args_valist)
9294         (dbus_message_iter_get_object_path)
9295         (dbus_message_iter_get_object_path_array)
9296         (dbus_message_iter_append_object_path)
9297         (dbus_message_iter_append_object_path_array):
9298         Added object_path iter functions to handle OBJECT_PATH arguments
9299         
9300 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9301
9302         First checkin of mono bindings.
9303         * configure.in:
9304         * Makefile.am:
9305         Build stuff for the bindings
9306         * dbus-sharp.pc.in: Added for pkgconfig
9307         
9308 2004-03-21  Havoc Pennington  <hp@redhat.com>
9309
9310         * test/test-service.c (main): remove debug spew
9311
9312 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9313
9314         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
9315         arrays
9316
9317         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
9318         (dbus_message_iter_init_array_iterator)
9319         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
9320         indicate whether the iterator is empty
9321
9322         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
9323         warnings
9324
9325 2004-03-19  Havoc Pennington  <hp@redhat.com>
9326
9327         * NEWS: 0.21 updates
9328
9329         * configure.in: 0.21
9330
9331         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
9332         
9333         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
9334         you don't need pyrex to make dist
9335
9336         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
9337         sources; run moc
9338         
9339 2004-03-18  Richard Hult  <richard@imendio.com>
9340
9341         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9342         (dbus_message_set_auto_activation): Add doxygen docs.
9343
9344 2004-03-16  Richard Hult  <richard@imendio.com>
9345
9346         * bus/activation.c: (bus_activation_service_created),
9347         (bus_activation_send_pending_auto_activation_messages),
9348         (bus_activation_activate_service):
9349         * bus/activation.h:
9350         * bus/dispatch.c: (bus_dispatch),
9351         (check_nonexistent_service_auto_activation),
9352         (check_service_auto_activated),
9353         (check_segfault_service_auto_activation),
9354         (check_existent_service_auto_activation), (bus_dispatch_test):
9355         * bus/driver.c: (bus_driver_handle_activate_service):
9356         * bus/services.c: (bus_registry_acquire_service):
9357         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9358         (dbus_message_get_auto_activation):
9359         * dbus/dbus-message.h:
9360         * dbus/dbus-protocol.h: Implement auto-activation.
9361         
9362         * doc/dbus-specification.xml: Add auto-activation to the spec.
9363
9364 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9365
9366         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9367         fix a bug with CUSTOM types.
9368
9369         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9370         a unit test for this bug (used to fail).
9371
9372 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9373
9374         * bus/activation.c:
9375         (babysitter_watch_callback): notify all pending activations waiting for
9376           the same exec that the activation failed.
9377         (bus_activation_activate_service): shortcut the activation if we 
9378           already waiting for the same executable to start up.
9379
9380 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9381
9382         * bus/activation.c: 
9383         - Added service file reloading. 
9384           Each service files directory is kept in an hash table in 
9385           BusActivation and each BusActivationEntry knows what .service-file it
9386           was read from. So when you try to activate a service the bus will 
9387           check if it's been updated, removed or if new .service-files has 
9388           been installed.
9389         - Test code at the bottom for the service file reloading.
9390         * bus/test-main.c: (main):
9391         * bus/test.h:
9392         - added service reloading test.
9393         * dbus/dbus-sysdeps.c: 
9394         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9395
9396 2004-03-08  Michael Meeks  <michael@ximian.com>
9397
9398         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9399         bail immediately if disconnected, to avoid busy loop.
9400
9401         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9402         cleanup cut/paste/inefficiency.
9403
9404 2004-03-01  David Zeuthen  <david@fubar.dk>
9405
9406         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9407         bug where args were used twice. This bug resulted in a segfault
9408         on a Debian/PPC system when starting the messagebus daemon. Include
9409         dbus-sysdeps.h for DBUS_VA_COPY
9410
9411         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9412
9413         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9414         appropriate va_copy implementation. From GLib
9415         
9416 2004-02-24  Joe Shaw  <joe@ximian.com>
9417
9418         * bus/services.c (bus_registry_acquire_service): We need to pass
9419         in the service name to dbus_set_error() to prevent a crash.
9420
9421 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9422
9423         * AUTHORS: Reveal my True identity.
9424
9425 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9426
9427         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9428         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9429
9430 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9431
9432         * doc/TODO: Added not about better error check of configuration files.
9433
9434 2003-12-02  Richard Hult  <richard@imendio.com>
9435
9436         * Update AFL version to 2.0 throughout the source files to reflect
9437         the update that was done a while ago.
9438
9439 2003-12-02  Richard Hult  <richard@imendio.com>
9440
9441         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9442         wrote_dict_key to FALSE on the iter that the dict is appended to,
9443         just like when appending other types. Fixes a bug where a dict
9444         couldn't be put inside a dict.
9445         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9446         (message_iter_test, _dbus_message_test): Add test case for dict
9447         inside dict.
9448
9449 2003-12-01  David Zeuthen  <david@fubar.dk>
9450
9451         * python/dbus.py: Add the actual message when calling the reciever
9452         of a signal such that parameters can be inspected. Add the method
9453         remove_signal_receiver
9454         
9455 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9456
9457         * bus/*.[ch]:
9458         * dbus/*.[ch]:
9459         * glib/*.[ch]: Made ref functions return the pointer
9460
9461 2003-11-25  Zack Rusin  <zack@kde.org>
9462
9463         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9464
9465         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9466         wrappers,
9467
9468         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9469         the Integrator and to better fit with the server,
9470
9471 2003-11-24  Zack Rusin  <zack@kde.org>
9472
9473         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9474         the integrator handles it now
9475
9476         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9477         since QTimer wasn't really meant to be used the way DBusTimeout is
9478
9479 2003-11-24  Zack Rusin  <zack@kde.org>
9480
9481         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9482         Integrator class which integrates D-BUS with the Qt event loop,
9483
9484         * qt/connection.h, qt/connection.cpp: Move all the code which
9485         was dealing with D-BUS integration to the Integrator class,
9486         and start using Integrator,
9487
9488 2003-11-23  Zack Rusin  <zack@kde.org>
9489
9490         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9491         wrapper
9492
9493         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9494         switching namespaces to DBusQt, reworking the class,
9495
9496         * Makefile.cvs: switching dependencies so that it matches KDE 
9497         schematics,
9498         
9499         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9500         the library
9501
9502 2003-11-19  Havoc Pennington  <hp@redhat.com>
9503
9504         * NEWS: update
9505
9506         * configure.in: bump version to 0.20
9507
9508         * configure.in (have_qt): add yet another place to look for qt
9509         (someone hand trolltech a .pc file...)
9510
9511 2003-11-01  Havoc Pennington  <hp@redhat.com>
9512
9513         * doc/dbus-specification.xml: add state machine docs on the auth
9514         protocol; just a first draft, I'm sure it's wrong.      
9515
9516 2003-10-28  David Zeuthen  <david@fubar.dk>
9517
9518         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9519         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9520         
9521 2003-10-28  Havoc Pennington  <hp@redhat.com>
9522
9523         * dbus/dbus-message.c (get_next_field): delete unused function
9524
9525 2003-10-28  Havoc Pennington  <hp@redhat.com>
9526
9527         * bus/expirelist.c (do_expiration_with_current_time): detect
9528         failure of the expire_func due to OOM
9529
9530         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9531
9532         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9533         NoReply error that's now created by the bus when the service exits
9534
9535 2003-10-28  Havoc Pennington  <hp@redhat.com>
9536
9537         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9538         tests for set_path, set_interface, set_member, etc.
9539
9540         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9541
9542         * dbus/dbus-message.c (set_string_field): always just delete and
9543         re-append the field; accept NULL for deletion
9544         (re_align_fields_recurse): reimplement
9545         
9546 2003-10-26  Havoc Pennington  <hp@redhat.com>
9547
9548         * dbus/dbus-connection.c: fix docs to properly describe the
9549         disconnected message
9550         (_dbus_connection_notify_disconnected): remove this function; 
9551         we can't synchronously add the disconnected message, we have to 
9552         do it after we've queued any remaining real messages
9553         (_dbus_connection_get_dispatch_status_unlocked): queue the
9554         disconnect message only if the transport has finished queueing all
9555         its real messages and is disconnected.
9556         (dbus_connection_disconnect): update the dispatch status here
9557
9558 2003-10-22  Havoc Pennington  <hp@redhat.com>
9559
9560         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9561
9562         * bus/connection.c (bus_transaction_send_from_driver): set the
9563         destination to the connection's base service
9564
9565 2003-10-20  Havoc Pennington  <hp@redhat.com>
9566
9567         hmm, make check is currently not passing.
9568         
9569         * doc/dbus-specification.xml: add requirement that custom type
9570         names follow the same rules as interface names.
9571
9572         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9573         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9574         'map'
9575
9576         * doc/dbus-specification.xml: update type codes to match
9577         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9578         CUSTOM. Add type OBJECT_PATH to the spec.
9579
9580 2003-10-17  Havoc Pennington  <hp@redhat.com>
9581
9582         * bus/driver.c (create_unique_client_name): use "." as separator
9583         in base service names instead of '-'
9584
9585         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9586         byte at the end of the string
9587
9588         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9589         optimization macros since string validation seems to be a slow
9590         point.
9591         
9592         * doc/dbus-specification.xml: restrict valid
9593         service/interface/member/error names. Add test suite code for the
9594         name validation.
9595
9596         * dbus/dbus-string.c: limit service/interface/member/error names 
9597         to [0-9][A-Z][a-z]_
9598
9599         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9600         format arg to verbose spew
9601
9602         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9603         memory, return instead of g_error
9604
9605         * test/test-service.c (path_message_func): support emitting a
9606         signal on request
9607
9608         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9609         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9610         assuming the activation bus was the session bus so that services
9611         started manually will still register.
9612         (init_connections_unlocked): fix so that in OOM situation we get
9613         the same semantics when retrying the function
9614         
9615         * test/test-service.c (main): change to use path registration, to
9616         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9617         than DBUS_BUS_SESSION
9618
9619 2003-10-16  Havoc Pennington  <hp@redhat.com>
9620
9621         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9622
9623         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9624         coverage of the tests
9625         (coverage-report.txt): don't move the .da and .bbg files around
9626
9627 2003-10-16  Havoc Pennington  <hp@redhat.com>
9628
9629         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9630         to put there
9631
9632 2003-10-16  Havoc Pennington  <hp@redhat.com>
9633
9634         * bus/connection.c (bus_pending_reply_expired): either cancel or
9635         execute, not both
9636         (bus_connections_check_reply): use unlink, not remove_link, as we
9637         don't want to free the link; fixes double free mess
9638
9639         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9640         where no reply was received
9641
9642         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9643         fix a refcount leak
9644
9645         * bus/signals.c (match_rule_matches): add special cases for the
9646         bus driver, so you can match on sender/destination for it.
9647
9648         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9649         DBUS_PRINT_BACKTRACE is set
9650
9651         * dbus/dbus-internals.c: add pid to assertion failure messages
9652
9653         * dbus/dbus-connection.c: add message type code to the debug spew
9654
9655         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9656         sender=foo not service=foo
9657
9658         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9659         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9660         DBUS_ACTIVATION_ADDRESS instead
9661
9662         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9663         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9664
9665         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9666         context struct
9667
9668         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9669         (dbus_message_iter_get_object_path_array): new function (half
9670         finished, disabled for the moment)
9671         
9672         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9673         DBUS_MESSAGE_TYPE_ERROR
9674
9675         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9676         avoid redirecting stderr to /dev/null
9677         (babysit): close stdin if not doing the "exit_with_session" thing
9678
9679         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9680         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9681         stdout/stdin, so things don't get confused
9682         
9683         * bus/system.conf.in: fix to allow replies, I modified .conf
9684         instead of .conf.in again.
9685
9686 2003-10-14  David Zeuthen  <david@fubar.dk>
9687
9688         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9689         argtype to arg_type when raising unknown arg type exception.
9690         Changed type list to reflect the changes in dbus-protocol.h so 
9691         the bindings actually work.
9692
9693 2003-10-14  Havoc Pennington  <hp@redhat.com>
9694
9695         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9696         to have a bug keeping it from outputting the .da files sometimes
9697         (string_get_string): don't append garbage nul bytes to the string.
9698
9699 2003-10-15  Seth Nickell  <seth@gnome.org>
9700
9701         * python/Makefile.am:
9702
9703         Include dbus_h_wrapper.h in the dist tarball.
9704
9705 2003-10-14  Havoc Pennington  <hp@redhat.com>
9706
9707         * bus/bus.c (bus_context_check_security_policy): revamp this to
9708         work more sanely with new policy-based requested reply setup
9709
9710         * bus/connection.c (bus_transaction_send_from_driver): set bus
9711         driver messages as no reply
9712
9713         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9714         requested_reply attribute on allow/deny rules
9715
9716         * bus/system.conf: add <allow requested_reply="true"/>
9717
9718         * bus/driver.c (bus_driver_handle_message): fix check for replies
9719         sent to the bus driver, which was backward. How did this ever work
9720         at all though? I think I'm missing something.
9721
9722         * dbus/dbus-message.c (decode_header_data): require error and
9723         method return messages to have a reply serial field to be valid
9724         (_dbus_message_loader_queue_messages): break up this function;
9725         validate that reply serial and plain serial are nonzero; 
9726         clean up the OOM/error handling.
9727         (get_uint_field): don't return -1 from this
9728         (dbus_message_create_header): fix signed/unsigned bug
9729
9730         * bus/connection.c (bus_connections_expect_reply): save serial of
9731         the incoming message, not reply serial
9732
9733 2003-10-14  Havoc Pennington  <hp@redhat.com>
9734
9735         * bus/connection.c: implement pending reply tracking using
9736         BusExpireList
9737
9738         * bus/bus.c (bus_context_check_security_policy): verify that a
9739         reply is pending in order to allow a reply to be sent. Deny 
9740         messages of unknown type.
9741
9742         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9743
9744         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9745         (bus_context_get_reply_timeout): new
9746
9747 2003-10-13  Seth Nickell  <seth@gnome.org>
9748
9749         * python/Makefile.am:
9750
9751         Pass "make distcheck": remove a couple files from DIST_FILES
9752         that weren't included in the final version.
9753
9754 2003-10-12  Havoc Pennington  <hp@pobox.com>
9755
9756         Added test code that 1) starts an actual bus daemon and 2) uses
9757         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9758         more testing possible, but this is the basic framework.
9759         
9760         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9761         empty proxy lists from the proxy list hash
9762
9763         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9764         couple of return_if_fail checks
9765
9766         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9767         to allocate, so everything is cleared to NULL as it should be.
9768
9769         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9770         source as data to dbus_connection_set_timeout_functions() as the 
9771         timeout functions expected
9772
9773         * test/glib/run-test.sh: add a little script to start up a message
9774         bus and run tests using it
9775
9776         * tools/dbus-launch.1: updates
9777
9778         * tools/dbus-launch.c (main): add --config-file option
9779
9780         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9781         that could never be reached.
9782
9783         * dbus/dbus-message.c (dbus_message_new_method_return) 
9784         (dbus_message_new_error, dbus_message_new_signal): set the
9785         no-reply-expected flag on all these. Redundant, but may
9786         as well be consistent.
9787
9788 2003-10-11  Havoc Pennington  <hp@pobox.com>
9789
9790         * test/decode-gcov.c (function_solve_graph): make broken block
9791         graph a nonfatal error since it seems to be broken. Need to debug
9792         this.
9793
9794         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9795         can't just check type > INVALID < LAST anymore
9796
9797         * dbus/dbus-message.c (dbus_message_get_signature): new function
9798         (dbus_message_has_signature): new function
9799         (struct DBusMessage): add signature field (right now it isn't sent
9800         over the wire, just generated on the fly)
9801         (dbus_message_copy): copy the signature, and init strings to
9802         proper length to avoid some reallocs
9803         (dbus_message_iter_init_array_iterator): return void, since it
9804         can't fail
9805         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9806         (_dbus_message_loader_queue_messages): add silly temporary hack to
9807         fill in message->signature on load
9808
9809         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9810         characters, so they are relatively human-readable.
9811
9812 2003-10-11  Havoc Pennington  <hp@pobox.com>
9813
9814         * dbus/dbus-message.c (_dbus_message_test): add more test
9815         coverage, but #if 0 for now since they uncover a bug 
9816         not fixed yet; I think in re_align_field_recurse()
9817         (re_align_field_recurse): add FIXME about broken assertion
9818
9819         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9820
9821         * bus/connection.c: share a couple code bits with expirelist.c
9822
9823         * bus/expirelist.h, bus/expirelist.c: implement a generic
9824         expire-items-after-N-seconds facility, was going to share between
9825         expiring connections and replies, decided not to use for expiring
9826         connections for now.
9827
9828         * COPYING: include AFL 2.0 (still need to change all the file headers)
9829
9830 2003-10-09  Havoc Pennington  <hp@redhat.com>
9831
9832         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9833         gcc 3.3. Not that we do anything about it yet.
9834
9835         * bus/signals.c (bus_match_rule_parse): impose max length on the
9836         match rule text
9837
9838         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9839
9840 2003-10-09  Havoc Pennington  <hp@redhat.com>
9841
9842         Make matching rules theoretically work (add parser).
9843         
9844         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9845         the case where destination is explicitly specified as bus driver
9846         and someone else is eavesdropping.
9847         
9848         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9849         definition of eavesdropping and assertion
9850
9851         * tools/dbus-send.c (main): use dbus_message_type_from_string
9852
9853         * bus/signals.c (bus_match_rule_parse): implement
9854
9855         * dbus/dbus-message.c (dbus_message_type_from_string): new
9856
9857         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9858
9859 2003-10-02  Havoc Pennington  <hp@pobox.com>
9860
9861         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9862         dbus_gproxy_oneway_call
9863
9864         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9865         (dbus_server_setup_with_g_main): fix to allow calling them more
9866         than once on the same args
9867         (dbus_bus_get_with_g_main): new function
9868
9869 2003-10-02  Havoc Pennington  <hp@redhat.com>
9870
9871         * doc/dbus-tutorial.xml: write some stuff
9872
9873 2003-09-29  Havoc Pennington  <hp@pobox.com>
9874
9875         * configure.in: split checks for Doxygen from XML docs, check for
9876         xmlto
9877
9878         * doc/Makefile.am: XML-ify all the docs, and add a blank
9879         dbus-tutorial.xml
9880
9881 2003-09-29  Havoc Pennington  <hp@pobox.com>
9882
9883         * Merge dbus-object-names branch. To see the entire patch 
9884         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9885         it's huuuuge though.
9886         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9887         
9888 2003-09-28  Havoc Pennington  <hp@pobox.com>
9889
9890         * HACKING: update to reflect new server
9891
9892 2003-09-26  Seth Nickell  <seth@gnome.org>
9893
9894         * python/dbus.py:
9895         * python/examples/example-signals.py:
9896
9897         Start implementing some notions of signals. The API
9898         is really terrible, but they sort of work (with the
9899         exception of being able to filter by service, and to
9900         transmit signals *as* a particular service). Need to
9901         figure out how to make messages come from the service
9902         we registered :-(
9903         
9904         * python/dbus_bindings.pyx.in:
9905
9906         Removed duplicate message_handler callbacks.
9907         
9908 2003-09-25  Havoc Pennington  <hp@redhat.com>
9909
9910         * bus/session.conf.in: fix my mess
9911
9912 2003-09-25  Havoc Pennington  <hp@pobox.com>
9913
9914         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9915
9916 2003-09-25  Seth Nickell  <seth@gnome.org>
9917
9918         * python/examples/example-service.py:
9919
9920         Johan notices complete wrong code in example-service, but
9921         completely wrong in a way that works exactly the same (!).
9922         Johan is confused, how could this possibly work? Example
9923         code fails to serve purpose of making things clear.
9924         Seth fixes.
9925
9926 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9927
9928         * doc/dbus-specification.sgml: don't require header fields
9929         to be 4-byte aligned and specify that fields should be
9930         distinguished from padding by the fact that zero is not
9931         a valid field name.
9932         
9933         * doc/TODO: remove re-alignment item and add item to doc
9934         the OBJECT_PATH type.
9935         
9936         * dbus/dbus-message.c:
9937         (HeaderField): rename the original member to value_offset
9938         and introduce a name_offset member to keep track of where
9939         the field actually begins.
9940         (adjust_field_offsets): remove.
9941         (append_int_field), (append_uint_field),
9942         (append_string_field): don't align the start of the header
9943         field to a 4-byte boundary.
9944         (get_next_field): impl finding the next marhsalled field
9945         after a given field.
9946         (re_align_field_recurse): impl re-aligning a number of
9947         already marshalled fields.
9948         (delete_field): impl deleting a field of any type and
9949         re-aligning any following fields.
9950         (delete_int_or_uint_field), (delete_string_field): remove.
9951         (set_int_field), (set_uint_field): no need to re-check
9952         that we have the correct type for the field.
9953         (set_string_field): ditto and impl re-aligning any
9954         following fields.
9955         (decode_header_data): update to take into account that
9956         the fields aren't 4-byte aligned any more and the new
9957         way to distinguish padding from header fields. Also,
9958         don't exit when there is too much header padding.
9959         (process_test_subdir): print the directory.
9960         (_dbus_message_test): add test to make sure a following
9961         field is re-aligned correctly after field deletion.
9962         
9963         * dbus/dbus-string.[ch]:
9964         (_dbus_string_insert_bytes): rename from insert_byte and
9965         allow the insert of multiple bytes.
9966         (_dbus_string_test): test inserting multiple bytes.
9967
9968         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9969         warning note to docs about having to re-align any
9970         marshalled values following the string.
9971         
9972         * dbus/dbus-message-builder.c:
9973         (append_string_field), (_dbus_message_data_load):
9974         don't align the header field.
9975         
9976         * dbus/dbus-auth.c: (process_test_subdir): print the
9977         directory.
9978         
9979         * test/break-loader.c: (randomly_add_one_byte): upd. for
9980         insert_byte change.
9981         
9982         * test/data/invalid-messages/bad-header-field-alignment.message:
9983         new test case.
9984         
9985         * test/data/valid-messages/unknown-header-field.message: shove
9986         a dict in the unknown field.
9987
9988 2003-09-25  Seth Nickell  <seth@gnome.org>
9989
9990         * python/dbus.py:
9991         * python/dbus_bindings.pyx.in:
9992
9993         Handle return values.
9994         
9995         * python/examples/example-client.py:
9996         * python/examples/example-service.py:
9997
9998         Pass back return values from the service to the client.
9999         
10000 2003-09-24  Seth Nickell  <seth@gnome.org>
10001
10002         * python/dbus.py:
10003
10004         Connect Object methods (when you are sharing an object) up... pass
10005         in a list of methods to be shared. Sharing all the methods just
10006         worked out too weird. You can now create nice Services over the
10007         DBus in Python. :-)
10008         
10009         * python/dbus_bindings.pyx.in:
10010
10011         Keep references to user_data tuples passed into C functions so 
10012         Python doesn't garbage collect on us.
10013
10014         Implement MethodReturn and Error subclasses of Message for creating
10015         DBusMessage's of those types.
10016         
10017         * python/examples/example-client.py:
10018         * python/examples/example-service.py:
10019
10020         Simple example code showing both how create DBus services and objects,
10021         and how to use them.
10022
10023 2003-09-23  Havoc Pennington  <hp@pobox.com>
10024
10025         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
10026
10027 2003-09-23  Havoc Pennington  <hp@redhat.com>
10028
10029         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
10030         (dbus_gproxy_disconnect_signal): implement
10031         (dbus_gproxy_manager_remove_signal_match): implement
10032         (dbus_gproxy_manager_add_signal_match): implement
10033         (dbus_gproxy_oneway_call): implement
10034
10035 2003-09-23  Havoc Pennington  <hp@pobox.com>
10036
10037         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
10038         subclass. This means dropping the transparent thread safety of the
10039         proxy; you now need a separate proxy per-thread, or your own
10040         locking on the proxy. Probably right anyway.
10041         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
10042
10043 2003-09-22  Havoc Pennington  <hp@redhat.com>
10044
10045         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
10046
10047 2003-09-21  Seth Nickell  <seth@gnome.org>
10048
10049         First checkin of the Python bindings.
10050         
10051         * python/.cvsignore:
10052         * python/Makefile.am:
10053         * python/dbus_bindings.pyx.in:
10054         * python/dbus_h_wrapper.h:
10055
10056         Pieces for Pyrex to operate on, building a dbus_bindings.so
10057         python module for low-level access to the DBus APIs.
10058         
10059         * python/dbus.py:
10060
10061         High-level Python module for accessing DBus objects.
10062
10063         * configure.in:
10064         * Makefile.am:
10065
10066         Build stuff for the python bindings.
10067
10068         * acinclude.m4:
10069
10070         Extra macro needed for finding the Python C header files.
10071
10072 2003-09-21  Havoc Pennington  <hp@pobox.com>
10073
10074         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
10075         implementing the proxy manager, didn't get very far.
10076
10077         * dbus/dbus-bus.c (dbus_bus_add_match): new
10078         (dbus_bus_remove_match): new
10079
10080         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
10081         path_name argument; adjust the other not-yet-implemented 
10082         gproxy constructors to be what I think they should be.
10083
10084 2003-09-21  Havoc Pennington  <hp@pobox.com>
10085
10086         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
10087         by default for message bus connections.
10088
10089         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
10090         exit_on_disconnect flag is set and we process the disconnected
10091         signal.
10092         (dbus_connection_set_exit_on_disconnect): new function
10093
10094 2003-09-21  Havoc Pennington  <hp@pobox.com>
10095
10096         Get matching rules mostly working in the bus; only actually
10097         parsing the rule text remains. However, the client side of
10098         "signal connections" hasn't been started, this patch is only the
10099         bus side.
10100         
10101         * dbus/dispatch.c: fix for the matching rules changes
10102         
10103         * bus/driver.c (bus_driver_handle_remove_match)
10104         (bus_driver_handle_add_match): send an ack reply from these
10105         method calls
10106
10107         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
10108         arguments, reported by Seth Nickell
10109
10110         * bus/config-parser.c (append_rule_from_element): support
10111         eavesdrop=true|false attribute on policies so match rules 
10112         can be prevented from snooping on the system bus.
10113
10114         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
10115         and "destination" in attribute names; fix some docs bugs; 
10116         add eavesdrop=true|false attribute
10117
10118         * bus/driver.c (bus_driver_handle_add_match)
10119         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
10120         messages
10121
10122         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
10123         rid of broadcast service concept, signals are just always broadcast
10124
10125         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
10126         mostly implement matching rules stuff (currently only exposed as signal
10127         connections)
10128
10129 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
10130
10131         * doc/dbus-specification.sgml: Change the header field name
10132         to be an enum and update the rest of the spec to reference
10133         the fields using the conventinal name.
10134
10135         * dbus/dbus-protocol.h: update to reflect the spec.
10136
10137         * doc/TODO: add item to remove the 4 byte alignment requirement.
10138         
10139         * dbus/dbus-message.c: Remove the code to generalise the
10140         header/body length and serial number header fields as named
10141         header fields so we can reference field names using the 
10142         protocol values.
10143         (append_int_field), (append_uint_field), (append_string_field):
10144         Append the field name as a byte rather than four chars.
10145         (delete_int_or_uint_field), (delete_string_field): reflect the
10146         fact that the field name and typecode now occupy 4 bytes instead
10147         of 8.
10148         (decode_string_field), (decode_header_data): update to reflect
10149         protocol changes and move the field specific encoding from
10150         decode_string_field() back into decode_header_data().
10151         
10152         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
10153         Add utility to aid debugging.
10154         
10155         * dbus/dbus-message-builder.c:
10156         (append_string_field), (_dbus_message_data_load): Update to
10157         reflect protocol changes; Change the FIELD_NAME directive
10158         to HEADER_FIELD and allow it to take the field's conventional
10159         name rather than the actual value.
10160         
10161         * test/data/*/*.message: Update to use HEADER_FIELD instead
10162         of FIELD_NAME; Always align the header on an 8 byte boundary
10163         *before* updating the header length.
10164
10165 2003-09-15  Havoc Pennington  <hp@pobox.com>
10166
10167         * dbus/dbus-pending-call.c: add the get/set object data
10168         boilerplate as for DBusConnection, etc. Use generic object data
10169         for the notify callback.
10170
10171         * glib/dbus-gparser.c (parse_node): parse child nodes
10172
10173         * tools/dbus-viewer.c: more hacking on the dbus-viewer
10174         
10175         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
10176         contain functions shared between the convenience lib and the
10177         installed lib
10178
10179         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
10180         -export-symbols-regex to the GLib library
10181
10182         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
10183         fix the locking in here, and add a default handler for
10184         Introspect() that just returns sub-nodes.
10185
10186 2003-09-14  Havoc Pennington  <hp@pobox.com>
10187
10188         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
10189         rather than gfoo consistent
10190
10191         * glib/dbus-gproxy.h: delete for now, move contents to
10192         dbus-glib.h, because the include files don't work right since we
10193         aren't in the dbus/ subdir.
10194         
10195         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
10196         (dbus_gproxy_end_call): finish
10197         (dbus_gproxy_begin_call): finish
10198
10199         * glib/dbus-gmain.c (dbus_set_g_error): new
10200
10201         * glib/dbus-gobject.c (handle_introspect): include information
10202         about child nodes in the introspection
10203
10204         * dbus/dbus-connection.c (dbus_connection_list_registered): new
10205         function to help in implementation of introspection
10206
10207         * dbus/dbus-object-tree.c
10208         (_dbus_object_tree_list_registered_and_unlock): new function
10209
10210 2003-09-12  Havoc Pennington  <hp@pobox.com>
10211
10212         * glib/dbus-gidl.h: add common base class for all the foo_info
10213         types
10214
10215         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
10216         similar to kdcop
10217
10218         * test/Makefile.am: try test srcdir -ef . in addition to test
10219         srcdir = ., one of them should work (yeah lame)
10220         
10221         * glib/Makefile.am: build the "idl" parser stuff as a convenience
10222         library
10223         
10224         * glib/dbus-gparser.h: make description_load routines return
10225         NodeInfo* not Parser*
10226
10227         * Makefile.am (SUBDIRS): build test dir after all library dirs
10228
10229         * configure.in: add GTK+ detection
10230
10231 2003-09-07  Havoc Pennington  <hp@pobox.com>
10232
10233         * Make Doxygen contented.
10234
10235 2003-09-07  Havoc Pennington  <hp@pobox.com>
10236
10237         * doc/dbus-specification.sgml: more updates
10238
10239 2003-09-06  Havoc Pennington  <hp@pobox.com>
10240
10241         * doc/dbus-specification.sgml: partial updates
10242
10243         * bus/dbus-daemon-1.1.in: fix the config file docs for the
10244         zillionth time; hopefully I edited the right file this time.
10245
10246         * bus/config-parser.c (append_rule_from_element): support
10247         send_type, send_path, receive_type, receive_path
10248
10249         * bus/policy.c: add message type and path to the list of things
10250         that can be "firewalled"
10251
10252 2003-09-06  Havoc Pennington  <hp@pobox.com>
10253
10254         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
10255         (dbus_connection_register_object_path): make this not handle
10256         messages to paths below the given path
10257
10258 2003-09-03  Havoc Pennington  <hp@pobox.com>
10259
10260         * test/glib/Makefile.am: add this with random glib-linked test
10261         programs
10262
10263         * glib/Makefile.am: remove the random test programs from here,
10264         leave only the unit tests
10265
10266         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
10267         uscore/javacaps conversion, and fix     
10268         (get_object_property, set_object_property): change to .NET
10269         convention for mapping props to methods, set_FooBar/get_FooBar, 
10270         since one language has such a convention we may as well copy it. 
10271         Plus real methods in either getFooBar or get_foo_bar style won't 
10272         collide with this convention.
10273
10274 2003-09-01  Havoc Pennington  <hp@pobox.com>
10275
10276         * glib/dbus-gparser.c: implement
10277
10278         * glib/dbus-gobject.c: start implementing skeletons support
10279
10280         * configure.in: when disabling checks/assert, also define
10281         G_DISABLE_ASSERT and G_DISABLE_CHECKS
10282
10283 2003-09-01  Havoc Pennington  <hp@pobox.com>
10284
10285         * glib/Makefile.am: rearrange a bunch of files and get "make
10286         check" framework set up
10287
10288 2003-08-31  Havoc Pennington  <hp@pobox.com>
10289
10290         * fix build with --disable-tests
10291
10292 2003-08-30  Havoc Pennington  <hp@pobox.com>
10293
10294         * dbus/dbus-connection.c: purge DBusMessageHandler
10295
10296         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
10297         use callbacks everywhere
10298
10299 2003-08-30  Havoc Pennington  <hp@pobox.com>
10300
10301         * test/data/valid-config-files/system.d/test.conf: change to 
10302         root for the user so warnings don't get printed
10303
10304         * dbus/dbus-message.c: add dbus_message_get_path,
10305         dbus_message_set_path
10306         
10307         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
10308         dispatching to a path
10309
10310         * dbus/dbus-string.c (_dbus_string_validate_path): add
10311
10312         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
10313         (_dbus_marshal_object_path): implement
10314
10315         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
10316         to contain the path to the target object
10317         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
10318         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
10319
10320 2003-08-30  Havoc Pennington  <hp@pobox.com>
10321
10322         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
10323
10324 2003-08-29  Havoc Pennington  <hp@pobox.com>
10325
10326         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
10327         registered
10328         (struct DBusObjectSubtree): shrink this
10329         a lot, since we may have a lot of them
10330         (_dbus_object_tree_free_all_unlocked): implement
10331         (_dbus_object_tree_dispatch_and_unlock): implement
10332
10333 2003-08-29  Havoc Pennington  <hp@pobox.com>
10334
10335         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
10336
10337 2003-08-28  Havoc Pennington  <hp@pobox.com>
10338
10339         purge DBusObjectID
10340         
10341         * dbus/dbus-connection.c: port to no ObjectID, create a
10342         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10343
10344         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10345         everything except UnregisterFunction and MessageFunction
10346         
10347         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10348         add DBUS_TYPE_OBJECT_PATH
10349         
10350         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10351         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10352         path-based object IDs
10353
10354 2003-08-25  Havoc Pennington  <hp@pobox.com>
10355
10356         Just noticed that dbus_message_test is hosed, I wonder when I
10357         broke that. I thought make check was passing earlier...
10358         
10359         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10360         container tree, will replace most of dbus-object-registry
10361
10362         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10363         screwup
10364
10365 2003-08-19  Havoc Pennington  <hp@pobox.com>
10366
10367         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10368         (dbus_message_is_error): fix this function
10369
10370         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10371         match
10372
10373         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10374         reflect clarified man page
10375         (bus_client_policy_check_can_send): ditto
10376         
10377         * bus/session.conf.in: fixup
10378
10379         * bus/system.conf.in: fixup
10380
10381 2003-08-18  Havoc Pennington  <hp@redhat.com>
10382
10383         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10384
10385         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10386         dumb bug created earlier (wrong order of args to
10387         decode_header_data())
10388         
10389         * tools/dbus-send.c: port
10390
10391         * tools/dbus-print-message.c (print_message): port
10392
10393         * test/data/*messages: port all messages over
10394         
10395         * dbus/dbus-message-builder.c: support including 
10396         message type
10397         
10398         * bus/driver.c: port over
10399         
10400         * bus/dispatch.c: port over to new stuff
10401
10402         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10403         rename disconnect signal to "Disconnected"
10404
10405 2003-08-17  Havoc Pennington  <hp@pobox.com>
10406
10407         This doesn't compile yet, but syncing up so I can hack on it from
10408         work. What are branches for if not broken code? ;-)
10409         
10410         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10411         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10412         DBUS_HEADER_FIELD_ERROR_NAME
10413         
10414         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10415         for the interface+member pairs
10416         (string_hash): change to use g_str_hash algorithm
10417         (find_direct_function, find_string_function): refactor these to
10418         share most code.
10419         
10420         * dbus/dbus-message.c: port all of this over to support 
10421         interface/member fields instead of name field
10422
10423         * dbus/dbus-object-registry.c: port over
10424         
10425         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10426         from _dbus_string_validate_name
10427
10428         * bus/dbus-daemon-1.1: change file format for the 
10429         <deny>/<allow> stuff to match new message naming scheme
10430
10431         * bus/policy.c: port over
10432
10433         * bus/config-parser.c: parse new format
10434         
10435 2003-08-16  Havoc Pennington  <hp@pobox.com>
10436
10437         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10438         broken assertion
10439
10440         * glib/dbus-gproxy.c: some hacking
10441
10442 2003-08-15  Havoc Pennington  <hp@redhat.com>
10443
10444         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10445
10446         * dbus/dbus-connection.c
10447         (dbus_connection_send_with_reply_and_block): factor out internals;
10448         change to convert any error replies to DBusError instead of 
10449         returning them as a message
10450
10451 2003-08-15  Havoc Pennington  <hp@pobox.com>
10452
10453         * dbus/dbus-connection.c, 
10454         dbus/dbus-pending-call.c: Finish the pending call stuff
10455
10456 2003-08-14  Havoc Pennington  <hp@redhat.com>
10457
10458         * dbus/dbus-pending-call.c: start on new object that will replace
10459         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10460         replies
10461
10462         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10463         with remote interfaces
10464
10465         * dbus/dbus-gidl.c: do the boring boilerplate in here
10466         
10467 2003-08-12  Havoc Pennington  <hp@pobox.com>
10468
10469         * bus/dispatch.c (bus_dispatch): make this return proper 
10470         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10471
10472         * dbus/dbus-errors.c (dbus_set_error): use
10473         _dbus_string_append_printf_valist
10474
10475         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10476         (_dbus_string_append_printf): new
10477
10478         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10479         UNKNOWN_METHOD
10480
10481         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10482         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10483         message is unhandled.
10484
10485 2003-08-11  Havoc Pennington  <hp@pobox.com>
10486
10487         * bus/test.c (client_disconnect_handler): change to return
10488         HANDLED (would have been REMOVE_MESSAGE)
10489
10490         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10491         HANDLED/NOT_YET_HANDLED instead of
10492         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10493         should be used.
10494
10495 2003-08-10  Havoc Pennington  <hp@pobox.com>
10496
10497         * tools/dbus-send.c (main): add --type argument, for now
10498         supporting only method_call and signal types.
10499
10500         * tools/dbus-print-message.c: print message type
10501
10502         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10503         init connection->objects
10504
10505         * doc/dbus-specification.sgml: fix sgml
10506
10507         * bus/*.c: port over to object-instance API changes
10508
10509         * test/test-service.c: ditto
10510         
10511         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10512         name, we will have to fix up the rest of the code to also handle
10513         this
10514         (dbus_message_new): generic message-creation call
10515         (set_string_field): allow appending name field
10516
10517 2003-08-06  Havoc Pennington  <hp@pobox.com>
10518
10519         * dbus/dbus-object-registry.c: implement signal connection 
10520         and dispatch
10521
10522         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10523
10524         * dbus/dbus-internals.c (_dbus_memdup): new function
10525
10526 2003-08-02  Havoc Pennington  <hp@pobox.com>
10527
10528         * dbus/dbus-message.c (dbus_message_get_no_reply)
10529         (dbus_message_set_no_reply): add these and remove
10530         set_is_error/get_is_error
10531
10532         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10533         remove the ERROR flag, since there's now an ERROR type
10534
10535 2003-08-01  Havoc Pennington  <hp@pobox.com>
10536
10537         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10538         implement
10539
10540         * dbus/dbus-message.c (dbus_message_get_type): new function
10541
10542         * doc/dbus-specification.sgml: add "type" byte to messages
10543
10544 2003-08-01  Havoc Pennington  <hp@pobox.com>
10545
10546         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10547         a message type enum to distinguish kinds of message
10548         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10549         that need not be replied to
10550
10551 2003-08-01  Havoc Pennington  <hp@pobox.com>
10552
10553         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10554         (unpack_8_octets): fix no-64-bit-int bug
10555
10556         * dbus/dbus-object-registry.c (validate_id): validate the 
10557         connection ID bits, not just the instance ID.
10558
10559         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10560         the connection-global 33 bits of the object ID
10561
10562         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10563         object ID in the new way
10564
10565         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10566         define server/client/instance bits.
10567
10568 2003-07-30  Havoc Pennington  <hp@pobox.com>
10569
10570         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10571         build
10572
10573 2003-07-13  Havoc Pennington  <hp@pobox.com>
10574
10575         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10576         fields to DBusObjectVTable and DBusObjectInfo
10577
10578 2003-07-12  Havoc Pennington  <hp@pobox.com>
10579
10580         * dbus/dbus-object-registry.c: implement unit test,
10581         fix bugs discovered in process
10582
10583         * dbus/dbus-connection.c: remove handler_table and
10584         register_handler(), add DBusObjectRegistry usage
10585
10586         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10587         (dbus_object_id_set_null): new functions
10588
10589 2003-07-08  Havoc Pennington  <hp@pobox.com>
10590
10591         * dbus/dbus-object.c: implement some of this
10592
10593         * dbus/dbus-object-registry.c
10594         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10595         param
10596         (_dbus_object_registry_new): handle OOM
10597
10598 2003-07-08  Havoc Pennington  <hp@pobox.com>
10599
10600         * dbus/dbus-object.h: sketch out an API for registering objects
10601         with a connection, that allows us to use as little as 24 bytes
10602         per object and lets application code represent an object in 
10603         any conceivable way.
10604
10605         * dbus/dbus-object-registry.c: implement the hard bits of the
10606         DBusConnection aspect of object API. Not yet wired up.
10607         
10608 2003-07-06  Havoc Pennington  <hp@pobox.com>
10609
10610         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10611         (_dbus_marshal_object_id): new
10612         (_dbus_demarshal_object_id): new
10613         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10614         consolidate identical switch cases. Don't conditionalize handling
10615         of DBUS_TYPE_UINT64, need to handle the type always.
10616         (_dbus_marshal_validate_arg): consolidate identical cases, and
10617         handle DBUS_TYPE_OBJECT_ID
10618
10619         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10620
10621         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10622
10623 2003-09-28  Havoc Pennington  <hp@pobox.com>
10624
10625         * real 0.13 release
10626
10627 2003-09-28  Havoc Pennington  <hp@pobox.com>
10628
10629         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10630         to work with Debian db2html
10631
10632 2003-09-28  Havoc Pennington  <hp@pobox.com>
10633
10634         * configure.in: 0.13
10635
10636         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10637         stylesheet-images for benefit of Debian
10638         
10639         Change back to using filesystem-linked sockets for the system
10640         bus, so only root can create the default system bus address.
10641         
10642         * bus/system.conf.in: change to use
10643         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10644
10645         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10646         from here.
10647
10648         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10649         here, and AC_DEFINE DBUS_SYSTEM_PATH
10650
10651 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10652
10653         * doc/TODO:
10654         * doc/busconfig.dtd:
10655         Add busconfig DTD.
10656         
10657 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10658
10659         * doc/dbus-specification.sgml:
10660         Add activation reply values.
10661         
10662 2003-08-05  Havoc Pennington  <hp@redhat.com>
10663
10664         * configure.in: 0.12
10665
10666 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10667
10668         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10669         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10670         (add_watch), (remove_watch), (create_source):
10671         Refcount fds, fixes some reentrancy issues.
10672         
10673 2003-07-30  Havoc Pennington  <hp@redhat.com>
10674
10675         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10676         bus address to be abstract if we have abstract sockets
10677
10678         * NEWS: update
10679
10680 2003-07-28  Havoc Pennington  <hp@redhat.com>
10681
10682         * bus/messagebus.in: fix to avoid processname/servicename 
10683         confusion, from Michael Kearey
10684         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10685         
10686 2003-07-23  Havoc Pennington  <hp@pobox.com>
10687
10688         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10689         fix from Andy Hanton to remove broken "+1"
10690
10691 2003-07-16  Havoc Pennington  <hp@pobox.com>
10692
10693         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10694         babysitter process, as suggested by Thomas Leonard, so 
10695         an "eval `dbus-launch --exit-with-session`" will actually 
10696         return
10697
10698 2003-07-16  Havoc Pennington  <hp@pobox.com>
10699
10700         * configure.in: print out EXPANDED_* variables in the summary at
10701         the end; clean up the code that computes EXPANDED_ variables and
10702         get the ones using exec_prefix right. Should make things work
10703         when you build without --prefix
10704
10705 2003-06-29  Havoc Pennington  <hp@pobox.com>
10706
10707         * mono/Test.cs (class Test): fire up a main loop and run it
10708
10709         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10710         done once, the app has to do it
10711
10712 2003-06-26  Havoc Pennington  <hp@pobox.com>
10713
10714         * mono/Connection.cs: set up connection with the glib main loop
10715
10716 2003-07-01  Havoc Pennington  <hp@redhat.com>
10717
10718         * doc/dbus-specification.sgml: clarify the format of a type code,
10719         change suggested by Jim Blandy
10720
10721 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10722
10723         * doc/Makefile.am:
10724         * tools/Makefile.am: Don't assume srcdir == builddir.
10725
10726         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10727         the allocated block.
10728         (_dbus_memory_test): New function.
10729         * dbus/dbus-test.h: Add _dbus_memory_test ().
10730         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10731
10732         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10733         of %c%c%c%c.
10734         (dbus_message_new): Remove obsolete @todo.
10735
10736         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10737         (_dbus_marshal_set_uint64): Fix comment.
10738
10739         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10740         hardcode FIELD_REPLY_SERIAL.
10741
10742         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10743         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10744
10745         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10746         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10747
10748 2003-06-24  Havoc Pennington  <hp@pobox.com>
10749
10750         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10751
10752 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10753
10754         * configure.in:
10755         * gcj/.cvsignore:
10756         * gcj/Hello.java:
10757         * gcj/Makefile.am:
10758         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10759         * gcj/org/.cvsignore:
10760         * gcj/org/Makefile.am:
10761         * gcj/org/freedesktop/.cvsignore:
10762         * gcj/org/freedesktop/Makefile.am:
10763         * gcj/org/freedesktop/dbus/.cvsignore:
10764         * gcj/org/freedesktop/dbus/Makefile.am:
10765         * gcj/org/freedesktop/dbus/Message.java: (Message),
10766         (Message.Message):
10767         * gcj/org/freedesktop/dbus/natMessage.cc:
10768         Fix the build system.
10769
10770 2003-06-22  Havoc Pennington  <hp@pobox.com>
10771
10772         * mono/Connection.cs: add more bindings
10773
10774         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10775         more than once.
10776
10777 2003-06-22  Havoc Pennington  <hp@pobox.com>
10778
10779         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10780         Start wrapping more stuff.
10781
10782 2003-06-22  Havoc Pennington  <hp@pobox.com>
10783
10784         * mono/Message.cs: implement Message.Wrap() that ensures we only
10785         have a single C# wrapper per DBusMessage, assuming it works which
10786         it probably doesn't.
10787
10788         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10789         (dbus_message_free_data_slot): new
10790         (dbus_message_set_data): new
10791         (dbus_message_get_data): new
10792
10793 2003-06-22  Havoc Pennington  <hp@pobox.com>
10794
10795         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10796         (_dbus_data_slot_allocator_alloc): rework these to keep a
10797         reference count on each slot and automatically manage a global
10798         slot ID variable passed in by address
10799
10800         * bus/bus.c: convert to new dataslot API
10801
10802         * dbus/dbus-bus.c: convert to new dataslot API
10803
10804         * dbus/dbus-connection.c: convert to new dataslot API
10805
10806         * dbus/dbus-server.c: convert to new dataslot API
10807
10808         * glib/dbus-gmain.c: ditto
10809
10810         * bus/test.c: ditto
10811
10812         * bus/connection.c: ditto
10813
10814 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10815
10816         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10817         after the gcj checks so that the correct configuration tags
10818         will be added to libtool.
10819
10820         * dbus-glib-1.pc.in: No need to specify any includes since
10821         dbus-1.pc.in has those.
10822
10823 2003-06-22  Havoc Pennington  <hp@pobox.com>
10824
10825         * mono/*, gcj/*, configure.in, Makefile.am:
10826         Check in makefiles and subdirs for mono and gcj bindings.
10827         Neither binding actually exists, just trying to get through
10828         all the build and other boring bits.
10829
10830 2003-06-21  Philip Blundell  <philb@gnu.org>
10831
10832         * tools/dbus-monitor.1: Updated.
10833
10834         * tools/dbus-send.1: Likewise.
10835
10836 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10837
10838         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10839         for hangup and error after checking read so we won't discard
10840         pending data if both hangup and read are set.
10841
10842 2003-06-19  Philip Blundell  <philb@gnu.org>
10843
10844         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10845
10846         * tools/dbus-send.c: Accept both --system and --session.
10847
10848         * tools/dbus-monitor.c: Same here.
10849
10850 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10851
10852         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10853         from C++ (Patch by Miloslav Trmac).
10854
10855 2003-06-15  Joe Shaw  <joe@assbarn.com>
10856
10857         * configure.in: Check for socklen_t.
10858
10859         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10860
10861         * test/test-segfault.c: Add #include <sys/time.h>
10862
10863         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10864         dbus-launch needs it.
10865
10866 2003-06-09  Havoc Pennington  <hp@redhat.com>
10867
10868         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10869         SUN_LEN, it breaks abstract socket usage
10870
10871         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10872         starts of lines.
10873
10874 2003-06-04  Havoc Pennington  <hp@pobox.com>
10875
10876         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10877         using unix:abstract=/foo, and when listening in a tmpdir
10878         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10879
10880         * dbus/dbus-transport.c (_dbus_transport_open): support
10881         unix:abstract=/foo
10882
10883         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10884         support abstract sockets
10885
10886         * dbus/dbus-transport-unix.c
10887         (_dbus_transport_new_for_domain_socket): support abstract sockets
10888
10889         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10890         toggle as an argument, implement abstract namespace support
10891         (_dbus_listen_unix_socket): ditto
10892
10893         * configure.in: add --enable-abstract-sockets and implement
10894         a configure check for autodetection of the right value.
10895
10896 2003-06-01  Havoc Pennington  <hp@pobox.com>
10897
10898         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10899         in /tmp (though on Linux this will end up being useless,
10900         when we add abstract namespace support)
10901
10902         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10903         subst'ing it
10904
10905 2003-05-28  Colin Walters  <walters@verbum.org>
10906
10907         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10908
10909 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10910
10911         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10912
10913 2003-05-17  Colin Walters  <walters@gnu.org>
10914
10915         * tools/dbus-send.c: Don't exit with an error code if --help was
10916         passed.  Default to using the session bus instead of the system
10917         one.
10918
10919         * tools/dbus-launch.c: Ditto.
10920
10921         * tools/dbus-monitor.c: Ditto.
10922
10923         * tools/dbus-send.1: Update with new arguments.
10924
10925         * tools/dbus-launch.c: Emit code to export variables.  New
10926         arguments -s and -c to specify shell syntax, and a bit of code to
10927         autodetect syntax.  Also, allow specifying a program to run.
10928
10929         * tools/dbus-launch.1: Update with new arguments.
10930
10931         * tools/dbus-send.1: Ditto.
10932
10933         * tools/dbus-monitor.1: Ditto.
10934
10935 2003-05-17  Havoc Pennington  <hp@pobox.com>
10936
10937         * bus/config-parser.c (merge_included): merge in policies from
10938         child configuration file.
10939
10940         * bus/policy.c (bus_policy_merge): function to merge two policies
10941         together
10942
10943 2003-05-16  Havoc Pennington  <hp@redhat.com>
10944
10945         * dbus/dbus-connection.c: disable verbose lock spew
10946
10947         * tools/dbus-send.c: add --print-reply command line option
10948
10949         * tools/dbus-print-message.h (print_message): new util function
10950         shared by dbus-send and dbus-monitor
10951
10952         * tools/dbus-monitor.c (handler_func): exit on disconnect
10953
10954         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10955         disconnected, don't try to use the read_watch
10956
10957         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10958         so we can find this bug more easily
10959
10960 2003-05-16  Havoc Pennington  <hp@redhat.com>
10961
10962         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10963         NULL as DBusHashTable is annoyingly likely to do.
10964
10965 2003-05-16  Colin Walters  <walters@verbum.org>
10966
10967         * tools/dbus-monitor.c: Add --session argument and usage()
10968         function.
10969
10970         * tools/dbus-monitor.1: Update with new --session arg.
10971
10972         * bus/Makefile.am (install-data-hook): Create
10973         $(libdir)/dbus-1.0/services so that the session bus is happy.
10974
10975 2003-05-15  Havoc Pennington  <hp@redhat.com>
10976
10977         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10978         on non-x86. ifdef's are evil.
10979
10980 2003-05-15  Havoc Pennington  <hp@redhat.com>
10981
10982         * configure.in: 0.11
10983
10984         * NEWS: update
10985
10986         * bus/Makefile.am (initddir): apparently we are supposed to put
10987         init scripts in /etc/rc.d/init.d not /etc/init.d
10988
10989         * bus/Makefile.am: remove the "you must --enable-tests to make
10990         check" as it broke distcheck
10991
10992         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10993
10994 2003-05-13  James Willcox  <jwillcox@gnome.org>
10995
10996         * configure.in:
10997         * bus/activation.c: (bus_activation_service_created),
10998         (bus_activation_activate_service):
10999         * bus/driver.c: (bus_driver_send_service_deleted),
11000         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11001         (bus_driver_send_service_acquired),
11002         (bus_driver_send_welcome_message),
11003         (bus_driver_handle_list_services):
11004         * bus/session.conf.in:
11005         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
11006         (dbus_bus_service_exists), (dbus_bus_activate_service):
11007         * dbus/dbus-bus.h:
11008
11009         Add some convenience API which lets you activate a service, and did a
11010         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
11011         and dbus_message_get_args()
11012
11013 2003-05-11  Havoc Pennington  <hp@pobox.com>
11014
11015         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
11016         calling _dbus_marshal_validate_arg() for every byte in a byte
11017         array, etc.
11018
11019         * dbus/dbus-message-handler.c: use atomic reference counting to
11020         reduce number of locks slightly; the global lock in here sucks
11021
11022         * dbus/dbus-connection.c
11023         (_dbus_connection_update_dispatch_status_and_unlock): variant of
11024         update_dispatch_status that can be called with lock held; then use
11025         in a couple places to reduce locking/unlocking
11026         (dbus_connection_send): hold the lock over the whole function
11027         instead of acquiring it twice.
11028
11029         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
11030
11031         * bus/connection.c (bus_connections_setup_connection): fix access
11032         to already-freed memory.
11033
11034         * dbus/dbus-connection.c: keep a little cache of linked list
11035         nodes, to avoid using the global linked list alloc lock in the
11036         normal send-message case. Instead we just use the connection lock
11037         that we already have to take.
11038
11039         * dbus/dbus-list.c (_dbus_list_find_last): new function
11040
11041         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
11042         change to use a struct for the atomic type; fix docs,
11043         they return value before increment, not after increment.
11044
11045         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
11046         (_dbus_string_append_8_aligned): new functions to try to
11047         microoptimize this operation.
11048         (reallocate_for_length): break this out of set_length(), to
11049         improve profile info, and also so we can consider inlining the
11050         set_length() part.
11051
11052         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
11053         strings with some preallocation, cuts down on our calls to realloc
11054         a fair bit. Though if we can get the "move entire string to empty
11055         string" optimization below to kick in here, it would be better.
11056
11057         * dbus/dbus-string.c (_dbus_string_move): just call
11058         _dbus_string_move_len
11059         (_dbus_string_move_len): add a special case for moving
11060         an entire string into an empty string; we can just
11061         swap the string data instead of doing any reallocs.
11062         (_dbus_string_init_preallocated): new function
11063
11064 2003-05-11  Havoc Pennington  <hp@pobox.com>
11065
11066         Write a "test-profile" that does echo client-server with threads;
11067         profile reveals lock contention, memcpy/realloc of buffers, and
11068         UTF-8 validation as hot spots. 20% of lock contention eliminated
11069         with dbus_atomic_inc/dec implementation on x86.  Much remaining
11070         contention is global mempool locks for GList and DBusList.
11071
11072         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
11073         x86 implementation
11074
11075         * dbus/dbus-connection.c (struct DBusConnection): use
11076         dbus_atomic_t for the reference count
11077
11078         * dbus/dbus-message.c (struct DBusMessage): declare
11079         dbus_atomic_t values as volatile
11080
11081         * configure.in: code to detect ability to use atomic integer
11082         operations in assembly, from GLib patch
11083
11084         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
11085         time, tired of it being wrong in threads and forked processes
11086
11087         * glib/test-profile.c: a little program to bounce messages back
11088         and forth between threads and eat CPU
11089
11090         * dbus/dbus-connection.c: add debug spew macros for debugging
11091         thread locks; include config.h at top; fix deadlock in
11092         dbus_connection_flush()
11093
11094 2003-05-08  Havoc Pennington  <hp@pobox.com>
11095
11096         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
11097         data from getting written, and there wasn't a good reason to
11098         use _exit really.
11099
11100         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
11101         dbus_verbose lines in test coverage
11102         (main): add list of functions sorted by # of untested blocks
11103         to the coverage report
11104
11105         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
11106
11107         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
11108
11109         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
11110         extend test coverage
11111
11112         * test/data/auth/cancel.auth-script: test canceling an
11113         authentication
11114
11115         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
11116         aren't used. in CVS history if we end up needing them.
11117
11118 2003-05-04  Havoc Pennington  <hp@pobox.com>
11119
11120         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
11121         unit test
11122
11123         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
11124         function, which assumed length was in # of strings, not bytes
11125
11126         * dbus/dbus-message.c (_dbus_message_test): add tests for some
11127         missing coverage
11128
11129         * dbus/dbus-connection.c
11130         (_dbus_connection_queue_received_message): disable function for
11131         now, we are only using it in test mode
11132
11133         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11134         remove a mistaken FIXME
11135
11136 2003-05-04  Havoc Pennington  <hp@pobox.com>
11137
11138         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
11139         unlock mutex on successful return, patch from Anders Gustafsson
11140
11141 2003-05-04  Havoc Pennington  <hp@pobox.com>
11142
11143         * dbus-glib-1.pc.in (Requires): fix dependencies, from
11144         Anders Gustafsson
11145
11146 2003-05-04  Havoc Pennington  <hp@pobox.com>
11147
11148         * tools/dbus-launch.c: implement
11149
11150         * bus/main.c (main), bus/bus.c (bus_context_new):
11151         implement --print-pid and --fork
11152
11153 2003-05-03  Havoc Pennington  <hp@redhat.com>
11154
11155         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
11156         the address had no value, and add to test suite. Fix and
11157         regression test from Miloslav Trmac
11158
11159 2003-05-03  Havoc Pennington  <hp@pobox.com>
11160
11161         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
11162         watch is invalid when handled
11163
11164         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
11165         dbus-launch utility to launch the bus from a shell script.  Didn't
11166         actually implement dbus-launch yet, it's just a placeholder still.
11167
11168 2003-05-03  Havoc Pennington  <hp@pobox.com>
11169
11170         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
11171         daemon; also documents daemon config file, so replaces
11172         doc/config-file.txt. Corrected some stuff from config-file.txt in
11173         the process of moving it.
11174
11175 2003-05-03  Havoc Pennington  <hp@pobox.com>
11176
11177         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
11178         add some man pages
11179
11180 2003-05-03  Colin Walters  <walters@verbum.org>
11181
11182         * dbus/dbus-sysdeps.c (fill_user_info): Test against
11183         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
11184
11185         * Makefile.am: Update to use new .pc versioning scheme.
11186
11187 2003-05-02  Havoc Pennington  <hp@redhat.com>
11188
11189         * bus/system.conf.in: allow send/receive to/from message bus
11190         service
11191
11192 2003-04-30  Havoc Pennington  <hp@redhat.com>
11193
11194         * configure.in: print a note when building with unit tests and
11195         without assertions
11196
11197 2003-04-30  Havoc Pennington  <hp@redhat.com>
11198
11199         * Makefile.am: add a check-local that complains if you didn't
11200         configure with --enable-tests
11201
11202 2003-04-29  Havoc Pennington  <hp@redhat.com>
11203
11204         * glib/dbus-gmain.c: docs cleanups
11205
11206         * dbus/dbus-types.h: add docs on int64 types
11207
11208         * dbus/dbus-memory.c: fix docs to avoid putting private API in
11209         public API docs section
11210
11211 2003-04-29  Havoc Pennington  <hp@redhat.com>
11212
11213         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
11214         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
11215         parallel install API version, not with the D-BUS package version.
11216
11217         * HACKING: move some of README over here
11218
11219         * README: updates, and document API/ABI policy
11220
11221         * configure.in: reindentation
11222
11223 2003-04-29  Havoc Pennington  <hp@redhat.com>
11224
11225         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
11226         to use this library" to be sure people have the right
11227         expectations.
11228
11229 2003-04-28  Havoc Pennington  <hp@redhat.com>
11230
11231         * configure.in: add --enable-docs which by default is auto yes if
11232         doxygen and db2html found, no otherwise; but can be forced on/off
11233
11234         * doc/Makefile.am: conditionalize whether to build docs on
11235         --enable-docs
11236
11237 2003-04-28  Havoc Pennington  <hp@redhat.com>
11238
11239         * configure.in: 0.10
11240
11241         * NEWS: update
11242
11243         * bus/system.conf.in: add <includedir>system.d</includedir>
11244
11245         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
11246         username was provided but not uid
11247
11248         * bus/config-parser.c (struct BusConfigParser): keep track of
11249         whether the parser is toplevel or was included; change some
11250         of the error handling if it's included.
11251
11252 2003-04-27  Havoc Pennington  <hp@pobox.com>
11253
11254         Unbreak my code...
11255
11256         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11257         report correct status if we finish processing authentication
11258         inside this function.
11259
11260         * bus/activation.c (try_send_activation_failure): use
11261         bus_transaction_send_error_reply
11262
11263         * bus/connection.c (bus_connection_get_groups): return an error
11264         explaining the problem
11265
11266         * bus/bus.c (bus_context_check_security_policy): implement
11267         restriction here that inactive connections can only send the
11268         hello message. Also, allow bus driver to send anything to
11269         any recipient.
11270
11271         * bus/connection.c (bus_connection_complete): create the
11272         BusClientPolicy here instead of on-demand.
11273         (bus_connection_get_policy): don't return an error
11274
11275         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
11276         sender field in message being replied to
11277
11278         * bus/bus.c (bus_context_check_security_policy): fix silly typo
11279         causing it to return FALSE always
11280
11281         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
11282         we checked sender rather than destination
11283
11284 2003-04-25  Havoc Pennington  <hp@redhat.com>
11285
11286         test suite is slightly hosed at the moment, will fix soon
11287
11288         * bus/connection.c (bus_connections_expire_incomplete): fix to
11289         properly disable the timeout when required
11290         (bus_connection_set_name): check whether we can remove incomplete
11291         connections timeout after we complete each connection.
11292
11293         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
11294         probably still broken.
11295
11296         * bus/services.c (bus_registry_acquire_service): implement max
11297         number of services owned, and honor allow/deny rules on which
11298         services a connection can own.
11299
11300         * bus/connection.c (bus_connection_get_policy): report errors here
11301
11302         * bus/activation.c: implement limit on number of pending
11303         activations
11304
11305 2003-04-25  Havoc Pennington  <hp@redhat.com>
11306
11307         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
11308         where we used >= 0 instead of != DBUS_UID_UNSET.
11309
11310 2003-04-25  Havoc Pennington  <hp@redhat.com>
11311
11312         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
11313         were toggled without add/remove, fix from Anders Gustafsson
11314
11315 2003-04-24  Havoc Pennington  <hp@redhat.com>
11316
11317         * test/data/valid-config-files/basic.conf: add <limit> tags to
11318         this test
11319
11320         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
11321         <limit> tag in configuration file.
11322
11323 2003-04-24  Havoc Pennington  <hp@redhat.com>
11324
11325         * bus/dispatch.c: somehow missed some name_is
11326
11327         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
11328         (_dbus_timeout_set_interval): new
11329
11330         * bus/connection.c (bus_connections_setup_connection): record time
11331         when each connection is first set up, and expire them after the
11332         auth timeout passes.
11333
11334 2003-04-24  Havoc Pennington  <hp@redhat.com>
11335
11336         * dbus/dbus-message.c (dbus_message_name_is): rename
11337         (dbus_message_service_is): rename
11338         (dbus_message_sender_is): rename
11339         (dbus_message_get_service): rename
11340
11341 2003-04-24  Havoc Pennington  <hp@redhat.com>
11342
11343         * configure.in: add --enable-checks
11344
11345         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11346
11347         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11348         to use thread locks.
11349         (_dbus_connection_handler_destroyed_locked): move some private
11350         functions into proper docs group
11351
11352         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11353         _dbus_return_val_if_fail
11354
11355         Throughout: use dbus_return_if_fail
11356
11357 2003-04-23  James Willcox  <jwillcox@gnome.org>
11358
11359         * glib/dbus-glib.h:
11360         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11361         (dbus_connection_setup_with_g_main),
11362         (dbus_server_setup_with_g_main):
11363         * glib/test-dbus-glib.c: (main):
11364         * glib/test-thread-client.c: (main):
11365         * glib/test-thread-server.c: (new_connection_callback), (main):
11366         * tools/dbus-monitor.c: (main):
11367
11368         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11369         and dbus_server_setup_with_g_main().
11370
11371 2003-04-20  Havoc Pennington  <hp@pobox.com>
11372
11373         * doc/dbus-specification.sgml: document the restrictions on
11374         message and service names
11375
11376 2003-04-22  Havoc Pennington  <hp@redhat.com>
11377
11378         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11379         support, and do some code cleanups to share more code and
11380         speed up array marshal/demarshal.
11381
11382         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11383
11384         * configure.in: generate dbus-arch-deps.h
11385
11386         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11387         64-bit typecodes
11388
11389 2003-04-22  Havoc Pennington  <hp@redhat.com>
11390
11391         * test/data/valid-messages/opposite-endian.message: fix test
11392         to use proper type for rply field
11393
11394         * test/data/invalid-messages: add tests for below validation
11395
11396         * dbus/dbus-message.c (decode_header_data): validate field types,
11397         and validate that named fields are valid names
11398         (decode_name_field): consider messages in the
11399         org.freedesktop.Local. namespace to be invalid.
11400
11401         * dbus/dbus-string.c (_dbus_string_validate_name): new
11402
11403 2003-04-19  Havoc Pennington  <hp@pobox.com>
11404
11405         * bus/driver.c (bus_driver_handle_hello): check limits and
11406         return an error if they are exceeded.
11407
11408         * bus/connection.c: maintain separate lists of active and inactive
11409         connections, and a count of each. Maintain count of completed
11410         connections per user. Implement code to check connection limits.
11411
11412         * dbus/dbus-list.c (_dbus_list_unlink): export
11413
11414         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11415         number of bytes in the message queue for a connection
11416
11417 2003-04-18  Havoc Pennington  <hp@pobox.com>
11418
11419         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11420
11421         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11422         memleaks
11423
11424         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11425         on realloc be sure to update the pointer in the keyring
11426
11427         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11428         offset to avoid writing to unallocated memory
11429
11430         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11431         try the next mechanism, so we properly handle OOM
11432
11433         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11434         on OOM.
11435         (_dbus_keyring_new): fix OOM bug
11436         (_dbus_keyring_new_homedir): always set error; impose a maximum
11437         number of keys we'll load from the file, mostly to speed up the
11438         test suite and make its OOM checks more useful, but also for
11439         general sanity.
11440
11441         * dbus/dbus-auth.c (process_error_server): reject authentication
11442         if we get an error from the client
11443         (process_cancel): on cancel, send REJECTED, per the spec
11444         (process_error_client): send CANCEL if we get an error from the
11445         server.
11446
11447 2003-04-18  Havoc Pennington  <hp@pobox.com>
11448
11449         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11450         debug spew
11451
11452         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11453         handling problem
11454
11455         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11456         about DBUS_TEST_HOMEDIR once
11457
11458         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11459         the environment
11460
11461         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11462         config file so we test the right thing
11463
11464         Throughout: assorted docs improvements
11465
11466 2003-04-18  Havoc Pennington  <hp@pobox.com>
11467
11468         * glib/dbus-gmain.c: adapt to watch changes
11469
11470         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11471
11472         * dbus/dbus-server.h: remove dbus_server_handle_watch
11473
11474         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11475
11476         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11477         like DBusTimeout, so we don't need dbus_connection_handle_watch
11478         etc.
11479
11480 2003-04-17  Havoc Pennington  <hp@redhat.com>
11481
11482         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11483         database usage so it all goes via the DBusUserDatabase cache.
11484
11485 2003-04-17  Havoc Pennington  <hp@redhat.com>
11486
11487         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11488         there was an OOM watch we skipped, we always return TRUE so we
11489         iterate again to have a look at it again. Fixes test suite hang.
11490         Code rearrangement also lets us lose some memset and only iterate
11491         over callbacks once.
11492
11493         * bus/driver.c (bus_driver_handle_message): sense of test for
11494         reply was backward
11495
11496 2003-04-16  Havoc Pennington  <hp@pobox.com>
11497
11498         * doc/dbus-specification.sgml: make spec say serials are unsigned
11499
11500         * dbus/dbus-message.h: change message serials to unsigned
11501
11502         * dbus/dbus-connection.c: adapt to message serials being unsigned
11503
11504 2003-04-15  Havoc Pennington  <hp@pobox.com>
11505
11506         * bus/bus.c: create and keep around a shared DBusUserDatabase
11507         object.
11508
11509         * bus/connection.c (bus_connection_get_groups): don't cache
11510         groups for user in the connection object, since user database
11511         object now does that.
11512
11513 2003-04-16  Havoc Pennington  <hp@redhat.com>
11514
11515         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11516         list of size counters
11517         (_dbus_message_loader_putback_message_link): put back a popped link
11518
11519         * dbus/dbus-connection.c
11520         (dbus_connection_set_max_live_messages_size): rename
11521         max_received_size
11522         (dbus_connection_get_outgoing_size): get size of outgoing
11523         queue
11524         (_dbus_connection_set_connection_counter): remove this cruft
11525
11526 2003-04-14  Havoc Pennington  <hp@redhat.com>
11527
11528         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11529         caching, but at some point we might want to be able to use a
11530         different database.
11531
11532         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11533         SHA1 conf file to test the sha1 auth mechanism, since the regular
11534         test always uses EXTERNAL when available.
11535
11536         * configure.in,
11537         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11538         add conf file that requires use of sha1 auth
11539
11540 2003-04-13  Havoc Pennington  <hp@pobox.com>
11541
11542         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11543         from Philip Blundell to send messages and monitor them.
11544
11545 2003-04-13  Havoc Pennington  <hp@pobox.com>
11546
11547         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11548         callbacks
11549
11550         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11551         users
11552
11553         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11554         fix to only recover unused bytes if we're already authenticated
11555         (_dbus_transport_get_is_authenticated): fix to still mark us
11556         authenticated if there are unused bytes.
11557
11558         * bus/dispatch.c: implement security policy checking
11559
11560         * bus/connection.c (bus_transaction_send_from_driver): new
11561
11562         * bus/bus.c (bus_context_check_security_policy): new
11563
11564         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11565         now we just set the DBusError and it gets converted to an error
11566         reply.
11567
11568         * bus/connection.c (allow_user_function): enable code using actual
11569         data from the config file
11570
11571         * bus/policy.c (list_allows_user): handle wildcard rules for
11572         user/group connection perms
11573
11574 2003-04-13  Havoc Pennington  <hp@pobox.com>
11575
11576         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11577
11578         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11579
11580         * bus/policy.c (bus_policy_append_mandatory_rule)
11581         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11582         (bus_policy_append_group_rule): new functions
11583
11584 2003-04-12  Havoc Pennington  <hp@pobox.com>
11585
11586         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11587
11588         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11589         the pid/gid/uid, just for paranoia.
11590
11591         * test/break-loader.c (randomly_do_n_things): find a byte
11592         containing a type code, and randomly change it to a different
11593         type code.
11594
11595 2003-04-12  Havoc Pennington  <hp@pobox.com>
11596
11597         * bus/policy.h: change BusPolicy to be the thing from the config
11598         file, and rename old BusPolicy to BusClientPolicy
11599
11600         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11601         match change in how policy works
11602
11603         * dbus/dbus-internals.h: mark assert_not_reached as
11604         __attribute((noreturn))__
11605
11606 2003-04-11  Havoc Pennington  <hp@redhat.com>
11607
11608         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11609         the broadcast service. Use boolean return for ServiceExists.
11610
11611 2003-04-11  Havoc Pennington  <hp@redhat.com>
11612
11613         * configure.in: add another directory to look for qt in.
11614
11615 2003-04-11  Havoc Pennington  <hp@redhat.com>
11616
11617         * AUTHORS: add Colin Walters
11618
11619 2003-04-11  Havoc Pennington  <hp@redhat.com>
11620
11621         * NEWS: update
11622
11623         * configure.in: 0.9
11624
11625 2003-04-11  Havoc Pennington  <hp@redhat.com>
11626
11627         * bus/messagebus.in: remove pid file when stopping the
11628         message bus, since the bus won't have privileges to remove it
11629         itself.
11630
11631 2003-04-11  Havoc Pennington  <hp@redhat.com>
11632
11633         * bus/bus.c (bus_context_new): move credentials change after
11634         creating pidfile
11635
11636 2003-04-11  Havoc Pennington  <hp@pobox.com>
11637
11638         * test/decode-gcov.c: add "below average functions" to the
11639         coverage report, and change how some of the code works.
11640
11641         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11642         not in the coverage stats.
11643
11644         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11645         couple places so running the test suite doesn't result in megaspam.
11646
11647 2003-04-11  Havoc Pennington  <hp@pobox.com>
11648
11649         * bus/dispatch.c (check_existent_service_activation): accept a no
11650         memory error in a place we didn't before
11651
11652         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11653         in case the first one failed," since the test suite is less
11654         broken now.
11655
11656 2003-04-10  Havoc Pennington  <hp@pobox.com>
11657
11658         * bus/dispatch.c (check_segfault_service_activation): add test
11659         for launching an executable that just crashes.
11660
11661         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11662         don't leave a million cores. We'll see how portable this is.
11663
11664 2003-04-10  Havoc Pennington  <hp@pobox.com>
11665
11666         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11667         the possible parent failures before we fork, so that we don't
11668         fail to create a babysitter after creating the child.
11669
11670         * bus/activation.c (bus_activation_activate_service): kill child
11671         if we don't successfully complete the activation.
11672
11673 2003-04-10  Havoc Pennington  <hp@redhat.com>
11674
11675         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11676         the connection if it's disconnected
11677
11678         * bus/activation.c (bus_activation_service_created): use new
11679         transaction features to roll back removal of pending activation if
11680         we don't successfully create the service after all. Don't remove
11681         pending activation if the function fails.
11682
11683         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11684         (_dbus_list_insert_after_link): new code to facilitate
11685         services.c fixes
11686
11687         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11688         new functionality, so we can preallocate the ability to insert
11689         into a hash table.
11690
11691         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11692         allowing us to put custom hooks in a transaction to be used for
11693         cancelling said transaction
11694
11695         * doc/dbus-specification.sgml: add some discussion of secondary
11696         service owners, and disallow zero-length service names
11697
11698         * bus/services.c (bus_registry_acquire_service): new function,
11699         splits out part of bus_driver_handle_acquire_service() and fixes
11700         a bug where we didn't remove the service doing the acquiring
11701         from the secondary queue if we failed to remove the current owner
11702         from the front of the queue.
11703
11704 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11705
11706         * doc/dbus-specification.sgml:
11707         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11708
11709 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11710
11711         * bus/.cvsignore:
11712         * glib/.cvsignore:
11713         * test/.cvsignore:
11714         Added files to cvsignore
11715
11716         * dbus/dbus-message.h:
11717         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11718         Make get_named() take two out argument and return a boolean.
11719         (dbus_message_iter_get_args_valist):
11720         Update usage of get_named().
11721         (dbus_message_iter_append_byte):
11722         Fix typo
11723         (dbus_message_iter_append_named)
11724         Fix typo
11725         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11726         More tests.
11727
11728 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11729
11730         * dbus/dbus-marshal.[ch]:
11731         Add array_type_pos argument to _dbus_marshal_validate_arg.
11732         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11733
11734         * dbus/dbus-message.[ch]:
11735         Multi-dimensional arrays have full type specification in the
11736         outermost array. Iter code re-arranged to handle this.
11737         Added some more iter tests.
11738
11739         * doc/dbus-specification.sgml:
11740         Add me to authors.
11741         Remove old FIXME.
11742         Update new array encoding description.
11743         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11744
11745         * test/data/invalid-messages/array-with-mixed-types.message:
11746         * test/data/valid-messages/array-of-array-of-uint32.message:
11747         Change to the new array format.
11748
11749         * test/data/invalid-messages/too-short-dict.message:
11750         Fix bug in test.
11751
11752         * test/data/valid-messages/recursive-types.message:
11753         Fix up and extend test.
11754
11755 2003-04-10  Havoc Pennington  <hp@pobox.com>
11756
11757         * bus/dispatch.c: lots of fixes
11758
11759         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11760         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11761         that was crack, broke the test service.
11762
11763         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11764         handling to avoid piling up errors if we get a failure on the
11765         first address.
11766
11767         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11768         pid in assertion failures.
11769
11770         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11771         to some fixed size of file descriptor array. Don't return TRUE
11772         anytime a timeout exists, that led to lots of busy loop silliness
11773         in the tests.
11774
11775 2003-04-09  Havoc Pennington  <hp@redhat.com>
11776
11777         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11778         I'd checked this in earlier but hadn't.
11779
11780 2003-04-09  Havoc Pennington  <hp@redhat.com>
11781
11782         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11783         the activation test (man this is getting old!)
11784
11785 2003-04-09  Havoc Pennington  <hp@redhat.com>
11786
11787         * test/test-utils.c: use dispatch status function to fix this up
11788
11789         * bus/connection.c (connection_watch_callback): don't dispatch
11790         from here
11791         (connection_timeout_callback): don't dispatch from here
11792         (bus_connections_setup_connection): set the dispatch status function
11793         (bus_connection_disconnected): unset it
11794
11795         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11796         used to add a connection to be dispatched
11797         (_dbus_loop_iterate): do the dispatching at the end of each
11798         iteration
11799
11800         * dbus/dbus-connection.c
11801         (dbus_connection_set_dispatch_status_function): new function
11802         allowing us to fix up main loop usage
11803         (_dbus_connection_last_unref): free all the various function
11804         user data
11805         (dbus_connection_dispatch): call the DispatchStatusFunction
11806         whenever this function returns
11807         (dbus_connection_handle_watch): call DispatchStatusFunction
11808         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11809         (reply_handler_timeout): call DispatchStatusFunction
11810         (dbus_connection_flush): call DispatchStatusFunction
11811
11812 2003-04-09  Havoc Pennington  <hp@redhat.com>
11813
11814         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11815         a memory leak
11816
11817         * bus/dispatch.c (check_service_activated): fix bug in test
11818
11819         * dbus/dbus-mainloop.c (check_timeout): fix this up
11820
11821         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11822         verbose output so we can sort out output from different processes,
11823         e.g. in the activation case.
11824
11825 2003-04-08  Colin Walters  <walters@gnu.org>
11826
11827         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11828         the pid file.
11829         (bus_context_new): Set it.
11830         (bus_context_unref): Use it to delete the pid file.
11831
11832 2003-04-08  Havoc Pennington  <hp@redhat.com>
11833
11834         * test/data/invalid-messages/array-with-mixed-types.message:
11835         regression test that fails for the moment
11836
11837         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11838         tests for convenience
11839
11840         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11841         array of nil, it broke things.
11842
11843         * test/data/invalid-messages/array-of-nil.message: regression test
11844
11845         * test/data/valid-messages/array-of-array-of-uint32.message:
11846         happened to write this so added it to suite
11847
11848 2003-04-08  Havoc Pennington  <hp@redhat.com>
11849
11850         * bus/driver.c (bus_driver_handle_acquire_service): init
11851         retval/reply before checking name
11852
11853         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11854         recursion depth argument
11855
11856         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11857         in the public struct for future extension
11858
11859         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11860         typo
11861
11862         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11863         message
11864
11865         * doc/dbus-specification.sgml: fix typo
11866
11867 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11868
11869         Implemented recursive types, named types and new-style iters
11870
11871         * bus/driver.c:
11872         * glib/test-thread-client.c: (thread_func):
11873         * glib/test-thread-server.c: (handle_test_message):
11874         * test/test-service.c: (handle_echo):
11875         Update to new api
11876
11877         * dbus/Makefile.am:
11878         * dbus/dbus-dict.c:
11879         * dbus/dbus-dict.h:
11880         * dbus/dbus.h
11881         Remove DBusDict
11882
11883         * dbus/dbus-internals.c: (_dbus_type_to_string):
11884         Update for new types.
11885
11886         * dbus/dbus-marshal.[ch]:
11887         Implement recursive types and the new marshalling format.
11888         Remove hardcoded dict marshalling.
11889         Marshal named types.
11890
11891         * dbus/dbus-message-builder.c:
11892         Add BYTE_ARRAY.
11893         Remove references to old types
11894
11895         * dbus/dbus-message.[ch]:
11896         New non-refcounted iter API that supports recursive iters.
11897         Use iters for appending, including support for recursive
11898         iters.
11899         Add byte and named type support.
11900         Update everything to new marshalling formats.
11901         Add tests for new API.
11902
11903         * dbus/dbus-protocol.h:
11904         Remove old array types.
11905         Add types: BYTE, ARRAY, DICT, NAMED
11906
11907         * dbus/dbus-string.c:
11908         * dbus/dbus-sysdeps.c:
11909         Make parse_double locale safe.
11910
11911         * dbus/dbus-test-main.c:
11912         Call setlocale.
11913
11914         * dbus/dbus-test.c:
11915         Kill dict test
11916
11917         * doc/dbus-specification.sgml:
11918         Update spec
11919
11920         * test/data/incomplete-messages/missing-body.message:
11921         * test/data/invalid-messages/bad-boolean.message:
11922         * test/data/invalid-messages/bad-boolean-array.message:
11923         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11924         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11925         * test/data/invalid-messages/too-short-dict.message:
11926         * test/data/valid-messages/dict-simple.message:
11927         * test/data/valid-messages/dict.message:
11928         * test/data/valid-messages/emptiness.message:
11929         * test/data/valid-messages/lots-of-arguments.message:
11930         * test/data/valid-messages/no-padding.message:
11931         * test/data/valid-messages/recursive-types.message:
11932         Add missing NAME fields
11933         Fix up dicts & arrays
11934
11935         * test/data/invalid-messages/dict-with-nil-value.message:
11936         Removed, this is not invalid anymore.
11937
11938         * test/data/valid-messages/recursive-types.message:
11939         Add new test for deeply recursive types.
11940
11941 2003-04-07  Havoc Pennington  <hp@pobox.com>
11942
11943         * bus/driver.c (bus_driver_handle_acquire_service): return an
11944         error if you try to acquire a service that starts with ':'
11945
11946 2003-04-07  Havoc Pennington  <hp@redhat.com>
11947
11948         * doc/dbus-specification.sgml: require that base service names
11949         start with ':' and that the base service is created/deleted
11950         as first and last things a connection does on the bus
11951
11952         * bus/dispatch.c (check_existent_service_activation): lots more
11953         work on the activation test; it doesn't fully pass yet...
11954
11955         * test/test-service.c (main): fix so we don't memleak the
11956         connection to the message bus
11957         (filter_func): accept a message asking us to exit
11958
11959 2003-04-06  Havoc Pennington  <hp@pobox.com>
11960
11961         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11962         from Colin Walters
11963
11964         * configure.in: fixes to Qt detection from Colin Walters
11965
11966         * doc/Makefile.am: Only remove generated docbook dirs if they
11967         exist, from Colin Walters
11968
11969         * dbus/dbus-bus.c: change how we set well-known connections to
11970         NULL, so that it works if a single connection is stored in
11971         two well-known array slots.
11972
11973         * test/Makefile.am: remove a lot of stuff that isn't immediately
11974         useful, it's in CVS history if we want it.
11975
11976         * test/test-service.c: use dbus-mainloop instead of that
11977         watch.[hc] crack
11978
11979 2003-04-06  Havoc Pennington  <hp@pobox.com>
11980
11981         * dbus/Makefile.am: split lists of sources into stuff that goes in
11982         the library, util functions that go in the lib and are also used
11983         elsewhere, and util functions that are used in tests/daemon but
11984         don't go in the lib.
11985
11986         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11987         here so it can be used in test binaries also
11988
11989 2003-04-06  Havoc Pennington  <hp@pobox.com>
11990
11991         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11992         here in the parent process, so we can return an error if it
11993         fails. Also, move some of the code into the child so the parent
11994         is less hosed if we fail midway through.
11995
11996         * bus/bus.c (bus_context_new): move pidfile detection further up
11997         in the function, before we start overwriting sockets and such.
11998
11999         * bus/messagebus.in: adjust this a bit, not sure if it will work.
12000
12001         * configure.in: add --with-system-pid-file and --with-system-socket
12002
12003 2003-04-06  Colin Walters  <walters@verbum.org>
12004
12005         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
12006
12007         * bus/system.conf.in: Declare a pidfile.
12008
12009         * bus/bus.c (bus_context_new): Test for an existing pid file, and
12010         create one (if appropriate).
12011
12012         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
12013         (struct BusConfigParser) [pidfile]: New.
12014         (element_type_to_name, merge_included, start_busconfig_child)
12015         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
12016         (bus_config_parser_unref): Free it.
12017         (bus_config_parser_get_pidfile): New function.
12018
12019         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
12020
12021         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
12022
12023         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
12024
12025         * dbus/dbus-sysdeps.h: Prototype it.
12026
12027 2003-04-06  Havoc Pennington  <hp@pobox.com>
12028
12029         * bus/bus.c (bus_context_new): print the address in here, rather
12030         than in main(), because we need to do it before forking the daemon
12031
12032         * bus/dispatch.c (send_service_nonexistent_error): set the sender
12033         on the service nonexistent error
12034
12035         * bus/driver.c (bus_driver_handle_acquire_service): set the
12036         sender on the AcquireService reply
12037
12038         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
12039         server also listen on a UNIX socket so services can connect to it.
12040
12041 2003-04-06  Havoc Pennington  <hp@pobox.com>
12042
12043         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
12044         so it detects deadlocks and also we actually init threads when
12045         debugging.
12046
12047 2003-04-06  Havoc Pennington  <hp@pobox.com>
12048
12049         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
12050         save the domain socket name, and unlink it when we disconnect the
12051         server. Means that at least when we exit normally, we won't leave
12052         a bunch of junk in /tmp
12053
12054         * dbus/dbus-transport-unix.c
12055         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
12056         memory management). (I was making a real change here but then
12057         didn't)
12058
12059 2003-04-06  Havoc Pennington  <hp@pobox.com>
12060
12061         * bus/bus.c (bus_context_new): fix wrong handling of
12062         server_data_slot_unref() in the error case.
12063
12064         * dbus/dbus-internals.h (_dbus_assert): change so it passes
12065         "(condition) != 0" to _dbus_real_assert so that
12066         "_dbus_assert (pointer)" doesn't cause a warning
12067
12068         * bus/main.c (main): accept --print-address option to print out
12069         the message bus address
12070
12071         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
12072
12073         * dbus/dbus-transport.c (_dbus_transport_open): special error for
12074         "tmpdir" option to unix: address on client side
12075
12076         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
12077         to unix: address
12078
12079         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
12080         we can use to create sockets in the test suite.
12081
12082         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
12083         cleanly. To be used for testing.
12084
12085         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
12086
12087         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
12088
12089         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12090         handle trying to call this when there's no servers active
12091
12092 2003-04-05  Havoc Pennington  <hp@pobox.com>
12093
12094         * NEWS: update
12095
12096         * configure.in: 0.8
12097
12098 2003-04-05  Havoc Pennington  <hp@pobox.com>
12099
12100         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
12101         crash on startup. Need to get "try starting the daemon"
12102         in the test suite I guess. ;-)
12103
12104         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
12105         tracked the number of open connections; it's better done in
12106         application-specific code as you want it to span all servers etc.
12107
12108 2003-04-05  Havoc Pennington  <hp@pobox.com>
12109
12110         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
12111         patch from Colin Walters
12112
12113 2003-04-05  Havoc Pennington  <hp@pobox.com>
12114
12115         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
12116         reality; in fact multiple mechanisms are allowed.
12117
12118         * dbus/dbus-internals.c (_dbus_real_assert)
12119         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
12120         _dbus_assert_not_reached() into functions, so that they don't show
12121         up in basic block counts for test coverage, and don't use up as
12122         much disk space. Does mean slower execution speed though, so
12123         assumes --disable-asserts is the normal production case.
12124
12125 2003-04-05  Havoc Pennington  <hp@pobox.com>
12126
12127         * test/Makefile.am (dist-hook): also dist *.in files
12128
12129         * NEWS: update
12130
12131         * configure.in: 0.7
12132
12133 2003-04-05  Havoc Pennington  <hp@pobox.com>
12134
12135         * dbus/dbus-string.c: docs warning
12136
12137         * dbus/dbus-spawn.c: missing docs
12138
12139         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
12140
12141 2003-04-05  Havoc Pennington  <hp@pobox.com>
12142
12143         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
12144         magic from GLib
12145
12146         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
12147         to -1 once we've reaped the babysitter
12148         (_dbus_babysitter_handle_watch): do as much work as we can, not
12149         just one go of it
12150
12151         * bus/activation.c: add code using DBusBabysitter so that we
12152         handle it when a service fails to start up properly.
12153         (bus_activation_service_created): don't remove the activation
12154         entries as we go, just let them get removed when we free the pending
12155         activation. Unref reply messages after sending them.
12156
12157 2003-04-05  Havoc Pennington  <hp@pobox.com>
12158
12159         * test/decode-gcov.c (main): print per-directory stats in the report
12160
12161         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
12162
12163 2003-04-05  Havoc Pennington  <hp@pobox.com>
12164
12165         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
12166
12167         * test/decode-gcov.c: hack up a little program to suck data
12168         out of gcov files. Yes this is sort of silly.
12169
12170         * configure.in: define something in config.h and do an
12171         AM_CONDITIONAL when gcov is enabled
12172
12173 2003-04-04  Havoc Pennington  <hp@redhat.com>
12174
12175         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
12176         return a "babysitter" object that is used to monitor the status of
12177         the spawned process and reap it when required.
12178
12179         * test/test-segfault.c, test/test-exit.c,
12180         test/test-sleep-forever.c: binaries that do various lame things,
12181         used in the test suite.
12182
12183         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
12184
12185 2003-04-03  Havoc Pennington  <hp@pobox.com>
12186
12187         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
12188         in preparation for modifying it, dbus-sysdeps is getting
12189         a bit unmanageable.
12190
12191 2003-04-03  Havoc Pennington  <hp@redhat.com>
12192
12193         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
12194         have multiple ones
12195
12196         * bus/*.[hc]: adapt to mainloop change
12197
12198 2003-04-03  Havoc Pennington  <hp@redhat.com>
12199
12200         * bus/activation.c (load_directory): fix up memleaks
12201         (bus_activation_entry_free): free the entry
12202
12203         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
12204         we get one from the message bus; fix memleaks.
12205
12206         * dbus/dbus-message.c (dbus_set_error_from_message): new function
12207
12208 2003-04-03  Havoc Pennington  <hp@pobox.com>
12209
12210         * bus/config-parser.c (bus_config_parser_unref): free
12211         list of mechanisms, bug discovered by test suite enhancements
12212         (putting system.conf and session.conf into suite)
12213
12214         * test/Makefile.am, test/test-service.c: add placeholder for a
12215         test service that we'll activate as part of test suite. Doesn't
12216         do anything yet.
12217
12218         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
12219         setting NULL value, and use system malloc not dbus_malloc()
12220         when we have unavoidable memleakage.
12221
12222         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
12223         didn't work, and support DBUS_BUS_ACTIVATION.
12224
12225         * bus/activation.c (child_setup): pass our well-known bus type to
12226         the child
12227
12228         * bus/config-parser.c: support <type> to specify well-known type
12229
12230         * doc/dbus-specification.sgml: document the env variables to
12231         locate well-known buses and find service activator
12232
12233 2003-04-02  Havoc Pennington  <hp@redhat.com>
12234
12235         * test/Makefile.am (all-local): add a rule to copy tests to
12236         builddir, so we can have generated tests. Use this to remove the
12237         silly hack for testing system.conf and session.conf. Will use this
12238         shortly to generate .service files pointing to test binaries.
12239
12240 2003-04-02  Havoc Pennington  <hp@redhat.com>
12241
12242         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
12243         current alloc and needed new length, not max of the doubled
12244         allocation and needed new length. Also, when building tests,
12245         don't do the double-allocation stuff, just realloc every time.
12246
12247 2003-04-02  Havoc Pennington  <hp@redhat.com>
12248
12249         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
12250         in error messages
12251         (_dbus_string_get_dirname): new
12252         (_dbus_sysdeps_test): new
12253         (_dbus_directory_open): include dirnames in error messages
12254
12255         * bus/config-parser.c: interpret <include> and <includedir> and
12256         <servicedir> relative to config file location if the given
12257         filename is not absolute.
12258
12259         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
12260
12261 2003-04-02  Havoc Pennington  <hp@redhat.com>
12262
12263         * bus/connection.c (bus_transaction_send_error_reply): set sender
12264         service for the error, and unref the reply on success
12265
12266         * bus/activation.c: convert to use BusTransaction so OOM can be
12267         handled correctly
12268         (bus_activation_service_created): set sender of the message
12269
12270 2003-04-01  Havoc Pennington  <hp@redhat.com>
12271
12272         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
12273         <includedir> (at least mostly)
12274
12275         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
12276         first, then the user ID
12277
12278 2003-04-01  Havoc Pennington  <hp@pobox.com>
12279
12280         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
12281         function
12282
12283         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
12284
12285         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
12286
12287         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
12288         socket 0777, and unlink any existing socket.
12289
12290         * bus/bus.c (bus_context_new): change our UID/GID and fork if
12291         the configuration file so specifies; set up auth mechanism
12292         restrictions
12293
12294         * bus/config-parser.c (bus_config_parser_content): add support
12295         for <fork> option and fill in code for <auth>
12296
12297         * bus/system.conf.in: add <fork/> to default configuration,
12298         and limit auth mechanisms to EXTERNAL
12299
12300         * doc/config-file.txt (Elements): add <fork>
12301
12302         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
12303         (_dbus_change_identity): new function
12304
12305 2003-03-31  Havoc Pennington  <hp@redhat.com>
12306
12307         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
12308         (_dbus_listen_unix_socket): fix off-by-one error in null
12309         termination spotted by Nalin
12310
12311 2003-03-31  Havoc Pennington  <hp@redhat.com>
12312
12313         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
12314         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
12315         having a real home directory available.
12316
12317 2003-03-31  Havoc Pennington  <hp@redhat.com>
12318
12319         * bus/Makefile.am (install-data-hook): create /var/run/dbus
12320
12321         * bus/messagebus.in: add init script for Red Hat /etc/init.d
12322
12323         * configure.in: add support for specifying a style of init script
12324         to install
12325
12326 2003-03-31  Havoc Pennington  <hp@redhat.com>
12327
12328         Fix some annoying DBusString API and fix all affected code.
12329
12330         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
12331         max_length argument
12332         (_dbus_string_get_data): change to return string instead of using
12333         an out param
12334         (_dbus_string_get_const_data): ditto
12335         (_dbus_string_get_data_len): ditto
12336         (_dbus_string_get_const_data_len): ditto
12337
12338 2003-03-31  Havoc Pennington  <hp@redhat.com>
12339
12340         * bus/main.c (main): fix up the command line arguments to be nicer
12341
12342 2003-03-31  Havoc Pennington  <hp@redhat.com>
12343
12344         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12345         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12346         final location that lands in the config file
12347
12348         * bus/config-loader-expat.c (bus_config_load): fix type of
12349         XML_Parser variable
12350
12351         * doc/TODO: remove TODO item for dbus_bus_get()
12352
12353         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12354
12355 2003-03-31  Havoc Pennington  <hp@pobox.com>
12356
12357         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12358         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12359         argument since they are always client side
12360
12361         * dbus/dbus-server.c (dbus_server_get_address): new function
12362
12363         * bus/main.c (main): take the configuration file as an argument.
12364
12365         * test/data/valid-config-files/debug-allow-all.conf: new file to
12366         use with dispatch.c tests for example
12367
12368         * bus/test-main.c (main): require test data dir
12369
12370         * bus/bus.c (bus_context_new): change this to take a
12371         configuration file name as argument
12372
12373         * doc/config-file.txt (Elements): add <servicedir>
12374
12375         * bus/system.conf, bus/session.conf: new files
12376
12377         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12378         well-known socket if none set
12379
12380         * configure.in: create system.conf and session.conf
12381
12382 2003-03-30  Havoc Pennington  <hp@pobox.com>
12383
12384         * bus/config-parser.c: hacking
12385
12386         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12387         to shut down, since it could cause weirdness with the DBusList
12388         lock
12389
12390         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12391         link-oriented stack routines
12392         (alloc_link): free the mempool if the first alloc from it fails
12393
12394         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12395
12396         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12397         from GLib
12398         (_dbus_string_skip_white): new
12399
12400         * doc/config-file.txt (Elements): add <includedir>
12401
12402 2003-03-28  Havoc Pennington  <hp@pobox.com>
12403
12404         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12405         (_dbus_string_copy_data): new functions
12406
12407 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12408
12409         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12410         * dbus/dbus-bus.h:
12411         Add dbus_bus_get.
12412
12413         * dbus/dbus-memory.c:
12414         Fix a doc comment.
12415
12416 2003-03-28  Havoc Pennington  <hp@pobox.com>
12417
12418         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12419         I think it may have just been superstition. Not sure.
12420
12421         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12422         failures that were not being handled.
12423
12424         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12425
12426         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12427         row that will fail on out-of-memory.
12428
12429         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12430         function for testing out-of-memory handling.
12431
12432         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12433         allocation functions, they do map exactly to the expat ones.
12434
12435 2003-03-27  Havoc Pennington  <hp@redhat.com>
12436
12437         * bus/config-loader-libxml.c (bus_config_load): add another error
12438         check
12439
12440 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12441
12442         * doc/TODO:
12443         Add note about automatic service activation.
12444
12445         * doc/dbus-specification.sgml:
12446         Rename the specification and clarify a few things.
12447
12448 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12449
12450         * Doxyfile.in:
12451         * dbus/dbus-address.c:
12452         * dbus/dbus-dict.c:
12453         * dbus/dbus-marshal.c:
12454         * dbus/dbus-server-debug-pipe.c:
12455         * dbus/dbus-transport-unix.c:
12456         Fix documentation warnings.
12457
12458 2003-03-26  Havoc Pennington  <hp@pobox.com>
12459
12460         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12461         after every test so it's quick and easy to see which leaked, and
12462         so we test multiple dbus_shutdown() calls
12463
12464         * configure.in: change configure.in XML stuff to also support
12465         expat
12466
12467         * config-loader-libxml.c: some hacking
12468
12469         * config-loader-expat.c: some hacking
12470
12471         * config-parser.c: some hacking, plus tests
12472
12473 2003-03-25  Havoc Pennington  <hp@redhat.com>
12474
12475         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12476
12477         * configure.in: add --with-xml option to specify XML library,
12478         right now only libxml is supported.
12479
12480         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12481         nonworking code between home and work, still just stubs
12482
12483 2003-03-24  Havoc Pennington  <hp@redhat.com>
12484
12485         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12486         file
12487
12488         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12489         NULL argument for "message" if the error is a well-known one,
12490         fill in a generic message in this case.
12491
12492         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12493         favor of DBusError
12494
12495         * bus/test.c (bus_test_flush_bus): add
12496
12497         * bus/policy.c (bus_policy_test): test code stub
12498
12499 2003-03-24  Havoc Pennington  <hp@pobox.com>
12500
12501         * bus/connection.c (bus_connections_setup_connection): set up
12502         the "can this user connect" function, but it always returns
12503         TRUE until we have a config file parser so we can have a config
12504         file that allows connections.
12505
12506 2003-03-23  Havoc Pennington  <hp@pobox.com>
12507
12508         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12509         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12510         the mutex, so we can check for proper memory management
12511         and OOM handling.
12512
12513         * dbus/dbus-dataslot.c: remove the mutex from
12514         DBusDataSlotAllocator and lock it manually when using it,
12515         to simplify fitting it into the global slots framework.
12516
12517         * dbus/dbus-threads.c (init_static_locks): rework how we're
12518         handling global locks so they are easily shut down.
12519
12520         * bus/policy.c (bus_policy_append_rule): fix
12521
12522         * bus/test-main.c (main): check for memleaks
12523
12524         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12525         test suite check for memleaks
12526
12527         * dbus/dbus-memory.c: add support in test mode for tracking
12528         number of outstanding blocks
12529
12530 2003-03-23  Havoc Pennington  <hp@pobox.com>
12531
12532         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12533         policies code
12534
12535         * dbus/dbus-hash.h: add ULONG hash keys
12536
12537         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12538         (_dbus_get_group_id): new function
12539
12540 2003-03-20  Havoc Pennington  <hp@redhat.com>
12541
12542         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12543         new function
12544         (dbus_connection_get_unix_user): new function
12545
12546 2003-03-20  Havoc Pennington  <hp@pobox.com>
12547
12548         * bus/connection.c (bus_connection_send_oom_error): assert that
12549         message has a sender
12550         (connection_execute_transaction): ditto
12551         (bus_connection_preallocate_oom_error): fix to set the sender, and
12552         set recipient to the destination service, not the bus driver
12553
12554         * bus/policy.c: hacking
12555
12556         * dbus/dbus-message.c (dbus_message_service_is): new function
12557         (dbus_message_sender_is): new
12558
12559 2003-03-19  Havoc Pennington  <hp@redhat.com>
12560
12561         * bus/policy.c: start sketching code for policy restrictions on
12562         what connections can do.
12563
12564 2003-03-18  Havoc Pennington  <hp@redhat.com>
12565
12566         * doc/TODO: some notes on high-level todo items. Little nitpick
12567         stuff is all in @todo, so no need to add it here.
12568
12569         * doc/config-file.txt: some notes on how config file might look
12570
12571 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12572
12573         * configure.in: 0.6
12574
12575         * NEWS: Update.
12576
12577 2003-03-17  Havoc Pennington  <hp@redhat.com>
12578
12579         * dbus/dbus-internals.h: add gcc attributes so that
12580         our printf-style functions warn on bad arguments to
12581         format
12582
12583         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12584         format bug
12585
12586         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12587         printf format bug
12588
12589 2003-03-17  Havoc Pennington  <hp@redhat.com>
12590
12591         * bus/test-main.c (main): make it print something as it runs
12592         so make check doesn't look stuck
12593
12594         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12595         from CVS, now obsolete
12596
12597 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12598
12599         * bus/dispatch.c: (bus_dispatch):
12600         Refetch the service name since it may have been reallocated
12601         when dbus_message_set_sender was called.
12602
12603         * dbus/dbus-sysdeps.c: (_dbus_accept):
12604         Add address and address length variables and use them to stop
12605         valgrind from complaining.
12606
12607 2003-03-17  Havoc Pennington  <hp@pobox.com>
12608
12609         All tests pass, no memleaks, no valgrind complaints.
12610
12611         * bus/test.c: refcount handler_slot
12612
12613         * bus/connection.c (bus_connections_new): refcount
12614         connection_data_slot
12615
12616         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12617         bytes so that auth scripts pass.
12618
12619         * bus/dispatch.c: init message_handler_slot so it gets allocated
12620         properly
12621
12622         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12623
12624         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12625         dealloc server_pipe_hash when no longer used for benefit of
12626         leak checking
12627
12628         * dbus/dbus-auth.c (process_command): memleak fix
12629
12630         * bus/dispatch.c (check_hello_message): memleak fix
12631
12632 2003-03-16  Havoc Pennington  <hp@pobox.com>
12633
12634         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12635
12636 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12637
12638         * bus/activation.c (bus_activation_activate_service): Append
12639         the pending activation entry to the list of pending activations.
12640
12641 2003-03-16  Havoc Pennington  <hp@pobox.com>
12642
12643         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12644         connections
12645
12646         * dbus/dbus-address.c (create_entry): fix OOM handling when
12647         failing to alloc entry->method
12648
12649 2003-03-16  Havoc Pennington  <hp@pobox.com>
12650
12651         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12652         the watch
12653
12654         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12655         add some missing dbus_set_result
12656
12657         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12658         alloc the DBusMessageHandler
12659
12660         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12661         the transport here, since we call this from the finalizer; it
12662         resulted in a double-finalize.
12663
12664         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12665         where we tried to use transport->connection that was NULL,
12666         happened when transport was disconnected early on due to OOM
12667
12668         * bus/*.c: adapt to handle OOM for watches/timeouts
12669
12670         * dbus/dbus-transport-unix.c: port to handle OOM during
12671         watch handling
12672
12673         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12674         reference to unused bytes instead of a copy
12675
12676         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12677         out of memory
12678
12679         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12680         FALSE on OOM
12681
12682         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12683         of memory
12684
12685 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12686
12687         * doc/dbus-specification.sgml:
12688         Document reply message for ActivateService.
12689
12690 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12691
12692         * bus/activation.c: (bus_pending_activation_entry_free),
12693         (bus_pending_activation_free), (bus_activation_new),
12694         (bus_activation_unref), (bus_activation_service_created),
12695         (bus_activation_activate_service):
12696         * bus/activation.h:
12697         * bus/bus.c: (bus_context_new):
12698         * bus/desktop-file.c: (new_section):
12699         * bus/driver.c: (bus_driver_send_service_deleted),
12700         (bus_driver_handle_activate_service):
12701         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12702         * bus/services.h:
12703         * dbus/dbus-connection.c:
12704         (dbus_connection_send_with_reply_and_block):
12705         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12706         * dbus/dbus-protocol.h:
12707         Make activation work better. Now pending activations will be queued
12708         and the daemon won't try to activate services that are already registered.
12709
12710 2003-03-16  Havoc Pennington  <hp@pobox.com>
12711
12712         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12713         connection data
12714
12715         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12716         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12717
12718 2003-03-16  Havoc Pennington  <hp@pobox.com>
12719
12720         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12721         this. always run the test suite before commit...
12722
12723         * bus/*: adapt to DBusConnection API changes
12724
12725         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12726         requires renaming stuff to avoid dbus_connection_dispatch name
12727         conflict.
12728
12729         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12730         function
12731
12732         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12733         separate from _dbus_message_loader_return_buffer()
12734
12735         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12736         this, because it's now always broken to use; the number of
12737         messages in queue vs. the number still buffered by the message
12738         loader is undefined/meaningless. Should use
12739         dbus_connection_get_dispatch_state().
12740         (dbus_connection_dispatch): rename from
12741         dbus_connection_dispatch_message
12742
12743 2003-03-16  Havoc Pennington  <hp@pobox.com>
12744
12745         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12746         implementation
12747
12748 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12749
12750         * dbus/dbus-connection.c:
12751         (dbus_connection_send_with_reply_and_block):
12752         Decrease connection->n_incoming when removing an entry
12753         from the list.
12754         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12755         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12756         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12757         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12758         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12759         (dbus_dict_get_byte_array):
12760         Handle NULL arrays and strings. Also add support for byte arrays.
12761
12762         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12763         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12764         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12765         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12766         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12767         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12768         * dbus/dbus-marshal.h:
12769         Add support for marshalling and demarshalling empty arrays and strings.
12770
12771         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12772         (dbus_message_append_string_array),
12773         (dbus_message_iter_get_boolean),
12774         (dbus_message_iter_get_boolean_array),
12775         (dbus_message_iter_get_int32_array),
12776         (dbus_message_iter_get_uint32_array),
12777         (dbus_message_iter_get_double_array),
12778         (dbus_message_iter_get_byte_array),
12779         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12780         (check_message_handling):
12781         Add support for getting empty arrays and dicts.
12782
12783         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12784         Don't do any validation at all for now, that's better than just checking
12785         for ASCII.
12786
12787         * test/data/valid-messages/emptiness.message:
12788         New test message with lots of empty arrays.
12789
12790 2003-03-16  Havoc Pennington  <hp@pobox.com>
12791
12792         * dbus/dbus-connection.c
12793         (_dbus_connection_queue_received_message_link): new function that
12794         can't fail due to OOM
12795
12796         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12797         new function pops a message together with a list link
12798         containing it.
12799
12800         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12801         message queuing functions to avoid needing to alloc memory
12802
12803 2003-03-16  Havoc Pennington  <hp@pobox.com>
12804
12805         Oops - test code was only testing failure of around 30 of the
12806         mallocs in the test path, but it turns out there are 500+
12807         mallocs. I believe this was due to misguided linking setup such
12808         that there was one copy of dbus_malloc etc. in the daemon and one
12809         in the shared lib, and only daemon mallocs were tested. In any
12810         case, the test case now tests all 500+ mallocs, and doesn't pass
12811         yet, though there are lots of fixes in this patch.
12812
12813         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12814         this so that it doesn't need to allocate memory, since it
12815         has no way of indicating failure due to OOM (and would be
12816         annoying if it did).
12817
12818         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12819
12820         * bus/Makefile.am: rearrange to create two self-contained
12821         libraries, to avoid having libraries with overlapping symbols.
12822         that was resulting in weirdness, e.g. I'm pretty sure there
12823         were two copies of global static variables.
12824
12825         * dbus/dbus-internals.c: move the malloc debug stuff to
12826         dbus-memory.c
12827
12828         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12829         empty.
12830
12831         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12832
12833         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12834         on failure.
12835
12836         * bus/dispatch.c (bus_dispatch_add_connection): free
12837         message_handler_slot when no longer using it, so
12838         memory leak checkers are happy for the test suite.
12839
12840         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12841
12842         * bus/bus.c (new_connection_callback): disconnect in here if
12843         bus_connections_setup_connection fails.
12844
12845         * bus/connection.c (bus_connections_unref): fix to free the
12846         connections
12847         (bus_connections_setup_connection): if this fails, don't
12848         disconnect the connection, just be sure there are no side
12849         effects.
12850
12851         * dbus/dbus-string.c (undo_alignment): unbreak this
12852
12853         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12854         leaking
12855         (_dbus_auth_new): fix the order in which we free strings
12856         on OOM failure
12857
12858         * bus/connection.c (bus_connection_disconnected): fix to
12859         not send ServiceDeleted multiple times in case of memory
12860         allocation failure
12861
12862         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12863         get the base service name
12864         (dbus_bus_register_client): don't return base service name,
12865         instead store it on the DBusConnection and have an accessor
12866         function for it.
12867         (dbus_bus_register_client): rename dbus_bus_register()
12868
12869         * bus/dispatch.c (check_hello_message): verify that other
12870         connections on the bus also got the correct results, not
12871         just the one sending hello
12872
12873 2003-03-15  Havoc Pennington  <hp@pobox.com>
12874
12875         Make it pass the Hello handling test including all OOM codepaths.
12876         Now to do other messages...
12877
12878         * bus/services.c (bus_service_remove_owner): fix crash when
12879         removing owner from an empty list of owners
12880         (bus_registry_ensure): don't leave service in the list of
12881         a connection's owned services if we fail to put the service
12882         in the hash table.
12883
12884         * bus/connection.c (bus_connection_preallocate_oom_error): set
12885         error flag on the OOM error.
12886
12887         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12888         handle _dbus_transport_set_connection failure
12889
12890         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12891         to create watches up front and simply enable/disable them as
12892         needed.
12893         (unix_connection_set): this can now fail on OOM
12894
12895         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12896         of enabling/disabling a watch or timeout.
12897
12898         * bus/loop.c (bus_loop_iterate): don't touch disabled
12899         watches/timeouts
12900
12901         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12902
12903 2003-03-15  Havoc Pennington  <hp@pobox.com>
12904
12905         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12906         write useful test code, after all that futzing around ;-)
12907
12908         Test does not yet pass because we can't handle OOM in
12909         _dbus_transport_messages_pending (basically,
12910         dbus_connection_preallocate_send() does not prealloc the write
12911         watch). To fix this, I think we need to add new stuff to
12912         set_watch_functions, namely a SetEnabled function so we can alloc
12913         the watch earlier, then enable it later.
12914
12915         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12916         dbus-memory.c to the convenience lib
12917
12918         * bus/test.c: rename some static functions to keep them clearly
12919         distinct from stuff in connection.c. Handle client disconnection.
12920
12921 2003-03-14  Havoc Pennington  <hp@pobox.com>
12922
12923         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12924         transport, tests more of the real codepath. Set up clients
12925         with bus_setup_debug_client.
12926
12927         * bus/test.c (bus_setup_debug_client): function to set up debug
12928         "clients" on the main loop
12929
12930         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12931         support
12932
12933         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12934         server type
12935
12936         * dbus/dbus-server-debug.c: support a debug server based on pipes
12937
12938         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12939         (_dbus_close): new function
12940
12941         * configure.in: check for socketpair
12942
12943 2003-03-14  Havoc Pennington  <hp@redhat.com>
12944
12945         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12946         cheesy hack
12947
12948         * dbus/dbus-transport-debug.c: rework this a good bit to be
12949         less complicated. hopefully still works.
12950
12951         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12952         manually
12953
12954         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12955         after running it
12956
12957         * dbus/dbus-message.c (dbus_message_copy): rename from
12958         dbus_message_new_from_message, fix it up to copy
12959         all the message fields, add test case
12960
12961         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12962         not quite passing yet
12963
12964 2003-03-14  Havoc Pennington  <hp@pobox.com>
12965
12966         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12967         until no work remains" in test code. (the large diff here
12968         is just code movement, no actual changes)
12969
12970         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12971         1, no point waiting around for test code.
12972         (_dbus_server_debug_accept_transport): unref the timeout
12973         after adding it (right?)
12974
12975         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12976
12977 2003-03-13  Havoc Pennington  <hp@redhat.com>
12978
12979         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12980         out of memory
12981
12982         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12983         of memory
12984
12985         * dbus/dbus-connection.h: Make AddWatchFunction and
12986         AddTimeoutFunction return a bool so they can fail on out-of-memory
12987
12988         * bus/bus.c (bus_context_new): set up timeout handlers
12989
12990         * bus/connection.c (bus_connections_setup_connection): set up
12991         timeout handlers
12992
12993         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12994         can fail
12995
12996         * bus/bus.c (bus_context_new): adapt to changes
12997
12998         * bus/connection.c: adapt to changes
12999
13000         * test/watch.c: adapt to DBusWatch changes
13001
13002         * bus/dispatch.c (bus_dispatch_test): started adding this but
13003         didn't finish
13004
13005 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
13006
13007         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
13008
13009 2003-03-13  Havoc Pennington  <hp@pobox.com>
13010
13011         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
13012         set up a test framework as for the library
13013
13014 2003-03-12  Havoc Pennington  <hp@pobox.com>
13015
13016         Throughout: purge global variables, introduce BusActivation,
13017         BusConnections, BusRegistry, etc. objects instead.
13018
13019         * bus/bus.h, bus/bus.c: introduce BusContext as a global
13020         message bus object
13021
13022         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
13023         going to redo this a bit differently I think
13024
13025 2003-03-12  Havoc Pennington  <hp@redhat.com>
13026
13027         Mega-patch that gets the message bus daemon initially handling
13028         out-of-memory. Work still needed. Also lots of random
13029         moving stuff to DBusError instead of ResultCode.
13030
13031         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
13032
13033         * dbus/dbus-connection.c
13034         (dbus_connection_send_with_reply_and_block): use DBusError
13035
13036         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
13037         DBusResultCode
13038
13039         * dbus/dbus-connection.c (dbus_connection_send): drop the result
13040         code here, as the only failure possible is OOM.
13041
13042         * bus/connection.c (bus_connection_disconnect):
13043         rename bus_connection_disconnected as it's a notification only
13044
13045         * bus/driver.c (bus_driver_handle_acquire_service): don't free
13046         "name" on get_args failure, should be done by get_args;
13047         don't disconnect client for bad args, just return an error.
13048         (bus_driver_handle_service_exists): ditto
13049
13050         * bus/services.c (bus_services_list): NULL-terminate returned array
13051
13052         * bus/driver.c (bus_driver_send_service_lost)
13053         (bus_driver_send_service_acquired): send messages from driver to a
13054         specific client to the client's unique name, not to the broadcast
13055         service.
13056
13057         * dbus/dbus-message.c (decode_header_data): reject messages that
13058         contain no name field
13059         (_dbus_message_get_client_serial): rename to
13060         dbus_message_get_serial and make public
13061         (_dbus_message_set_serial): rename from set_client_serial
13062         (_dbus_message_set_reply_serial): make public
13063         (_dbus_message_get_reply_serial): make public
13064
13065         * bus/connection.c (bus_connection_foreach): allow stopping
13066         iteration by returning FALSE from foreach function.
13067
13068         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
13069         (dbus_connection_free_preallocated_send)
13070         (dbus_connection_preallocate_send): new API for sending a message
13071         without possibility of malloc failure.
13072         (dbus_connection_send_message): rename to just
13073         dbus_connection_send (and same for whole function family)
13074
13075         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
13076
13077         * dbus/dbus-sysdeps.c (_dbus_exit): new function
13078
13079         * bus/activation.c: handle/return errors
13080
13081         * dbus/dbus-errors.h: add more DBUS_ERROR #define
13082
13083         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
13084         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
13085         (_dbus_result_from_errno): move to this file
13086
13087 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
13088
13089         * dbus/dbus-marshal.c:
13090         (_dbus_marshal_set_string):
13091         Take a length argument so we can marshal the correct string
13092         length.
13093
13094         (_dbus_marshal_dict), (_dbus_demarshal_dict),
13095         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
13096         (_dbus_marshal_test):
13097         * dbus/dbus-marshal.h:
13098         Add support for marshalling and demarshalling dicts.
13099
13100         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13101         Add support for TYPE DICT.
13102
13103         * dbus/dbus-message.c: (set_string_field):
13104         Adjust header padding.
13105
13106         (dbus_message_append_args_valist), (dbus_message_append_dict),
13107         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
13108         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
13109         (check_message_handling), (check_have_valid_message):
13110         * dbus/dbus-message.h:
13111         Add functions for setting and getting dicts.
13112
13113         * dbus/dbus-protocol.h:
13114         Add DBUS_TYPE_DICT.
13115
13116         * dbus/dbus.h:
13117         Add dbus-dict.h
13118
13119         * doc/dbus-specification.sgml:
13120         Add information about how dicts are marshalled.
13121
13122         * test/data/invalid-messages/dict-with-nil-value.message:
13123         * test/data/invalid-messages/too-short-dict.message:
13124         * test/data/valid-messages/dict-simple.message:
13125         * test/data/valid-messages/dict.message:
13126         Add sample messages containing dicts.
13127
13128 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
13129
13130         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
13131
13132 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13133
13134         * dbus/Makefile.am:
13135         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13136         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
13137         (dbus_dict_set_int32), (dbus_dict_set_uint32),
13138         (dbus_dict_set_double), (dbus_dict_set_string),
13139         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
13140         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
13141         (dbus_dict_set_string_array), (_dbus_dict_test):
13142         * dbus/dbus-dict.h:
13143         Fix according to comments from Havoc.
13144
13145 2003-03-06  Michael Meeks  <michael@server.home>
13146
13147         * configure.in: if we don't have kde-config, disable have_qt.
13148
13149 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13150
13151         * dbus/Makefile.am:
13152         Add dbus-dict.[ch]
13153
13154         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13155         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
13156         (dbus_dict_remove), (dbus_dict_get_value_type),
13157         (dbus_dict_get_keys), (dbus_dict_put_boolean),
13158         (dbus_dict_put_int32), (dbus_dict_put_uint32),
13159         (dbus_dict_put_double), (dbus_dict_put_string),
13160         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
13161         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
13162         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
13163         (dbus_dict_get_int32), (dbus_dict_get_uint32),
13164         (dbus_dict_get_double), (dbus_dict_get_string),
13165         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
13166         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
13167         (dbus_dict_get_string_array), (_dbus_dict_test):
13168         * dbus/dbus-dict.h:
13169         Add DBusDict implementation
13170
13171         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
13172         * dbus/dbus-test.h:
13173         Add _dbus_dict_test
13174
13175 2003-03-04  Havoc Pennington  <hp@pobox.com>
13176
13177         * test/data/auth/*: adapt to changes
13178
13179         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
13180         USERID_BASE64 and change USERNAME_BASE64 to put in username not
13181         userid
13182
13183         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
13184         more stuff from being in a context name, to make the protocol
13185         simpler to deal with
13186
13187         * dbus/dbus-errors.c (dbus_error_has_name): new function
13188         (dbus_error_is_set): new function
13189
13190         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
13191         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
13192
13193         * dbus/dbus-connection.c (dbus_connection_flush): also read
13194         messages during a flush operation
13195
13196         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
13197
13198 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13199
13200         * configure.in: Check for gethostbyname on Solaris.
13201
13202         * dbus/dbus-transport.c: (_dbus_transport_open):
13203         Remove duplicate "tcp" entry.
13204
13205         * doc/dbus-specification.sgml:
13206         Clarify some things.
13207
13208 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13209
13210         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
13211         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
13212         (_dbus_keyring_test):
13213         * dbus/dbus-md5.c: (_dbus_md5_compute):
13214         * dbus/dbus-sha.c: (_dbus_sha_compute):
13215         Plug memory leaks.
13216
13217 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13218
13219         * README: Add some things.
13220
13221 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
13222
13223         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
13224         after case DBUS_TYPE_BOOELAN.
13225
13226 2003-03-02  Havoc Pennington  <hp@pobox.com>
13227
13228         * test/break-loader.c (randomly_set_extreme_ints): add test that
13229         sets really huge and small integers
13230
13231         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
13232         that length of boolean array fits in the string, and that
13233         string has room for boolean value in single-bool case.
13234
13235         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
13236         optional value to "ALIGN" command which is what to fill the
13237         alignment with.
13238
13239         * test/data/valid-messages/no-padding.message: add regression
13240         test for the message padding problem
13241
13242 2003-03-02  Havoc Pennington  <hp@pobox.com>
13243
13244         * dbus/dbus-message.c (decode_header_data): fix to always init
13245         message_padding, from Benjamin Dauvergne
13246
13247 2003-03-02  Havoc Pennington  <hp@pobox.com>
13248
13249         * configure.in: 0.5
13250
13251         * NEWS: Update.
13252
13253 2003-03-01  Joe Shaw  <joe@assbarn.com>
13254
13255         * configure.in: Check for "struct cmsgcred" and try to access its
13256         members for BSD-like unices.
13257
13258         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
13259         _dbus_read_credentials_unix_socket().
13260         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
13261         read() for reading the credential byte off the unix socket.  Use
13262         struct cmsgcred on systems that support it.
13263
13264 2003-02-27  Alexander Larsson  <alexl@redhat.com>
13265
13266         * glib/Makefile.am:
13267         * configure.in:
13268         Make gthreads-2.0 dependency optional. Don't build thread test if
13269         its not found.
13270
13271 2003-02-27  Havoc Pennington  <hp@pobox.com>
13272
13273         * dbus/dbus-connection.c
13274         (dbus_connection_send_message_with_reply_and_block): fix doh!
13275         doh! doh! bug that resulted in never removing a reply from the
13276         queue, no wonder we called get_reply_serial so much ;-)
13277
13278         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
13279         and client serial instead of demarshaling them every time
13280
13281 2003-02-27  Havoc Pennington  <hp@pobox.com>
13282
13283         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
13284         more inlined, using dbus-string-private.h, speeds things up
13285         substantially
13286
13287         * dbus/dbus-string.c (_dbus_string_free): apply align offset
13288         when freeing the string
13289         (_dbus_string_steal_data): fix for align offset
13290         (undo_alignment): new function
13291
13292 2003-02-26  Havoc Pennington  <hp@redhat.com>
13293
13294         All kinds of audit fixes from Owen, plus initial attempt to
13295         handle unaligned memory returned from malloc.
13296
13297         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
13298         leave room for align_offset and nul byte
13299         (fixup_alignment): function to track an align_offset and
13300         ensure real->str is aligned
13301         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
13302         to allow a nul byte plus align offset
13303         (_dbus_string_lock): fix overflow issue
13304         (_dbus_string_init_const_len): add assertions on sanity of len,
13305         assign allocated to be ALLOCATION_PADDING larger than len
13306         (set_length): fixup the overflow handling
13307         (_dbus_string_get_data_len): fix overflow in assertion
13308         (open_gap): detect overflow in size of gap to be opened
13309         (_dbus_string_lengthen): add overflow check
13310         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
13311         (_dbus_string_append): add overflow check
13312         (_dbus_string_append_unichar): overflow
13313         (_dbus_string_delete): fix overflow in assertion
13314         (_dbus_string_copy_len): overflow in assertion
13315         (_dbus_string_replace_len): overflows in assertions
13316         (_dbus_string_find): change to implement in terms of
13317         _dbus_string_find_to
13318         (_dbus_string_find_to): assorted fixage
13319         (_dbus_string_equal_c_str): assert c_str != NULL,
13320         fix logic so the function works
13321         (_dbus_string_ends_with_c_str): fix overflow thingy
13322         (_dbus_string_base64_encode): overflow fix
13323         (_dbus_string_validate_ascii): overflow
13324         (_dbus_string_validate_nul): overflow
13325
13326 2003-02-26  Havoc Pennington  <hp@redhat.com>
13327
13328         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
13329
13330 2003-02-26  Alexander Larsson  <alexl@redhat.com>
13331
13332         * configure.in:
13333         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
13334
13335         * dbus/dbus-connection.c:
13336         * dbus/dbus-connection.h:
13337         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13338         Add dbus_connection_set_wakeup_main_function and use it when queueing
13339         incoming and outgoing messages.
13340
13341
13342         * dbus/dbus-dataslot.c:
13343         Threadsafe usage of DBusDataSlotAllocator
13344
13345         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13346         dbus_new can fail.
13347
13348         * dbus/dbus-server-unix.c:
13349         Add todo comment
13350
13351         * glib/dbus-gmain.c:
13352         Implement the new wakeup functions for glib.
13353
13354         * glib/Makefile.am:
13355         * glib/test-thread-client.c:
13356         * glib/test-thread-server.c:
13357         * glib/test-thread.h:
13358         Initial cut at some thread test code. Not really done yet.
13359
13360 2003-02-26  Havoc Pennington  <hp@pobox.com>
13361
13362         * dbus/dbus-connection.c
13363         (dbus_connection_send_message_with_reply_and_block): fix crash
13364         where we ref'd the outgoing message instead of the returned reply
13365
13366         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13367         at the end of this function, so if we didn't need to read for
13368         authentication, we reinstall it for receiving messages
13369
13370         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13371         a NULL sender for peer-to-peer case
13372
13373         * dbus/dbus-transport-unix.c (check_read_watch): handle
13374         !authenticated case correctly
13375
13376         * glib/dbus-gmain.c: add support for DBusServer
13377
13378         * dbus/dbus-server.c: add data slot support
13379
13380         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13381         return values and handle errors
13382
13383         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13384         DBusConnection
13385
13386         * Doxyfile.in (INPUT): add glib subdir
13387
13388         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13389         setup_with_g_main instead of hookup_with_g_main; write docs
13390
13391 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13392
13393         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13394         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13395         * dbus/dbus-message.c: (dbus_message_append_boolean),
13396         (dbus_message_append_boolean_array),
13397         (dbus_message_get_args_valist), (_dbus_message_test):
13398         * dbus/dbus-message.h:
13399         * doc/dbus-specification.sgml:
13400         Various fixes as pointed out by Havoc.
13401
13402         * test/data/invalid-messages/bad-boolean-array.message:
13403         * test/data/invalid-messages/bad-boolean.message:
13404         Add invalid boolean value test cases.
13405
13406 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13407
13408         * dbus/dbus-internals.c: (_dbus_type_to_string):
13409         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13410         (_dbus_marshal_validate_arg):
13411         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13412         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13413         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13414         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13415         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13416         (dbus_message_iter_get_double),
13417         (dbus_message_iter_get_boolean_array), (message_iter_test):
13418         * dbus/dbus-message.h:
13419         * dbus/dbus-protocol.h:
13420         * doc/dbus-specification.sgml:
13421         * test/data/valid-messages/lots-of-arguments.message:
13422         Add support for boolean and boolean array types.
13423
13424 2003-02-23  Havoc Pennington  <hp@pobox.com>
13425
13426         * dbus/dbus-keyring.c: finish most of this implementation and
13427         simple unit test
13428
13429         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13430         these barf if the error isn't cleared to NULL
13431
13432         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13433         (_dbus_create_directory): new function
13434
13435         * dbus/dbus-errors.c (dbus_set_error): fix warning
13436
13437         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13438         (_dbus_string_hex_decode): new function
13439         (test_hex_roundtrip): test code
13440
13441         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13442
13443         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13444
13445         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13446         the save-to-temp/rename trick to atomically write the new file
13447         (_dbus_string_parse_uint): new function
13448
13449 2003-02-22  Havoc Pennington  <hp@pobox.com>
13450
13451         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13452
13453 2003-02-22  Havoc Pennington  <hp@pobox.com>
13454
13455         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13456         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13457
13458         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13459
13460         * dbus/test/data/sha-1: add US government test suite for SHA-1
13461
13462 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13463
13464         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13465         Make string arrays NULL-terminated.
13466
13467         * dbus/dbus-memory.c: (dbus_free_string_array):
13468         * dbus/dbus-memory.h:
13469         New function for freeing NULL-terminated string arrays.
13470
13471         * dbus/dbus-message-builder.c: (append_quoted_string),
13472         (_dbus_message_data_load):
13473         Add support for array types.
13474
13475         * dbus/dbus-message.c: (check_message_handling):
13476         Add more types as test cases.
13477
13478         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13479         (_dbus_string_parse_double):
13480         Add the start offset to the end offset.
13481
13482         * test/data/valid-messages/lots-of-arguments.message:
13483         New test message with lots of arguments.
13484
13485 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13486
13487         * dbus/dbus-message.c: (dbus_message_append_nil),
13488         (dbus_message_append_int32), (dbus_message_append_uint32),
13489         (dbus_message_append_double), (dbus_message_append_string),
13490         (dbus_message_append_int32_array),
13491         (dbus_message_append_uint32_array),
13492         (dbus_message_append_double_array),
13493         (dbus_message_append_byte_array),
13494         (dbus_message_append_string_array):
13495         Fix all out-of-memory handling in these functions.
13496
13497 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13498
13499         * dbus/dbus-message.c: (dbus_message_append_nil):
13500         Fix a silly.
13501
13502 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13503
13504         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13505         (dbus_message_append_nil), (dbus_message_append_int32_array),
13506         (dbus_message_append_uint32_array),
13507         (dbus_message_append_double_array),
13508         (dbus_message_append_byte_array),
13509         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13510         (dbus_message_iter_get_int32_array),
13511         (dbus_message_iter_get_uint32_array),
13512         (dbus_message_iter_get_double_array),
13513         (dbus_message_iter_get_byte_array),
13514         (dbus_message_iter_get_string_array):
13515
13516         * dbus/dbus-message.h:
13517         Add functions for appending and getting arrays.
13518
13519 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13520
13521         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13522         element size at least 8 bytes, fixes mempool tests on
13523         64-bit machines.
13524
13525 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13526
13527         * dbus/dbus-transport-unix.c (unix_do_iteration):
13528         Unlock the connection mutex during a blocking select call.
13529         Add todo about how we need a way to wake up the select.
13530
13531         * dbus/dbus-connection-internal.h:
13532         * dbus/dbus-connection.c:
13533         Add _dbus_connection_lock and _dbus_connection_unlock.
13534
13535 2003-02-19  Havoc Pennington  <hp@pobox.com>
13536
13537         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13538         Doxyfile.in, not Doxyfile
13539
13540         * dbus/dbus-keyring.c: do some hacking on this
13541
13542         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13543
13544         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13545         dbus_error_init
13546         (dbus_set_error): remove dbus_error_init, check for message ==
13547         NULL *before* we sprintf into it, and add @todo about including
13548         system headers in this file
13549
13550         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13551
13552         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13553
13554         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13555         get various bits of user information based on either username
13556         or user ID
13557         (_dbus_homedir_from_username): new function
13558
13559 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13560
13561         * configure.in:
13562         Add check for nonposix getpwnam_r
13563
13564         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13565         Align the pool element size to a sizeof (void *) boundary.
13566
13567         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13568         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13569         General Solaris fixes.
13570
13571         * test/data/valid-messages/simplest-manual.message:
13572         Explicitly state that we want little-endian packing.
13573
13574 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13575
13576         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13577
13578         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13579         Added to create a transport connecting using a tcp/ip socket.
13580
13581         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13582         to a tcp socket at given host and port.
13583         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13584         hostname and port.
13585
13586         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13587
13588         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13589         Added to create a server listening on a TCP/IP socket.
13590
13591 2003-02-19  Havoc Pennington  <hp@pobox.com>
13592
13593         Throughout: mop up all the Doxygen warnings and undocumented
13594         stuff.
13595
13596         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13597         to search any paths.
13598
13599         * dbus/dbus-threads.c: move global mutex initializers to
13600         dbus-internals.h, multiple prototypes was confusing doxygen
13601         besides being kind of ugly
13602
13603         * Doxyfile (PREDEFINED): have Doxygen define
13604         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13605         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13606         (do not abuse the feature! it's for stuff like the autogenerated
13607         macros in dbus-md5.c, not just for things you don't feel like
13608         documenting...)
13609
13610 2003-02-18  Havoc Pennington  <hp@pobox.com>
13611
13612         * dbus/dbus-string.c (_dbus_string_zero): new function
13613
13614         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13615         wrap it in some dbus-friendly API
13616
13617         * dbus/dbus-types.h: add 16-bit types
13618
13619 2003-02-18  Joe Shaw  <joe@assbarn.com>
13620
13621         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13622         credentials from our currently running process.
13623         (get_word): Fix a buglet where we were copying the entire length
13624         instead of relative to our position.
13625
13626         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13627         keys on the stack... it's 640k of data.
13628
13629         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13630         read the credentials byte off the socket, even if we don't have
13631         SO_PEERCRED.
13632         (_dbus_poll): Implement poll() using select() for systems which
13633         don't have it.
13634
13635         * glib/test-dbus-glib.c (main): Print out an error if no
13636         parameters are given.
13637
13638         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13639         can fallback to a secondary auth mechanism if the first fails.
13640
13641 2003-02-18  Havoc Pennington  <hp@pobox.com>
13642
13643         * AUTHORS: add Alex
13644
13645 2003-02-17  Havoc Pennington  <hp@pobox.com>
13646
13647         * doc/dbus-specification.sgml: lots of cosmetic
13648         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13649         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13650         s/server/bus/ (except in authentication section). Add a section
13651         "Message Bus Message Routing"
13652
13653 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13654
13655         Release 0.4
13656
13657         * NEWS: Update
13658
13659 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13660
13661         * doc/dbus-specification.sgml:
13662         Specification updates.
13663
13664 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13665
13666         * bus/activation.c: (bus_activation_init), (child_setup),
13667         (bus_activation_activate_service):
13668         * bus/activation.h:
13669         * bus/main.c: (main):
13670         Set DBUS_ADDRESS environment variable.
13671
13672         * dbus/dbus-errors.c: (dbus_set_error):
13673         Don't use va_copy since that's a C99 feature.
13674
13675         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13676         (_dbus_spawn_async):
13677         * dbus/dbus-sysdeps.h:
13678         Add child_setup_func to _dbus_spawn_async.
13679
13680         * doc/dbus-specification.sgml:
13681         Update specification.
13682
13683         * test/spawn-test.c: (setup_func), (main):
13684         Fix test.
13685
13686 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13687
13688         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13689         Added todo.
13690
13691 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13692
13693         * doc/.cvsignore:
13694         * doc/Makefile.am:
13695         * doc/dbus-test-plan.sgml:
13696         Add test plan document.
13697
13698         * test/Makefile.am:
13699         Fix distcheck.
13700
13701 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13702
13703         * dbus/dbus-message.c: (decode_header_data),
13704         (_dbus_message_loader_return_buffer):
13705         Set the header padding amount when loading a message.
13706
13707 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13708
13709         * bus/dispatch.c: (send_one_message):
13710         Only send broadcast messages to registered connections.
13711
13712         * dbus/dbus-message.c: (dbus_message_name_is):
13713         * dbus/dbus-message.h:
13714         New convenience function.
13715
13716         * dbus/dbus-transport-debug.c: (do_reading):
13717         Only dispatch one message per run.
13718
13719         * test/Makefile.am:
13720         * test/bus-test.c: (new_connection_callback), (die),
13721         (test_hello_client1_handler), (test_hello_client2_handler),
13722         (test_hello_replies), (main):
13723
13724         * test/bus-test-loop.[ch]:
13725         Add these.
13726
13727 2003-02-16  Havoc Pennington  <hp@pobox.com>
13728
13729         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13730         backward conditional
13731
13732 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13733
13734         * dbus/dbus-connection.c:
13735         Implement sent_message_with_reply. (with_reply_and block is still
13736         busted).
13737         Made dispatch_message not lose message if OOM.
13738
13739         * dbus/dbus-errors.h:
13740         Add NoReply error (for reply timeouts).
13741
13742 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13743
13744         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13745         Actually free keys and values when destroying hashtable.
13746
13747 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13748
13749         * dbus/dbus-auth.c: (client_try_next_mechanism):
13750         Plug a leak.
13751
13752         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13753         Return TRUE if there's no thread implementation around.
13754
13755         * glib/dbus-gmain.c: (free_source),
13756         (dbus_connection_hookup_with_g_main):
13757         Make sure to remove the GSource when the connection is finalized.
13758
13759 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13760
13761         * bus/dispatch.c: (bus_dispatch_message_handler):
13762         * dbus/dbus-errors.h:
13763         Return an error if someone tries to send a message to a service
13764         that doesn't exist.
13765
13766 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13767
13768         * bus/activation.c: (load_directory), (bus_activation_init),
13769         (bus_activation_activate_service):
13770         * bus/activation.h:
13771         * bus/driver.c:
13772         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13773         More work on the activation handling.
13774
13775         * dbus/dbus-errors.h:
13776         Add some error messages
13777
13778         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13779         * dbus/dbus-message.h:
13780         New function that creates an error message.
13781
13782         * dbus/dbus-protocol.h:
13783         Add ACTIVATE_SERVER message.
13784
13785         * dbus/dbus-server-unix.c: (unix_handle_watch),
13786         (_dbus_server_new_for_domain_socket):
13787         Call _dbus_fd_set_close_on_exec.
13788
13789         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13790         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13791         (_dbus_fd_set_close_on_exec):
13792         * dbus/dbus-sysdeps.h:
13793         Add _dbus_fd_set_close_on exec function. Also add function that checks
13794         that all open fds are set to close-on-exec and warns otherwise.
13795
13796         * dbus/dbus-transport-unix.c:
13797         (_dbus_transport_new_for_domain_socket):
13798         Call _dbus_fd_set_close_on_exec.
13799
13800 2003-02-16  Havoc Pennington  <hp@pobox.com>
13801
13802         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13803         allow people to avoid setting SIGPIPE to SIG_IGN
13804         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13805         we've been asked not to
13806
13807 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13808
13809         * dbus/dbus-list.c: (_dbus_list_append_link),
13810         (_dbus_list_prepend_link):
13811         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13812         (dbus_realloc):
13813         Warning fixes.
13814
13815 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13816
13817         * bus/Makefile.am:
13818         * bus/activation.c: (bus_activation_entry_free),
13819         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13820         * bus/activation.h:
13821         * bus/main.c: (main):
13822         Add simple activation support, doesn't work yet though.
13823
13824 2003-02-15   Zack Rusin  <zack@kde.org>
13825
13826         * qt/dbus-qthread.cpp:  small casting fix
13827
13828 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13829
13830         * dbus/dbus-errors.c: (dbus_set_error):
13831         * dbus/dbus-errors.h:
13832         Add a few errors and make dbus_set_error void.
13833
13834         * dbus/dbus-sysdeps.c:
13835         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13836         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13837         * dbus/dbus-sysdeps.h:
13838         Add _dbus_spawn_async.
13839
13840         * test/spawn-test.c: (main):
13841         Test for _dbus_spawn_async.
13842
13843 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13844
13845         * dbus/dbus-internals.h:
13846         Fix build without tests.
13847
13848         * dbus/dbus-list.c: (alloc_link):
13849         Fix a segfault when a malloc fails.
13850
13851         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13852         (dbus_malloc0), (dbus_realloc):
13853         Add support for malloc debugging.
13854
13855 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13856
13857         * dbus/dbus-threads.c:
13858         * dbus/dbus-threads.h:
13859         Add condvars. Remove static mutext from API.
13860         Implement static mutexes by initializing them from threads_init.
13861
13862         * glib/dbus-gthread.c:
13863         * qt/dbus-qthread.cpp:
13864         Update with the thread api changes.
13865
13866
13867         * dbus/dbus-list.c:
13868         * dbus/dbus-list.h:
13869         Turn StaticMutex into normal mutex + init function.
13870         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13871         _dbus_list_append_link, _dbus_list_prepend_link
13872
13873
13874         * dbus/dbus-sysdeps.c:
13875         * dbus/dbus-sysdeps.h:
13876         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13877         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13878
13879         * dbus/dbus-protocol.h:
13880         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13881
13882         * dbus/dbus-message.c:
13883         Make ref/unref atomic.
13884         Fix some docs.
13885
13886         * dbus/dbus-connection-internal.h:
13887         * dbus/dbus-connection.c:
13888         * dbus/dbus-connection.h:
13889         Make threadsafe.
13890         Change _peek to _borrow,_return & _steal_borrowed.
13891         Change disconnect callback to event.
13892         Make dbus_connection_dispatch_messages reentrant.
13893
13894         * dbus/dbus-transport.c:
13895         Don't ref the connection on calls to the transport
13896         implementation.
13897
13898         * dbus/dbus-message-handler.c:
13899         Make threadsafe.
13900
13901         * glib/dbus-gmain.c:
13902         Don't use peek_message anymore
13903
13904         * test/Makefile.am:
13905         * test/debug-thread.c:
13906         * test/debug-thread.h:
13907         Simple thread implementation that asserts() on deadlocks in
13908         single-threaded code.
13909
13910         * test/bus-test.c:
13911         (main) Call debug_threads_init.
13912
13913         * test/watch.c:
13914         Use disconnect message instead of disconnect callback.
13915
13916         * bus/connection.c:
13917         * bus/connection.h:
13918         Don't call dbus_connection_set_disconnect_function. Instead export
13919         bus_connection_disconnect.
13920
13921         * bus/dispatch.c:
13922         Call bus_connection_disconnect when we get a disconnected message.
13923
13924 2003-02-15  Havoc Pennington  <hp@pobox.com>
13925
13926         * dbus/dbus-message.c (dbus_message_new): fool around with the
13927         docs
13928
13929 2003-02-14  Havoc Pennington  <hp@pobox.com>
13930
13931         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13932
13933         * dbus/dbus-memory.c: fail if the debug functions indicate we
13934         should
13935
13936         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13937         (_dbus_decrement_fail_alloc_counter): debug functions to
13938         simulate memory allocation failures
13939
13940 2003-02-14  Havoc Pennington  <hp@pobox.com>
13941
13942         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13943         to DBusError
13944
13945 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13946
13947         * bus/driver.c: (bus_driver_handle_hello):
13948         * bus/driver.h:
13949         * bus/services.c: (bus_service_lookup):
13950         Reorder message sending so we get a more sane order.
13951
13952         * test/bus-test.c: (message_handler):
13953         Fix tyop.
13954
13955 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13956
13957         * bus/driver.c: (bus_driver_send_service_deleted),
13958         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13959         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13960         (bus_driver_send_welcome_message),
13961         (bus_driver_handle_list_services),
13962         (bus_driver_handle_acquire_service),
13963         (bus_driver_handle_service_exists):
13964         * dbus/dbus-bus.c: (dbus_bus_register_client),
13965         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13966         * dbus/dbus-errors.c: (dbus_result_to_string):
13967         * dbus/dbus-errors.h:
13968         * dbus/dbus-message.c: (dbus_message_append_args),
13969         (dbus_message_append_args_valist), (dbus_message_get_args),
13970         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13971         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13972         (dbus_message_iter_get_byte_array),
13973         (dbus_message_iter_get_string_array), (message_iter_test),
13974         (check_message_handling), (_dbus_message_test):
13975         * dbus/dbus-message.h:
13976         * test/bus-test.c: (main):
13977         Change fields to arguments in messages, so that they won't be
13978         confused with header fields.
13979
13980         * glib/test-dbus-glib.c: (main):
13981         Remove append_fields from hello message.
13982
13983 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13984
13985         * dbus/dbus-errors.c:
13986         * dbus/dbus-message.c:
13987         * dbus/dbus-string.c:
13988         Documentation fixes.
13989
13990 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13991
13992         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13993         (remove_timeout):
13994         Implement support for timeouts in dbus-glib.
13995
13996 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13997
13998         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13999         * dbus/dbus-message.c: (process_test_subdir):
14000         * test/break-loader.c: (find_breaks_based_on):
14001         Plug some memory leaks.
14002
14003 2003-02-13  Richard Hult  <rhult@codefactory.se>
14004
14005         * bus/main.c: Fix build.
14006
14007         * dbus/dbus-errors.h:
14008         * dbus/dbus-errors.c: Fix copyright for Anders.
14009
14010 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14011
14012         * bus/Makefile.am:
14013         Add utils.[ch]
14014
14015         * bus/connection.c: (bus_connection_foreach):
14016         Fix a warning.
14017
14018         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
14019         (unescape_string), (new_section), (parse_section_start),
14020         (parse_key_value), (report_error), (bus_desktop_file_load),
14021         (bus_desktop_file_get_string):
14022         * bus/desktop-file.h:
14023         Use DBusError for error reporting.
14024
14025         * bus/dispatch.c: (send_one_message),
14026         (bus_dispatch_message_handler):
14027         * bus/driver.c: (bus_driver_send_service_deleted),
14028         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14029         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
14030         (bus_driver_send_welcome_message),
14031         (bus_driver_handle_list_services),
14032         (bus_driver_handle_acquire_service),
14033         (bus_driver_handle_service_exists):
14034         * bus/loop.c: (bus_loop_run):
14035         * bus/main.c:
14036         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
14037
14038         * bus/utils.c: (bus_wait_for_memory):
14039         * bus/utils.h:
14040         New files with general utility functions.
14041
14042         * dbus/dbus-internals.h:
14043         Remove _DBUS_HANDLE_OOM.
14044
14045 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14046
14047         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
14048         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
14049         * dbus/dbus-errors.h:
14050         Add DBusError structure.
14051
14052 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14053
14054         * test/data/valid-messages/standard-acquire-service.message:
14055         * test/data/valid-messages/standard-hello.message:
14056         * test/data/valid-messages/standard-list-services.message:
14057         * test/data/valid-messages/standard-service-exists.message:
14058         Add some standard messages.
14059
14060 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14061
14062         * bus/driver.c: (bus_driver_send_welcome_message),
14063         (bus_driver_handle_list_services),
14064         (bus_driver_handle_acquire_service),
14065         (bus_driver_handle_service_exists), (bus_driver_handle_message):
14066         Update for API changes in libdbus.
14067
14068         * dbus/dbus-message.c: (dbus_message_new_reply):
14069         * dbus/dbus-message.h:
14070         Remove the name argument. The spec states that replies shouldn't
14071         have a name.
14072
14073 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14074
14075         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
14076         (report_error), (bus_desktop_file_load), (lookup_section),
14077         (lookup_line), (bus_desktop_file_get_raw),
14078         (bus_desktop_file_get_string):
14079         * bus/desktop-file.h:
14080         Some fixes, and new functions for getting a key value from a section.
14081
14082 2003-02-13  Havoc Pennington  <hp@pobox.com>
14083
14084         * test/data/auth/fail-after-n-attempts.auth-script: new test
14085
14086         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
14087         reject the client.
14088
14089 2003-02-13  Havoc Pennington  <hp@pobox.com>
14090
14091         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
14092         dbus_credentials_match were backward
14093
14094         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
14095         NO_CREDENTIALS and ROOT_CREDENTIALS
14096
14097         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
14098         into here. Never process more commands after we've reached an
14099         end state; store further data as unused bytes.
14100
14101         * test/data/auth/*: add more auth tests
14102
14103         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
14104         command to match exact string and EXPECT_UNUSED to match unused
14105         bytes
14106
14107         * test/Makefile.am (dist-hook): fix to dist all the test stuff
14108
14109 2003-02-12  Havoc Pennington  <hp@pobox.com>
14110
14111         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
14112         \r off of popped lines
14113
14114         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
14115         scripts
14116
14117         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
14118         SEND, append \r\n
14119
14120 2003-02-12  Havoc Pennington  <hp@pobox.com>
14121
14122         * dbus/Makefile.am: remove break-loader from the build, since it
14123         moved.
14124
14125         * configure.in: add --enable-gcov to turn on coverage profiling
14126         flags and disable optimization
14127
14128 2003-02-10  Havoc Pennington  <hp@pobox.com>
14129
14130         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
14131         initial cut at test framework for DBusAuth from laptop.
14132         Doesn't quite work yet but it compiles and I need to get
14133         it off the 266mhz laptop. ;-)
14134
14135         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
14136         fix a memleak in error case
14137
14138 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
14139
14140         * bus/Makefile.am:
14141         * bus/desktop-file.c:
14142         * bus/desktop-file.h:
14143         Add a desktop file parser.
14144
14145 2003-02-11  Zack Rusin  <zack@kde.org>
14146
14147         * qt/message.[h|cpp]: sample implementation
14148         of the KDE wrapper for DBusMessage
14149
14150 2003-02-09  Zack Rusin  <zack@kde.org>
14151
14152         * test/bus-test.c: make_it_compile
14153         * doc/dbus-specification.sgml: minimal semantic fix
14154
14155 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14156
14157         Release 0.3
14158
14159         * NEWS: Update
14160
14161 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14162
14163         * dbus/Makefile.am:
14164         * dbus/dbus-break-loader.c:
14165         * test/Makefile.am:
14166         * test/break-loader.c:
14167         Move dbus-break-loader to test/ and rename it to break-loader.
14168
14169 2003-02-02  Havoc Pennington  <hp@pobox.com>
14170
14171         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
14172         for code to manage cookies in your home directory
14173
14174         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
14175
14176         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
14177         to authenticate, then disconnect the client.
14178
14179 2003-02-03  Alexander Larsson  <alexl@redhat.com>
14180
14181         * dbus/dbus-message.c (dbus_message_append_fields):
14182         Correct docs.
14183
14184 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14185
14186         * doc/dbus-specification.sgml:
14187         Update address format section.
14188
14189 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14190
14191         * test/Makefile.am:
14192         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
14193         (message_handler), (new_connection_callback), (loop_quit),
14194         (loop_run), (main):
14195         Add bus test.
14196
14197 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14198
14199         * bus/driver.c: (bus_driver_handle_service_exists):
14200         Simplify the code a bit.
14201
14202         * dbus/dbus-bus.c: (dbus_bus_service_exists):
14203         Fix a silly.
14204
14205 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14206
14207         * bus/Makefile.am:
14208         Add libdbus-daemon.la and link to it.
14209
14210 2003-02-01  James Willcox  <jwillcox@gnome.org>
14211
14212         * bus/driver.c: (bus_driver_handle_own_service):
14213         Actually include the service reply code in the message.
14214
14215 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14216
14217         * bus/driver.c: (bus_driver_handle_service_exists):
14218         Don't unref the incoming message.
14219
14220 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14221
14222         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
14223
14224 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14225
14226         * dbus/dbus-server.c: (dbus_server_listen):
14227         * dbus/dbus-transport.c: (_dbus_transport_open):
14228         ifdef out the calls to the debug transport and server.
14229
14230 2003-02-02  Alexander Larsson  <alexl@redhat.com>
14231
14232         * dbus/dbus-watch.c (dbus_watch_get_flags):
14233         Add note in the docs that ERROR or HANGUP won't be returned
14234         and are assumed always on.
14235
14236         * glib/dbus-gmain.c (add_watch):
14237         Always add IO_ERR | IO_HUP
14238
14239         * dbus/dbus-message.h:
14240         Add semicolon after dbus_message_iter_get_string_array().
14241         Makes qt code build again
14242
14243 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
14244
14245         * bus/driver.c: (create_unique_client_name),
14246         (bus_driver_handle_hello):
14247         Don't take a name, just use a numeric id to identify
14248         each client.
14249
14250         * dbus/Makefile.am:
14251         * dbus/dbus-bus.c: (dbus_bus_register_client),
14252         (dbus_bus_acquire_service), (dbus_bus_service_exists):
14253         * dbus/dbus-bus.h:
14254         Add new convenience functions for communicating with the bus.
14255
14256         * dbus/dbus-message.h:
14257
14258         * dbus/dbus-protocol.h:
14259         Fix a typo.
14260
14261 2003-02-01  Alexander Larsson  <alexl@redhat.com>
14262
14263         * dbus/dbus-message.c (dbus_message_append_fields):
14264         Add some more doc comments.
14265
14266 2003-02-01  Havoc Pennington  <hp@pobox.com>
14267
14268         * dbus/dbus-break-loader.c (randomly_modify_length): change
14269         a 4-byte value in the message as if it were a length
14270
14271         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
14272         execute bit on saved files
14273
14274 2003-02-01  Havoc Pennington  <hp@pobox.com>
14275
14276         * dbus/dbus-break-loader.c (main): new program to find messages
14277         that break the loader.
14278
14279         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
14280         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
14281
14282         * dbus/dbus-string.c (_dbus_string_set_byte): new
14283
14284 2003-01-31  Havoc Pennington  <hp@pobox.com>
14285
14286         * dbus/dbus-message.c: refactor the test code to be more general,
14287         in preparation for writing a "randomly permute test cases to
14288         try to break the loader" program.
14289
14290 2003-01-31  Havoc Pennington  <hp@pobox.com>
14291
14292         * doc/dbus-specification.sgml: work on the specification
14293
14294         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
14295         the protocol version of the message.
14296
14297         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
14298         no longer specifies that.
14299         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
14300         1/2/3/4)
14301
14302         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
14303         "break" for DBUS_TYPE_NIL, remove @todo
14304
14305 2003-01-31  Havoc Pennington  <hp@pobox.com>
14306
14307         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
14308         just set_is_error/get_is_error as this is a commonly-used
14309         function, and write docs.
14310
14311 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
14312
14313         * dbus/dbus-address.c: (dbus_address_entry_free):
14314         Free key and value lists.
14315
14316         * dbus/dbus-internals.c: (_dbus_type_to_string):
14317         Add the types we didn't have.
14318
14319         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
14320         (_dbus_marshal_validate_arg):
14321         Add NIL types.
14322
14323         * dbus/dbus-message.c: (dbus_message_set_sender):
14324         Remove todo about being able to set sender to NULL.
14325
14326         (dbus_message_set_is_error_reply),
14327         (dbus_message_get_is_error_reply):
14328         * dbus/dbus-message.h:
14329         New functions.
14330
14331         * dbus/dbus-protocol.h:
14332         Add error reply flag.
14333
14334         * test/data/valid-messages/opposite-endian.message:
14335         Add NIL type to test.
14336
14337 2003-01-31  Havoc Pennington  <hp@pobox.com>
14338
14339         * doc/dbus-specification.sgml: fully specify the header.  Add
14340         flags and major protocol version, and change header/body len to
14341         unsigned.
14342
14343         * dbus/dbus-message-builder.c (append_saved_length): append length
14344         as uint32
14345
14346         * dbus/dbus-message.c (dbus_message_create_header): change header
14347         length and body length to unsigned. Add the new fields from the
14348         spec
14349         (_dbus_message_loader_return_buffer): unsigned header/body len
14350
14351 2003-01-30  Havoc Pennington  <hp@pobox.com>
14352
14353         * dbus/dbus-auth.c: rework to use only REJECTED, no
14354         MECHANISMS
14355
14356         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14357         use REJECTED, suggested by Mark McLoughlin
14358
14359 2003-01-30  Havoc Pennington  <hp@pobox.com>
14360
14361         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14362         a better way to report errors here. e.g.  "unix address lacks
14363         path" or something. also "no such file" when the path doesn't
14364         exist, etc.
14365
14366         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14367         leaking list nodes
14368         (dbus_parse_address): add @todo about documenting address format,
14369         and allowing , and ; to be escaped
14370
14371 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14372
14373         * dbus/Makefile.am:
14374         Add dbus-address.[ch]
14375
14376         * dbus/dbus-address.c: (dbus_address_entry_free),
14377         (dbus_address_entries_free), (create_entry),
14378         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14379         (dbus_parse_address), (_dbus_address_test):
14380         * dbus/dbus-address.h:
14381         New files for dealing with address parsing.
14382
14383         * dbus/dbus-connection.c:
14384         Document timeout functions.
14385
14386         * dbus/dbus-message.c:
14387         Document dbus_message_new_from_message.
14388
14389         * dbus/dbus-server-debug.c:
14390         Document.
14391
14392         * dbus/dbus-server.c: (dbus_server_listen):
14393         Parse address and use correct server implementation.
14394
14395         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14396         * dbus/dbus-string.h:
14397         New function with test.
14398
14399         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14400         * dbus/dbus-test.h:
14401         Add address tests.
14402
14403         * dbus/dbus-transport-debug.c:
14404         Document.
14405
14406         * dbus/dbus-transport.c: (_dbus_transport_open):
14407         Parse address and use correct transport implementation.
14408
14409 2003-01-30  Havoc Pennington  <hp@pobox.com>
14410
14411         * dbus/dbus-message.c: use message->byte_order instead of
14412         DBUS_COMPILER_BYTE_ORDER throughout.
14413         (dbus_message_create_header): pad header to align the
14414         start of the body of the message to 8-byte boundary
14415
14416         * dbus/dbus-marshal.h: make all the demarshalers take const
14417         DBusString arguments.
14418
14419         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14420         validate message args here, so we don't have to do slow validation
14421         later, and so we catch bad messages as they are incoming. Also add
14422         better checks on header_len and body_len. Also fill in
14423         message->byte_order
14424
14425         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14426         implemented properly)
14427         (_dbus_string_validate_nul): new function to check all-nul
14428
14429         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14430         get_arg_end_pos and remove all validation
14431         (_dbus_marshal_validate_arg): actually do validation here.
14432
14433 2003-01-29  Havoc Pennington  <hp@pobox.com>
14434
14435         * dbus/dbus-message.c (check_message_handling): fix assertion
14436         failure on set_client_serial
14437
14438 2003-01-28  Havoc Pennington  <hp@pobox.com>
14439
14440         * dbus/dbus-server-debug.c: Add doc section comments
14441
14442         * dbus/dbus-transport-debug.c: add doc section comments
14443
14444 2003-01-28  Havoc Pennington  <hp@redhat.com>
14445
14446         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14447         the reverse order from how I had it
14448         (_dbus_string_base64_encode): reverse encoding order. I was
14449         basically byteswapping everything during encoding.
14450
14451 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14452
14453         * dbus/dbus-connection-internal.h:
14454         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14455         (_dbus_connection_remove_timeout):
14456         Add functions for adding and removing timeouts.
14457
14458         * dbus/dbus-message.c: (dbus_message_new_from_message):
14459         Add new function that takes a message and creates an exact
14460         copy of it, but with the refcount set to 1.
14461         (check_message_handling):
14462         Fix build error.
14463
14464         * dbus/dbus-server-protected.h:
14465         * dbus/dbus-server.c: (_dbus_server_init_base),
14466         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14467         (dbus_server_set_timeout_functions):
14468         (_dbus_server_remove_timeout):
14469         New functions so that a server can add and remove timeouts.
14470
14471         (dbus_server_listen):
14472         Add commented out call to dbus_server_debug_new.
14473
14474         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14475         Actually set the handler, doh.
14476
14477         * dbus/dbus-transport.c: (_dbus_transport_open):
14478         Add commented out call to dbus_transport_debug_client_new.
14479
14480         * dbus/Makefile.am:
14481         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14482
14483 2003-01-28  Havoc Pennington  <hp@pobox.com>
14484
14485         * dbus/dbus-message.c (check_message_handling): function to check
14486         on the loaded message, iterates over it etc.
14487
14488 2003-01-28  Havoc Pennington  <hp@pobox.com>
14489
14490         * test/Makefile.am (dist-hook): fix make distdir
14491
14492         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14493
14494 2003-01-27  Havoc Pennington  <hp@pobox.com>
14495
14496         * dbus/dbus-mempool.c (time_for_size): replace printf with
14497         _dbus_verbose
14498
14499         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14500         empty lines; fix the SAVE_LENGTH stuff to be
14501         START_LENGTH/END_LENGTH so it actually works; couple other
14502         bugfixes
14503
14504         * test/Makefile.am (dist-hook): add dist-hook for .message files
14505
14506         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14507         can be constant or locked.
14508         (_dbus_string_free): allow freeing a const string as
14509         documented/intended
14510
14511         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14512
14513         * dbus/dbus-test-main.c (main): take an argument which is the
14514         directory containing test data
14515
14516         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14517         argument to this and load all the messages in test/data/
14518         checking that they can be loaded or not loaded as appropriate.
14519
14520 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14521
14522         * bus/dispatch.c: (bus_dispatch_message_handler):
14523         Dispatch messages sent to services.
14524
14525         * bus/driver.c: (bus_driver_send_service_deleted),
14526         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14527         (bus_driver_send_service_acquired):
14528         Add helper functions for sending service related messages.
14529
14530         (bus_driver_send_welcome_message):
14531         Send HELLO_REPLY instead of WELCOME.
14532
14533         (bus_driver_handle_list_services):
14534         Send LIST_SERVICES_REPLY instead of SERVICES.
14535
14536         (bus_driver_handle_own_service),
14537         (bus_driver_handle_service_exists):
14538         New message handlers.
14539
14540         (bus_driver_handle_message):
14541         Invoke new message handlers.
14542
14543         (bus_driver_remove_connection):
14544         Don't remove any services here since that's done automatically
14545         by bus_service_remove_owner now.
14546
14547         * bus/driver.h:
14548         New function signatures.
14549
14550         * bus/services.c: (bus_service_add_owner):
14551         Send ServiceAcquired message if we're the only primary owner.
14552
14553         (bus_service_remove_owner):
14554         Send ServiceAcquired/ServiceLost messages.
14555
14556         (bus_service_set_prohibit_replacement),
14557         (bus_service_get_prohibit_replacement):
14558         Functions for setting prohibit replacement.
14559
14560         (bus_service_has_owner):
14561         New function that checks if a connection is in the owner queue of
14562         a certain service.
14563
14564         * bus/services.h:
14565         Add new function signatures.
14566
14567         * dbus/dbus-list.c: (_dbus_list_test):
14568         Add tests for _dbus_list_remove_last and traversing the list backwards.
14569
14570         * dbus/dbus-list.h:
14571         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14572         go any further, so return NULL then.
14573
14574         * dbus/dbus-protocol.h:
14575         Add new messages, service flags and service replies.
14576
14577 2003-01-26  Havoc Pennington  <hp@pobox.com>
14578
14579         * dbus/dbus-message-builder.c: implement, completely untested.
14580
14581         * test/data/*: add data to be used in testing.
14582         ".message" files are our simple loadable text format.
14583         ".message-raw" will be binary dumps of messages.
14584
14585         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14586
14587 2003-01-26  Havoc Pennington  <hp@pobox.com>
14588
14589         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14590
14591         * dbus/dbus-errors.c (dbus_result_to_string): add
14592         file errors
14593
14594         * dbus/dbus-message-builder.c: new file, will contain code to load
14595         up messages from files. Not implemented yet.
14596
14597 2003-01-26  Havoc Pennington  <hp@pobox.com>
14598
14599         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14600         the sender by setting to NULL
14601
14602 2003-01-26  Havoc Pennington  <hp@pobox.com>
14603
14604         The unit tests pass, but otherwise untested.  If it breaks, the
14605         tests should have been better. ;-)
14606
14607         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14608         the connection.
14609
14610         * dbus/dbus-message.c: redo everything so we maintain
14611         message->header as the only copy of the various fields.
14612         This avoids the possibility of out-of-memory in some cases,
14613         for example dbus_message_lock() can't run out of memory anymore,
14614         and avoids extra copying. Figured I may as well go ahead and do
14615         this since it was busted for dbus_message_lock to not return
14616         failure on OOM, and dbus_message_write_header was totally
14617         unchecked for OOM. Also fixed some random other bugs.
14618
14619         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14620         that strings are nul-terminated. Also, end_pos can be equal
14621         to string length just not greater than, I think.
14622         (_dbus_marshal_set_int32): new function
14623         (_dbus_marshal_set_uint32): new function
14624         (_dbus_marshal_set_string): new function
14625
14626         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14627         a warning, init timeout_list to NULL
14628         (dbus_connection_send_message): don't use uninitialized variable
14629         "serial"
14630
14631         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14632
14633 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14634
14635         * bus/driver.c: (bus_driver_handle_hello),
14636         (bus_driver_send_welcome_message):
14637         Plug leaks
14638
14639 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14640
14641         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14642         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14643         (dbus_connection_unref):
14644         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14645         * dbus/dbus-message.c: (dbus_message_unref),
14646         Plug memory leaks.
14647
14648         (dbus_message_get_fields):
14649         Remove debugging printout.
14650
14651         (_dbus_message_loader_return_buffer):
14652         Don't store the header string.
14653
14654         (_dbus_message_test):
14655         Plug leaks.
14656
14657 2003-01-26  Richard Hult  <rhult@codefactory.se>
14658
14659         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14660         the file descriptor list, since it can change under us.
14661
14662 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14663
14664         * glib/dbus-gmain.c: (dbus_connection_prepare),
14665         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14666         (remove_watch), (dbus_connection_hookup_with_g_main):
14667         Rewrite the glib handling to use its own GSource instead of a
14668         GIOChannel so we can catch messages put in the queue while waiting
14669         for a reply.
14670
14671 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14672
14673         * bus/Makefile.am:
14674         * bus/connection.c: (connection_disconnect_handler),
14675         (connection_watch_callback), (bus_connection_setup):
14676         * bus/dispatch.c: (send_one_message),
14677         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14678         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14679         * bus/dispatch.h:
14680         * bus/driver.c: (bus_driver_send_service_deleted),
14681         (bus_driver_send_service_created), (bus_driver_handle_hello),
14682         (bus_driver_send_welcome_message),
14683         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14684         (bus_driver_handle_message):
14685         * bus/driver.h:
14686         Refactor code, put the message dispatching in its own file. Use
14687         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14688         is disconnected.
14689
14690 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14691
14692         * dbus/dbus-internals.h:
14693         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14694
14695         * dbus/dbus-message.c: (dbus_message_get_sender):
14696         * dbus/dbus-message.h:
14697         Implement dbus_message_get_sender.
14698
14699         * dbus/dbus-protocol.h:
14700         Add message and service defines.
14701
14702 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14703
14704         * dbus/dbus-connection.c: (dbus_connection_send_message):
14705         * dbus/dbus-message-internal.h:
14706         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14707         (dbus_message_write_header):
14708         Remove _dbus_messag_unlock and don't set the client serial on a
14709         message if one already exists.
14710
14711 2003-01-24  Havoc Pennington  <hp@pobox.com>
14712
14713         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14714         list_pool
14715
14716         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14717         on OOM
14718
14719 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14720
14721         * dbus/dbus-list.c: (alloc_link), (free_link):
14722         Use a memory pool for the links.
14723
14724 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14725
14726         * bus/connection.c: (bus_connection_foreach):
14727         * bus/connection.h:
14728         Add new bus_connection_foreach function.
14729
14730         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14731         Add function that broadcasts a message to all clients.
14732
14733         (bus_driver_send_service_created), (bus_driver_handle_hello),
14734         (bus_driver_send_welcome_message),
14735         (bus_driver_handle_list_services), (bus_driver_message_handler):
14736         Implement functions that take care of listing services, and notifying
14737         clients when new services are created.
14738
14739         * bus/services.c: (bus_services_list):
14740         * bus/services.h:
14741         Add new function that returns an array of strings with the currently
14742         registered services.
14743
14744         * glib/dbus-glib.h:
14745         * glib/dbus-gmain.c:
14746         Update copyright year.
14747
14748 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14749
14750         * dbus/dbus-connection.c: (dbus_connection_send_message):
14751         Unlock the message in case it was sent earlier.
14752
14753         (dbus_connection_send_message_with_reply_and_block):
14754         Remove the reply message from the list.
14755
14756         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14757         Set array_len and new_pos correctly.
14758
14759         (_dbus_marshal_test):
14760         Remove debug output.
14761
14762         * dbus/dbus-message-internal.h:
14763         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14764         New function that returns the reply serial.
14765
14766         (_dbus_message_unlock):
14767         New function that unlocks a message and resets its header.
14768
14769         (dbus_message_append_string_array),
14770         (dbus_message_get_fields_valist),
14771         (dbus_message_iter_get_field_type),
14772         (dbus_message_iter_get_string_array),
14773         (dbus_message_get_fields),
14774         (dbus_message_append_fields_valist):
14775         Handle string arrays.
14776
14777         (dbus_message_set_sender):
14778         Make this function public since the bus daemon needs it.
14779
14780         (decode_header_data):
14781         Set the reply serial to -1 initially.
14782
14783         * dbus/dbus-message.h:
14784         Add dbus_message_set_sender.
14785
14786 2003-01-24  Havoc Pennington  <hp@pobox.com>
14787
14788         * doc/dbus-specification.sgml: add some stuff
14789
14790 2003-01-22  Havoc Pennington  <hp@pobox.com>
14791
14792         * doc/dbus-specification.sgml: Start to document the protocol.
14793
14794 2003-01-22  Havoc Pennington  <hp@pobox.com>
14795
14796         * dbus/dbus-connection.c
14797         (dbus_connection_send_message_with_reply_and_block): add some @todo
14798
14799         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14800
14801 2003-01-21  Havoc Pennington  <hp@pobox.com>
14802
14803         (patch untested because can't compile)
14804
14805         * bus/driver.c (create_unique_client_name): make this function
14806         never recycle client names. Also, caller should initialize
14807         the DBusString.
14808
14809         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14810
14811 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14812
14813         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14814         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14815         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14816         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14817         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14818         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14819         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14820         * dbus/dbus-marshal.h:
14821         * dbus/dbus-protocol.h:
14822         Add support for marshalling and demarshalling integer, double
14823         and string arrays.
14824
14825 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14826
14827         * bus/Makefile.am:
14828         Add driver.[ch]
14829
14830         * bus/connection.c: (connection_disconnect_handler):
14831         Remove the connection from the bus driver's list.
14832
14833         (connection_watch_callback): Dispatch messages.
14834
14835         (free_connection_data): Free connection name.
14836
14837         (bus_connection_setup): Add connection to the bus driver's list.
14838         (bus_connection_remove_owned_service):
14839         (bus_connection_set_name), (bus_connection_get_name):
14840         Add functions for setting and getting the connection's name.
14841
14842         * bus/connection.h:
14843         Add function headers.
14844
14845         * bus/driver.c: (create_unique_client_name),
14846         (bus_driver_handle_hello_message),
14847         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14848         (bus_driver_add_connection), (bus_driver_remove_connection):
14849         * bus/driver.h:
14850         * bus/main.c:
14851         * bus/services.c: (bus_service_free):
14852         * bus/services.h:
14853         New file that handles communication and registreation with the bus
14854         itself.
14855
14856 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14857
14858         * dbus/dbus-connection.c: (dbus_connection_send_message):
14859         Add a new client_serial parameter.
14860
14861         (dbus_connection_send_message_with_reply):
14862         Remove a @todo since we've implemented the blocking function.
14863
14864         (dbus_connection_send_message_with_reply_and_block):
14865         New function that sends a message and waits for a reply and
14866         then returns the reply.
14867
14868         * dbus/dbus-connection.h:
14869         Add new functions.
14870
14871         * dbus/dbus-errors.c: (dbus_result_to_string):
14872         * dbus/dbus-errors.h:
14873         Add new DBUS_RESULT.
14874
14875         * dbus/dbus-message-internal.h:
14876         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14877         (_dbus_message_set_sender), (dbus_message_write_header),
14878         (dbus_message_new_reply), (decode_header_data),
14879         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14880         * dbus/dbus-message.h:
14881         Add new functions that set the reply serial and sender.
14882         Also marshal and demarshal them correctly and add test.
14883
14884         * dbus/dbus-protocol.h:
14885         Add new DBUS_MESSAGE_TYPE_SENDER.
14886
14887         * glib/dbus-glib.h:
14888         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14889         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14890         (dbus_connection_hookup_with_g_main):
14891         * glib/test-dbus-glib.c: (main):
14892         Rewrite to use GIOChannel and remove the GSource crack.
14893
14894         * test/echo-client.c: (main):
14895         * test/watch.c: (check_messages):
14896         Update for changed APIs
14897
14898 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14899
14900         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14901
14902         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14903         Create a DBusTimeoutList.
14904         (dbus_connection_set_timeout_functions): Add new function to
14905         set timeout callbacks
14906
14907         * dbus/dbus-connection.h: Add public DBusTimeout API.
14908
14909         * dbus/dbus-message.c: (dbus_message_get_service):
14910         * dbus/dbus-message.h:  New function.
14911
14912         * dbus/dbus-server.c: Fix small doc typo.
14913
14914         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14915
14916 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14917
14918         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14919         of the string, just as long as specified.
14920
14921 2003-01-19  Havoc Pennington  <hp@pobox.com>
14922
14923         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14924         new function
14925
14926         * dbus/dbus-server.c (dbus_server_set_max_connections)
14927         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14928         keep track of current number of connections, and add API for
14929         setting a max (but haven't implemented enforcing the max yet)
14930
14931 2003-01-18  Havoc Pennington  <hp@pobox.com>
14932
14933         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14934         reading/writing if read_watch != NULL or write_watch != NULL.
14935
14936         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14937         the message loader code to actually load message->header and
14938         message->body into the newly-created message.
14939
14940         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14941         in OOM case
14942
14943         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14944         (dbus_connection_get_max_message_size)
14945         (dbus_connection_set_max_live_messages_size)
14946         (dbus_connection_get_max_live_messages_size): implement some
14947         resource limitation functions
14948
14949         * dbus/dbus-resources.c: new file implementing some of the
14950         resource limits stuff
14951
14952         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14953         missing docs, add @todo to handle OOM etc.
14954
14955         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14956         docs
14957
14958 2003-01-18  Havoc Pennington  <hp@pobox.com>
14959
14960         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14961         connection if it hasn't been already.
14962
14963         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14964         replace with DisconnectFunction.
14965
14966 2003-01-18  Havoc Pennington  <hp@pobox.com>
14967
14968         Building --disable-verbose-mode --disable-asserts --disable-tests
14969         cuts the library from 112K to 45K or so
14970
14971         * configure.in: check for varargs macro support,
14972         add --enable-verbose-mode, --enable-asserts.
14973
14974         * dbus/dbus-internals.h (_dbus_assert): support
14975         DBUS_DISABLE_ASSERT
14976         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14977
14978 2003-01-18  Havoc Pennington  <hp@pobox.com>
14979
14980         * dbus/dbus-test.c: include config.h so that tests actually run
14981
14982         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14983         so the failure mode when that assumption fails will be plenty
14984         obvious.
14985
14986 2003-01-18  Havoc Pennington  <hp@pobox.com>
14987
14988         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14989
14990         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14991         the distribution
14992
14993         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14994         since we don't want to use those in make check
14995
14996 2003-01-15  Havoc Pennington  <hp@redhat.com>
14997
14998         Release 0.2
14999
15000         * NEWS: update
15001
15002 2003-01-15  Havoc Pennington  <hp@redhat.com>
15003
15004         * test/Makefile.am: fix so that test source code ends up in the
15005         distribution on make distcheck
15006
15007 2003-01-15  Havoc Pennington  <hp@redhat.com>
15008
15009         Release 0.1.
15010
15011         * NEWS: update
15012
15013 2003-01-15  Havoc Pennington  <hp@redhat.com>
15014
15015         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
15016         fix build when --disable-tests
15017
15018         * Makefile.am (EXTRA_DIST): put HACKING in here
15019
15020         * HACKING: document procedure for making a tarball release.
15021
15022 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
15023
15024         * bus/connection.c: (connection_error_handler),
15025         (bus_connection_setup):
15026         * bus/main.c: (main):
15027         Make sure that the DBusConnectionData struct is NULLed
15028         out to prevent a segfault.
15029
15030         * dbus/dbus-errors.c: (dbus_result_to_string):
15031         * dbus/dbus-errors.h:
15032         * dbus/dbus-message.c: (dbus_message_get_fields),
15033         (dbus_message_get_fields_valist), (_dbus_message_test):
15034         * dbus/dbus-message.h:
15035         Make dbus_message_get_fields return a result code so we can
15036         track invalid fields as well as oom.
15037
15038 2003-01-11  Havoc Pennington  <hp@pobox.com>
15039
15040         * configure.in: change --enable-test/--enable-ansi action-if-given
15041         to enable_foo=$enableval instead of enable_foo=yes
15042
15043 2003-01-08  Havoc Pennington  <hp@pobox.com>
15044
15045         * dbus/dbus-string.c (_dbus_string_align_length): new function
15046
15047         * dbus/dbus-test-main.c: move main() for test app here
15048         * dbus/dbus-test.c
15049         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
15050         symbol to run tests, because dbus-test isn't in the main
15051         library
15052
15053         Code review nitpicks.
15054
15055         * dbus/dbus-message.c (dbus_message_write_header): add newlines
15056         for people with narrow emacs ;-). Assert client_serial was filled
15057         in. Assert message->name != NULL.
15058         (dbus_message_append_fields): have "first_field_type" arg separate
15059         from va list, needed for C++ binding that also uses varargs IIRC
15060         and helps with type safety
15061         (dbus_message_new): add @todo about using DBusString to store
15062         service/name internally
15063         (dbus_message_new): don't leak ->service and ->name on OOM later
15064         in the function
15065         (dbus_message_unref): free the service name
15066         (dbus_message_get_fields): same change to varargs
15067         i.e. first_field_type
15068         (_dbus_message_loader_return_buffer): assert that the message data
15069         is aligned (if not it's a bug in our code). Put in verbose griping
15070         about why we set corrupted = TRUE.
15071         (decode_header_data): add FIXME that char* is evil.  Was going to
15072         add FIXME about evil locale-specific string.h strncmp, but just
15073         switched to wacky string-as-uint32 optimization. Move check for
15074         "no room for field name" above get_const_data_len() to avoid
15075         assertion failure in get_const_data_len if we have trailing 2
15076         bytes or the like. Check for service and name fields being
15077         provided twice. Don't leak service/name on error. Require field
15078         names to be aligned to 4 bytes.
15079
15080         * dbus/dbus-marshal.c: move byte swap stuff to header
15081         (_dbus_pack_int32): uscore-prefix
15082         (_dbus_unpack_int32): uscore-prefix
15083         (_dbus_unpack_uint32): export
15084         (_dbus_demarshal_string): add @todo complaining about use of
15085         memcpy()
15086         (_dbus_marshal_get_field_end_pos): add @todo about bad error
15087         handling allowing corrupt data to go unchecked
15088
15089 2003-01-08  Havoc Pennington  <hp@redhat.com>
15090
15091         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
15092         to the select() as needed for authentication. (should be using
15093         _dbus_poll() not select, but for another day)
15094
15095         * dbus/dbus.h: include dbus/dbus-protocol.h
15096
15097 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
15098
15099         * dbus/Makefile.am (dbusinclude_HEADERS): Install
15100         dbus-connection.h
15101
15102 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
15103
15104         * dbus/dbus-internals.c: (_dbus_type_to_string):
15105         New function that returns a string describing a type.
15106
15107         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
15108         * dbus/dbus-marshal.h:
15109         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
15110         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
15111         (dbus_message_iter_get_byte_array):
15112         * dbus/dbus-message.h:
15113         Add new convenience functions for appending and getting message fields.
15114         Also add demarshalling routines for byte arrays.
15115
15116 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15117
15118         * dbus/dbus-connection-internal.h:
15119         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
15120         (_dbus_connection_get_next_client_serial),
15121         (dbus_connection_send_message):
15122         * dbus/dbus-internals.h:
15123         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
15124         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
15125         (_dbus_marshal_uint32), (_dbus_demarshal_double),
15126         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
15127         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
15128         (_dbus_verbose_bytes), (_dbus_marshal_test):
15129         * dbus/dbus-marshal.h:
15130         * dbus/dbus-message-internal.h:
15131         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
15132         (dbus_message_write_header), (_dbus_message_lock),
15133         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
15134         (dbus_message_get_name), (dbus_message_append_int32),
15135         (dbus_message_append_uint32), (dbus_message_append_double),
15136         (dbus_message_append_string), (dbus_message_append_byte_array),
15137         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
15138         (dbus_message_iter_unref), (dbus_message_iter_has_next),
15139         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
15140         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
15141         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
15142         (decode_header_data), (_dbus_message_loader_return_buffer),
15143         (message_iter_test), (_dbus_message_test):
15144         * dbus/dbus-message.h:
15145         * dbus/dbus-protocol.h:
15146         * dbus/dbus-test.c: (main):
15147         * dbus/dbus-test.h:
15148         * glib/test-dbus-glib.c: (message_handler), (main):
15149         * test/echo-client.c: (main):
15150         * test/watch.c: (check_messages):
15151         Make messages sendable and receivable for real.
15152
15153 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15154
15155         * dbus/dbus-marshal.c: (_dbus_marshal_double),
15156         (_dbus_marshal_string), (_dbus_marshal_byte_array):
15157         * dbus/dbus-message.c: (dbus_message_append_int32),
15158         (dbus_message_append_uint32), (dbus_message_append_double),
15159         (dbus_message_append_string), (dbus_message_append_byte_array):
15160         Handle OOM restoration.
15161
15162 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15163
15164         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15165         (_dbus_demarshal_string), (_dbus_marshal_test):
15166         * dbus/dbus-marshal.h:
15167         * dbus/dbus-message.c: (dbus_message_get_name),
15168         Document these functions.
15169
15170         (dbus_message_append_int32), (dbus_message_append_uint32),
15171         (dbus_message_append_double), (dbus_message_append_string),
15172         (dbus_message_append_byte_array):
15173         * dbus/dbus-message.h:
15174         Add functions for adding message fields of different types.
15175
15176         * dbus/dbus-protocol.h:
15177         Add the different types.
15178
15179 2003-01-05  Havoc Pennington  <hp@pobox.com>
15180
15181         * bus/connection.c: implement routines for handling connections,
15182         first thing is keeping a list of owned services on each connection
15183         and setting up watches etc.
15184
15185         * bus/services.c: implement a mapping from service names to lists
15186         of connections
15187
15188         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
15189
15190         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
15191         to use static mutexes for global data
15192
15193         * dbus/dbus-connection.c (dbus_connection_set_data): add new
15194         collection of functions to set/get application-specific data
15195         on the DBusConnection.
15196
15197 2003-01-04  Havoc Pennington  <hp@pobox.com>
15198
15199         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
15200         (_dbus_poll): new function
15201
15202         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
15203         copied from GLib
15204
15205         * bus/loop.c: initial code for the daemon main loop
15206
15207 2003-01-04  Havoc Pennington  <hp@pobox.com>
15208
15209         * test/watch.c (error_handler): make it safe if the error handler
15210         is called multiple times (if we s/error handler/disconnect
15211         handler/ we should just guarantee it's called only once)
15212
15213         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
15214         error handler on disconnect (it's quite possible we should
15215         just change the error handler to a "disconnect handler," I'm
15216         not sure we have any other meaningful errors)
15217
15218         * configure.in: check for getpwnam_r
15219
15220         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
15221         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
15222         mechanism as in SASL spec, using socket credentials
15223
15224         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
15225         (_dbus_send_credentials_unix_socket): new function
15226
15227         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
15228         dbus_accept()
15229         (_dbus_write): only check errno if <0 returned
15230         (_dbus_write_two): ditto
15231
15232 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
15233
15234         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
15235         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
15236         (_dbus_marshal_test):
15237         * dbus/dbus-marshal.h:
15238         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
15239         to _dbus_marshal_utf8_string. Also fix some tests.
15240
15241 2002-12-28  Harri Porten  <porten@kde.org>
15242
15243         * configure.in: added check for C++ compiler and a very cheesy
15244         check for the Qt integration
15245
15246         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
15247
15248         * qt/Makefile.am: added
15249
15250         * qt/.cvsignore: added
15251
15252         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
15253         latter, added #ifdef QT_THREAD_SUPPORT guard.
15254
15255         * dbus/Makefile.am: added missing headers for make dist
15256
15257 2002-12-28  Kristian Rietveld  <kris@gtk.org>
15258
15259         * dbus/Makefile.am: fixup export-symbols-regex.
15260
15261 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15262
15263         * acinclude.m4: Add this file and put the
15264         PKG_CHECK_MODULE macro in it.
15265
15266 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15267
15268         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15269         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15270         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15271         (_dbus_marshal_test):
15272         Make the demarshalling routines align the pos argument.
15273         Add string marshalling tests and fix the obvious bugs
15274         discovered.
15275
15276 2002-12-26  Havoc Pennington  <hp@pobox.com>
15277
15278         * dbus/dbus-auth.c: fixes fixes fixes
15279
15280         * dbus/dbus-transport-unix.c: wire up support for
15281         encoding/decoding data on the wire
15282
15283         * dbus/dbus-auth.c (_dbus_auth_encode_data)
15284         (_dbus_auth_decode_data): append to target string
15285         instead of nuking it.
15286
15287 2002-12-26  Havoc Pennington  <hp@pobox.com>
15288
15289         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
15290         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
15291         doh
15292
15293         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
15294         avoid swap_bytes() overhead (ignoring possible assembly stuff for
15295         now). Main point is because I wanted unpack_uint32 to implement
15296         _dbus_verbose_bytes
15297         (_dbus_verbose_bytes): new function
15298
15299         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
15300
15301         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
15302         mechanism to handle a corrupt message stream
15303         (_dbus_message_loader_new): fix preallocation to only prealloc,
15304         not prelengthen
15305
15306         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
15307         (_dbus_string_test): enhance tests for copy/move and fix the
15308         functions
15309
15310         * dbus/dbus-transport-unix.c: Hold references in more places to
15311         avoid reentrancy problems
15312
15313         * dbus/dbus-transport.c: ditto
15314
15315         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
15316         leak reference count in no-message case
15317
15318         * test/watch.c (do_mainloop): handle adding/removing watches
15319         during iteration over the watches. Also, ref the connection/server
15320         stored on a watch, so we don't try to mangle a destroyed one.
15321
15322         * dbus/dbus-transport-unix.c (do_authentication): perform
15323         authentication
15324
15325         * dbus/dbus-auth.c (get_state): add a state
15326         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
15327         (_dbus_auth_get_unused_bytes): append the unused bytes
15328         to the passed in string, rather than prepend
15329
15330         * dbus/dbus-transport.c (_dbus_transport_init_base): create
15331         the auth conversation DBusAuth
15332
15333         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
15334         (_dbus_transport_new_for_domain_socket): when creating a
15335         transport, pass in whether it's a client-side or server-side
15336         transport so we know which DBusAuth to create
15337
15338 2002-12-03  Havoc Pennington  <hp@pobox.com>
15339
15340         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15341         _after_ finalizing the derived members
15342         (unix_connection_set): unref watch if we fail to add it
15343
15344         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15345         transport first, so that the connection owned by the
15346         transport will be valid as the transport finalizes.
15347
15348         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15349         if necessary, and remove watches from the connection.
15350
15351         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15352
15353 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15354
15355         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15356         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15357         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15358         (_dbus_marshal_test):
15359         * dbus/dbus-marshal.h:
15360         Add string marshal functions and have the demarshal functions
15361         return the new position.
15362
15363 2002-12-25  Havoc Pennington  <hp@pobox.com>
15364
15365         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15366         it is a simple protocol that just maps directly to SASL.
15367
15368         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15369         initial implementation, not actually used yet.
15370
15371         * dbus/dbus-string.c (_dbus_string_find): new function
15372         (_dbus_string_equal): new function
15373         (_dbus_string_base64_encode): new function
15374         (_dbus_string_base64_decode): new function
15375
15376 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15377
15378         * dbus/Makefile.am:
15379         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15380         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15381         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15382         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15383         * dbus/dbus-marshal.h:
15384         * dbus/dbus-protocol.h:
15385         * dbus/dbus-test.c: (main):
15386         * dbus/dbus-test.h:
15387         Add un-optimized marshalling/demarshalling routines.
15388
15389 2002-12-25  Harri Porten  <porten@kde.org>
15390
15391         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15392
15393 2002-12-24  Zack Rusin  <zack@kde.org>
15394
15395         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15396         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15397         main loop stuff
15398
15399 2002-12-24  Havoc Pennington  <hp@pobox.com>
15400
15401         * glib/dbus-gthread.c: fix include
15402
15403         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15404         I think glib API needs to change, though, as you don't
15405         want to use DBusMessageFunction, you want to use the
15406         DBusMessageHandler object. Probably
15407         dbus_connection_open_with_g_main_loop()
15408         and dbus_connection_setup_g_main_loop() or something like that
15409         (but think of better names...) that just create a connection
15410         that has watch/timeout functions etc. already set up.
15411
15412         * dbus/dbus-connection.c
15413         (dbus_connection_send_message_with_reply): new function just to
15414         show how the message handler helps us deal with replies.
15415
15416         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15417
15418         * dbus/dbus-string.c (_dbus_string_test): free a string that
15419         wasn't
15420
15421         * dbus/dbus-hash.c: use memory pools for the hash entries
15422         (rebuild_table): be more paranoid about overflow, and
15423         shrink table when we can
15424         (_dbus_hash_test): reduce number of sprintfs and write
15425         valid C89. Add tests for case where we grow and then
15426         shrink the hash table.
15427
15428         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15429
15430         * dbus/dbus-connection.c (dbus_connection_register_handler)
15431         (dbus_connection_unregister_handler): new functions
15432
15433         * dbus/dbus-message.c (dbus_message_get_name): new
15434
15435         * dbus/dbus-list.c: fix docs typo
15436
15437         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15438         an object representing a handler for messages.
15439
15440 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15441
15442         * glib/dbus-glib.h:
15443         * glib/dbus-gthread.c: (dbus_gthread_init):
15444         Don't use the gdbus prefix for public functions.
15445
15446 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15447
15448         * Makefile.am:
15449         * configure.in:
15450         Add GLib checks and fixup .pc files
15451
15452         * glib/Makefile.am:
15453         * glib/dbus-glib.h:
15454         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15455         (gdbus_connection_check), (gdbus_connection_dispatch),
15456         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15457         (dbus_connection_gsource_new):
15458         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15459         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15460         * glib/test-dbus-glib.c: (message_handler), (main):
15461         Add GLib support.
15462
15463 2002-12-15  Harri Porten  <porten@kde.org>
15464
15465         * autogen.sh: check for libtoolize before attempting to use it
15466
15467         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15468         struct.
15469
15470         * .cvsignore: ignore more stamp files
15471
15472         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15473
15474         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15475         without make install.
15476
15477 2002-12-15  Havoc Pennington  <hp@pobox.com>
15478
15479         * dbus/dbus-threads.c: add thread stubs that a higher library
15480         layer can fill in. e.g. the GLib wrapper might fill them in with
15481         GThread stuff. We still need to use this thread API to
15482         thread-safe-ize the library.
15483
15484 2002-12-12  Havoc Pennington  <hp@pobox.com>
15485
15486         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15487         below new interfaces and include fewer system headers.
15488
15489         * dbus/dbus-sysdeps.c (_dbus_read): new function
15490         (_dbus_write): new function
15491         (_dbus_write_two): new function
15492         (_dbus_connect_unix_socket): new function
15493         (_dbus_listen_unix_socket): new function
15494
15495         * dbus/dbus-message-internal.h: change interfaces to use
15496         DBusString
15497
15498 2002-12-11  Havoc Pennington  <hp@pobox.com>
15499
15500         * dbus/dbus-types.h: add dbus_unichar
15501
15502         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15503
15504         * dbus/dbus-connection.c (dbus_connection_send_message): return
15505         TRUE on success
15506
15507         * dbus/dbus-transport.c: include dbus-watch.h
15508
15509         * dbus/dbus-connection.c: include dbus-message-internal.h
15510
15511         * HACKING: add file with coding guidelines stuff.
15512
15513         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15514         handling here, for security purposes (as in vsftpd). Not actually
15515         using this class yet.
15516
15517         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15518         system/libc usage here, as in vsftpd, for ease of auditing (and
15519         should also simplify portability). Haven't actually moved all the
15520         system/libc usage into here yet.
15521
15522 2002-11-25  Havoc Pennington  <hp@pobox.com>
15523
15524         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15525         always print the first verbose message.
15526
15527 2002-11-24  Havoc Pennington  <hp@pobox.com>
15528
15529         * test/echo-client.c, test/echo-server.c: cheesy test
15530         clients.
15531
15532         * configure.in (AC_CHECK_FUNCS): check for writev
15533
15534         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15535         function
15536
15537         * dbus/dbus-list.c (_dbus_list_foreach): new function
15538
15539         * dbus/dbus-internals.c (_dbus_verbose): new function
15540
15541         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15542         representing a server that listens for connections.
15543
15544         * dbus/.cvsignore: create
15545
15546         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15547         public API for reporting errors
15548
15549         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15550         public object representing a connection that
15551         sends/receives messages. (Same object used for
15552         both client and server.)
15553
15554         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15555         Basic abstraction for different kinds of stream
15556         that we might read/write messages from.
15557
15558 2002-11-23  Havoc Pennington  <hp@pobox.com>
15559
15560         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15561         _DBUS_INT_MAX
15562
15563         * dbus/dbus-test.c (main): add list test, and include
15564         dbus-test.h as intended
15565
15566         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15567         (_dbus_hash_table_remove_int): return value indicates
15568         whether the entry existed to remove
15569
15570         * dbus/dbus-list.c: add linked list utility class,
15571         with docs and tests
15572
15573         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15574         array sometimes.
15575
15576 2002-11-23  Havoc Pennington  <hp@pobox.com>
15577
15578         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15579         DBUS_END_DECLS to nothing, that should fix this once and for all
15580
15581         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15582
15583         * dbus/dbus-message.c, dbus/dbus-hash.c:
15584         add some missing @brief
15585
15586 2002-11-23  Havoc Pennington  <hp@pobox.com>
15587
15588         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15589         to avoid confusing Doxygen
15590
15591         * dbus/dbus-hash.c: @} not }@
15592
15593         * dbus/dbus-message.c (struct DBusMessage): split out
15594         internals docs
15595
15596 2002-11-23  Havoc Pennington  <hp@pobox.com>
15597
15598         * configure.in: pile on more warning flags if using gcc
15599
15600         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15601         to document static functions
15602
15603         * configure.in: add summary to end of configure so it
15604         looks nice and attractive
15605
15606         * dbus/dbus-hash.c: finish implementation and write unit
15607         tests and docs
15608
15609         * configure.in: add --enable-tests to enable unit tests
15610
15611         * dbus/dbus-test.c: test program to run unit tests
15612         for all files in dbus/*, initially runs a test for
15613         dbus-hash.c
15614
15615         * dbus/dbus-internals.h: file to hold some internal utility stuff
15616
15617 2002-11-22  Havoc Pennington  <hp@redhat.com>
15618
15619         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15620         "ported" away from Tcl
15621
15622         * dbus/dbus-types.h: header for types such as dbus_bool_t
15623
15624 2002-11-22  Havoc Pennington  <hp@redhat.com>
15625
15626         * dbus/dbus.h: fixups for doc warnings
15627
15628         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15629         macros
15630         (QUIET): make it quiet so we can see warnings
15631
15632         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15633
15634 2002-11-22  Havoc Pennington  <hp@redhat.com>
15635
15636         * Makefile.am: include "Doxyfile" target in all-local
15637
15638         * configure.in: generate the Doxyfile
15639
15640         * Doxyfile.in: move Doxyfile here, so we can use
15641         configure to generate a Doxyfile with the right
15642         version number etc.
15643
15644 2002-11-22  Havoc Pennington  <hp@redhat.com>
15645
15646         * dbus/dbus-message.c: move inline docs into .c file
15647
15648         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15649         so all docs are under doc/
15650         (MAN_EXTENSION): generate man pages. Use extension
15651         ".3dbus" which matches ".3qt" on my system,
15652         I guess this is OK, I don't know really.
15653         (FILE_PATTERNS): look for .c files not .h, makes sense
15654         for plain C I think
15655
15656 2002-11-22  Havoc Pennington  <hp@pobox.com>
15657
15658         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15659         because any app can be a server, and any app can be a client,
15660         the bus is a special kind of server.
15661
15662 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15663
15664         * Doxyfile : adding. Still needs Makefile rules to be generated
15665         automatically (just run "doxygen" in the toplevel dir for now to
15666         generate docs)
15667
15668         * dbus/dbus-message.h : Adding sample docs (javadoc since
15669         resembles gtk-doc a little more)
15670
15671         * dbus/dbus.h : Adding sample docs
15672
15673 2002-11-21  Havoc Pennington  <hp@redhat.com>
15674
15675         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15676         so we can allow ourselves to include files directly,
15677         instead of having to use dbus.h
15678
15679         * dbus/dbus.h: fill in
15680
15681         * dbus/dbus-message.h: sketch out a sample header file.
15682         Include griping if you include it directly instead of
15683         via dbus.h
15684
15685         * dbus/dbus-macros.h: new file with macros for extern "C",
15686         TRUE/FALSE, NULL, etc.
15687
15688         * doc/file-boilerplate.c: put include guards in here
15689
15690 2002-11-21  Havoc Pennington  <hp@redhat.com>
15691
15692         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15693
15694         * COPYING: include the GPL as well, and license code
15695         under both AFL and GPL.
15696
15697 2002-11-21  Havoc Pennington  <hp@redhat.com>
15698
15699         * acconfig.h: get rid of this
15700
15701         * autogen.sh (run_configure): add --no-configure option
15702
15703         * configure.in: remove AC_ARG_PROGRAM to make
15704         autoconf complain less. add AC_PREREQ.
15705         add AC_DEFINE third arg.
15706
15707 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15708
15709         * doc/Makefile.am:
15710         Fix references so we can distcheck.
15711
15712 2002-11-21  Havoc Pennington  <hp@redhat.com>
15713
15714         * Initial module creation
15715