* dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): disabled tests not running...
[platform/upstream/dbus.git] / ChangeLog
1 2007-05-19 Ralf.Habacker  <ralf.habacker@freenet.de>
2
3         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): disabled 
4         tests not running on wince.
5
6 2007-05-19 Ralf.Habacker  <ralf.habacker@freenet.de>
7
8         * dbus/dbus-internals.c (_dbus_verbose_init): win32 requires 'varname=' 
9         to unset a environment variable. 
10
11 2007-05-19 Ralf.Habacker  <ralf.habacker@freenet.de>
12
13         * dbus/dbus-sysdeps.c (_dbus_setenv): win32 requires 'varname=' 
14         to unset a environment variable. 
15
16 2007-05-19 Ralf.Habacker  <ralf.habacker@freenet.de>
17
18         * bus/policy.c (bus_policy_create_client_policy): 
19         win32 temporary fix until the userdb stuff is ported completly.
20
21 2007-05-19  Ralf.Habacker  <ralf.habacker@freenet.de>
22
23         * dbus/dbus-server.c (listen_funcs): 
24         _dbus_server_listen_platform_specific is empty on win32, 
25         limited to unix only.
26
27         * dbus/dbus-server.c (valid_addresses): limit unix 
28         only addresses to unix. 
29
30 2007-05-18  Havoc Pennington  <hp@redhat.com>
31
32         * doc/dbus-specification.xml: add a GetAll to the Properties
33         interface.
34
35 2007-05-17 Ralf.Habacker  <ralf.habacker@freenet.de>
36  
37         * bus\config-parser.c (test_default_session_servicedirs):
38         win32 fix.
39
40 2007-05-17 Ralf.Habacker  <ralf.habacker@freenet.de>
41  
42         * configure.in: define constant DBUS_UNIX.
43
44 2007-05-14  Ralf Habacker <ralf.habacker@freenet.de>
45
46         * dbus/dbus-sysdeps-win.c (_dbus_printf_string_upper_bound):
47         compile fix for MS Platform SDK 6 
48         patch from Michael Luschas <mluschas@gmail.com>
49
50 2007-05-10  John (J5) Palmieri <johnp@redhat.com>
51
52         * dbus-1.pc.in: add daemondir to pc file
53         patch from Brian Cameron <brian.cameron at sun.com>
54
55 2007-05-04  Simon McVittie <simon.mcvittie@collabora.co.uk>
56
57         * doc/dbus-specification.xml: mention the reserved o.fd.DBus.Local
58         interface and the corresponding /o/fd/DBus/Local object path;
59         describe them as reserved and forbid using them in a sent message,
60         mentioning that in the reference implementation this will cause the
61         connection to be dropped. Patch approved by Havoc.
62
63 2007-04-28  Ralf Habacker <ralf.habacker@freenet.de>
64
65         * cmake/: don't install test applications and service files,
66         moved CMAKE_DEBUG_POSTFIX to top level CMakeLists.txt
67
68 2007-04-27  Havoc Pennington  <hp@redhat.com>
69
70         * dbus/dbus-sysdeps-unix.c (_dbus_open_socket): fix #10781 from
71         Tobias Nygren, checking pointer to fd vs. 0 rather than checking
72         the fd itself
73
74 2007-04-26 Ralf Habacker  <ralf.habacker@freenet.de>
75
76         * cmake/: added debug postfixes to debug exe's for 
77         easier debugging.
78         * dbus\dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error): 
79         print error code in case no string message is available.
80
81 2007-04-06 Simon McVittie <simon.mcvittie@collabora.co.uk>
82
83         * dbus/dbus-message-util.c, dbus/dbus-message.c,
84         dbus/dbus-message.h: Add API to convert a DBusMessage to/from a
85         byte array. Patch from Dafydd Harries <dafydd.harries@collabora.co.uk>,
86         approved by Havoc Pennington.
87
88 2007-04-03  Timo Hoenig  <thoenig@suse.de>
89
90         * dbus/dbus-address.c (dbus_parse_address): Do not accept zero-
91           length address.
92         * dbus/dbus-address.c (_dbus_address_test): Add test for zero-
93           length address.
94
95 2007-03-25 Ralf.Habacker  <ralf.habacker@freenet.de>
96
97         * cmake/dbus/CMakeLists.txt: debug postfix also for mingw.
98
99 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
100
101         * cmake/modules/FindExpat.cmake: fix package detection on win32.
102
103         * README.win: update install instructions. 
104
105 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
106
107         * dbus/dbus-sysdeps.h (_dbus_split_paths_and_append):
108         new prototyp
109         (_DBUS_PATH_SEPARATOR): new macro. 
110
111         * dbus/dbus-sysdeps.c (_dbus_split_paths_and_append): merged 
112         from dbus/dbus-sysdeps-unix.c and dbus/dbus-sysdeps-win.c. 
113
114 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
115
116         * bus/config-parser.c, bus/policy.c,  
117         bus/policy.h, bus/dbus-daemon.1.in,
118         bus/session.conf.in: added eavesdrop support 
119         for replies - patch by olli.salli at collabora.co.uk
120         approved by Havoc Pennington. 
121
122 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
123
124         * dbus\dbus-sysdeps-win-thread.c: renamed to 
125         dbus-sysdeps-thread-win.c, it is a platform depending file 
126         similar to dbus-sysdeps-pthread.c.
127
128 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
129
130         * cmake\doc\CMakeLists.txt: added prelimary xml doc 
131         support, needs cmake Find script.
132
133 2007-03-14 Ralf.Habacker  <ralf.habacker@freenet.de>
134
135         * cmake: add doxygen support
136
137 2007-03-14  Ralf.Habacker  <ralf.habacker@freenet.de>
138
139         * cmake/config.h.cmake: WINCE fixes, defined DBUS_UNIX.
140
141 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
142
143         * dbus/dbus-sysdeps-util-win.c (dbus_become_daemon): 
144         win32 compile fix. 
145
146 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
147
148         * dbus-win.patch: removed obsolate patches. 
149
150 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
151
152         * dbus/dbus-sysdeps-win.c: added zero byte sending 
153         and receiving after connection start up
154
155 2007-03-11  Havoc Pennington  <hp@redhat.com>
156
157         * tools/dbus-launch.c (do_close_stderr): fix C89 problem and
158         formatting problem
159
160         * Mostly fix the DBusPipe mess.
161         - put line break after function return types
162         - put space before parens
163         - do not pass structs around by value
164         - don't use dbus_strerror after calling supposedly cross-platform
165         api
166         - don't name pipe variables "fd"
167         - abstract special fd numbers like -1 and 1
168
169 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
170
171         * dbus/dbus-sysdeps-win.h, dbus/dbus-sysdeps-win.c, 
172         dbus/dbus-sysdeps-util-win.c: renamed functions 
173         _dbus_xxx_file() to _dbus_file_xxx() to reflect 
174         struct name DBusFile. 
175
176 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
177
178         * dbus/dbus-sysdeps-util-unix.c (_dbus_become_daemon):
179         fix _dbus_pid_fd check. 
180
181 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
182
183         * tools/dbus-print-message.c (print_message):
184         added printing of the reply serial to method returns and 
185         errors, so you can actually figure out the message/reply 
186         pairs - patch by olli.salli at collabora.co.uk.
187
188 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
189
190         * dbus-win.patch: removed committed patches. 
191
192 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
193
194         * bus/bus.c, bus/bus.h, bus/main.c, bus/test.c,
195         dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-util-unix.c,
196         dbus/dbus-sysdeps-util-win.c, dbus/dbus-sysdeps-win.c,
197         dbus/dbus-sysdeps.h: renamed _dbus_xxx_pipe to _dbus_pipe_xxx,
198         completed _dbus_pipe support. 
199
200 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
201
202         * dbus/dbus-sysdeps.h (_dbus_listen_tcp_socket):
203         changed type or port to pointer, because the port is given back.
204
205         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
206         implemented returning tcp port. Skipping port parameter
207         and non integer port values in config <listen> statement
208         needs more effort.
209
210         * dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-win.c
211         (_dbus_listen_tcp_socket): return the real used tcp port.
212
213         * bus/dbus-daemon.1.in: added <listen> tcp examples
214
215 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
216
217         * cmake/config.h.cmake: win32 msvc bug fix
218
219 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
220
221         * cmake/config.h.cmake: fixed DBUS_WINxx defines,
222         using _WINCE does not work.
223
224 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
225
226         * dbus-win.patch: removed _dbus_write_pipe() patch, it is now 
227         committed.
228
229 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
230
231         * bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h:
232         rename pipe related write() function calls to _dbus_write_pipe().
233
234 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
235
236         * dbus-win.patch: added bus/config-loader-libexpat.c patch, 
237         uses DBUS_WIN for alls win32 related #ifdefs, 
238         some minor cleanups
239
240 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
241
242         * dbus-win.patch: updated patch for bus/dispatch.c.
243
244 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
245
246         * dbus-win.patch: dbus-connection.c (dbus_connection_get_unix_user,
247         dbus_connection_get_unix_process_id): Let return them valid user id's, 
248         otherwise bus-test fails. How to replace on win32 ?.
249         
250         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir):
251         fix memory leak.
252
253 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
254
255         * dbus/dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error):
256         use dbus friendly error name.
257         (fill_win_user_info_homedir): print user name in error case too.
258
259 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
260
261         * cmake/ConfigureChecks.cmake: fixed socketpair check
262
263 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
264
265         * bus/dispatch.c: disabled segfault test on win32 for now
266
267 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
268
269         * configure.in, cmake/ConfigureChecks.cmake: added check 
270         for setrlimit. 
271         * test/test-segfault.c: only include setrlimit stuff only 
272         when available.  
273
274 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
275
276         * test/test-segfault.c: unix compile fix.
277         * dbus-win.patch: removed obsolate patches.
278
279 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
280
281         * bus/activation.c: removed obsolate include header.
282         * test/test-segfault.c: win32 compile fix, rlimit 
283         isn't available on win32.
284         * dbus-win.patch: removed some more patches, they
285         are applied or obsolate 
286
287 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
288
289         * bus-win.patch: fixes unix listen problems, dbus-test 
290         now runs.
291
292 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
293
294         * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
295         cmake/CMakeLists.txt: win32 compile fix
296
297 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
298
299         * dbus-win.patch, README.win: added available win32 
300         patches from windbus project (http://sf.net/projects/windbus)
301
302 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
303
304         * bus/activation.c: (bus_activation_activate_service):
305         fixed call to _dbus_spawn_async_with_babysitter().
306
307 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
308
309         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
310         added environment pointer as function parameter, used on win32.
311
312         * test/spawn-test.c: fixed call to above mentioned function.
313
314 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
315
316         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
317         added configure check for unistd.h.
318
319 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
320
321         * test/Makefile.am: fixed test data copy problem in 
322         out of source build, when sources came from svn or cvs. 
323
324 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
325
326         * dbus/*-win.*,bus/*-win.*: added win32 platform related
327         files. These files are only added to the cmake build system.  
328         The missing dbus-win.patch file will be added later. 
329
330 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
331
332         * cmake: new directory, contains cmake build support.
333         See http://www.cmake.org for more informations.
334         Currently only unix will be buildable because some 
335         win32 required files are still missing. 
336
337 2007-03-03  Thiago Macieira  <thiago@kde.org>
338
339         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
340         output and add it to the DBusError message we return.
341
342         * tools/dbus-launch.1:
343         * tools/dbus-launch.c: Add option --close-stderr to, well,
344         close stderr before starting dbus-daemon.
345
346 2007-01-31  Havoc Pennington  <hp@redhat.com>
347
348         * bus/dbus-daemon.1.in: write a section in the man page on running
349         a test daemon for debugging purposes
350
351 2007-01-26  Havoc Pennington  <hp@redhat.com>
352
353         * bus/session.conf.in: override all the default limits with much
354         higher limits on the session bus, there is no reason the session
355         bus should have low limits
356
357         * bus/config-parser.c (bus_config_parser_new): increase default
358         limits so they are less likely to be hit; in particular the max
359         replies per connection was way too low
360
361 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
362
363         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
364         a pointer to the tutorial maintained as part of dbus-python
365
366 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
367
368         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
369         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
370         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
371
372 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
373
374         * tools/dbus-monitor.c: gettimeofday() is not available 
375         on windows so we have to provide our own. It's taken from 
376         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
377
378 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
379
380         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
381         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
382         is in dbus-sysdeps-win.c (not in this patch).
383
384         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
385         with InterlockedInc/Decrement. 
386         - Patches from Christian Ehrlicher
387         
388 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
389
390         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
391
392 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
393
394         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
395         fix mispaced const statement. - Patch from Peter Kümmel
396
397 2006-12-19  Ray Strode  <rstrode@redhat.com>
398
399         * bus/bus.c (process_config_every_time):
400         don't overwrite existing bus context activation object
401         until after we've checked that the new activation is
402         valid.
403
404         * bus/main.c 
405         (signal_handler), (handle_reload_watch):
406         don't call exit() on failure, instead make do and keep
407         going.
408         (close_reload_pipe): new function to turn off
409         hangup-causes-config-reload behavior if an unexpected
410         error occurs
411
412 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
413
414         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
415         correctness fix. - Patch from Christian Ehrlicher
416
417 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
418
419         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
420         we should also use it. - Patch from Christian Ehrlicher
421
422 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
423   
424         * dbus-sysdeps-util.c: added win32 related tests
425
426 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
427
428         * dbus/dbus-string.c (_dbus_string_pop_line),
429         bus/desktop-file.c (parse_section_start,
430         parse_comment_or_blank,parse_key_value,): uses
431         _dbus_string_find_eol() to support platform independent eol style.
432
433 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
434
435         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
436         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
437               _dbus_string_find_eol().
438         Approved by: Havoc Pennington.
439
440 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
441
442         * configure.in: Added switch to disable user_database caching.
443
444         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
445         be able disable user_dabase caching.
446
447 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
448
449         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
450         struct. It is unnecessary we have a global one already. Also remove 
451         bus_context_get_user_database function, it is no longer needed.
452         Flush the global database on reload.
453
454         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
455         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
456
457         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
458         Add _dbus_user_database_flush_system. 
459         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
460         Small unrelated change in _dbus_is_a_number: change 
461         _dbus_string_parse_int to _dbus_string_parse_uint. 
462
463         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
464         _dbus_groups_from_uid.
465
466         * bus/policy.c, bus/policy.h: Change call to 
467         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
468         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
469         needs it.
470
471 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
472
473         * bus/signal.c: Fix match_rule_equal errata
474         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
475         <kimmo.hamalainen@nokia.com>)
476
477 2006-11-19  Thiago Macieira  <thiago@kde.org>
478
479         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
480         _dbus_pthread_condvar_wait,
481         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
482         pthread_self() after coming back from a conditional variable
483         wait as well as in one codepath where it was forgotten.
484         Approved by: Havoc Pennington.
485
486 2006-11-17  Havoc Pennington  <hp@redhat.com>
487
488         * update-dbus-docs.sh: allow setting fd.org username via env
489         variable. Make it run autogen with --enable-xml-docs=yes
490         --enable-doxygen-docs=yes so configure will fail if the required
491         tools are missing.
492
493 2006-11-17  Havoc Pennington  <hp@redhat.com>
494
495         * doc/dbus-faq.xml: minor FAQ tweaks
496
497 2006-11-14  Havoc Pennington  <hp@redhat.com>
498         
499         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
500         dbus_get_local_machine_id() to its own file, no substantive
501         changes. There are a couple other things we might want to add that
502         are "misc" so moving out of dbus-connection.[hc] which is big
503         enough already.
504         
505 2006-11-14  Havoc Pennington  <hp@redhat.com>
506
507         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
508         UUID had the timestamp last, but the implementation had it first;
509         move it to last since I think it's a tiny bit nicer (easier to
510         compare at a glance, faster to sort, less code), and will not
511         cause any practical compatibility problems. Also, always convert
512         the timestamp to big endian.
513
514         * doc/dbus-specification.xml: Clean up the docs on the UUID.
515
516         * tools/dbus-uuidgen.1: more prominently say it is not suitable
517         as a replacement for regular uuidgen/RFC4122.
518
519 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
520
521         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
522         the correct value so we don't assert when initalizing recursive threads
523
524         * test/name-test/test-thread-init.c: call dbus_threads_init_default
525         instead of _dbus_threads_init_debug since it is more of a real world
526         test
527
528 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
529
530         * Released 1.0.0
531
532 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
533
534         * AUTHORS: added Peter and Tor of windows porting fame
535
536 2006-11-08  Havoc Pennington  <hp@redhat.com>
537
538         * doc/dbus-specification.xml: add a note about protocol stability
539
540         * doc/TODO: Remove "important for 1.0" section, replace with
541         "important for 1.2" section
542         
543 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
544
545         * README: remove some of the out of date flags
546
547         * doc/TODO: Remove todo items which are done
548
549 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
550
551         * tools/dbus-monitor.c: Handle sigint so we flush stdout
552         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
553
554 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
555
556         * tools/dbus-monitor.1: update the manpage for dbus-monitor
557         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
558
559 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
560
561         * AUTHORS: Update with all people listed in the ChangeLog
562
563 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
564
565         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
566         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
567
568 2006-11-07  Havoc Pennington  <hp@redhat.com>
569
570         * HACKING: Update release instructions to include stuff about
571         stable releases, branching, etc. May not be totally correct,
572         please fix if needed, but keep instructions up-to-date so we do
573         each stable release consistently in the future.
574
575 2006-11-07  Havoc Pennington  <hp@redhat.com>
576
577         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
578         documentation updates. Bump faq/spec versions (not to 1.0; I don't
579         think the spec will be "finished"/1.0 when we ship the 1.0 library).
580
581 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
582
583         * bus/bus.c: Missed patch - pass in the context to the directory watch
584
585 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
586
587         * Released D-Bus 1.0 RC 3(0.95)
588
589 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
590
591         * bus/activation.c (bus_activation_new): don't fail if we can not read
592         the directory as it may not exist
593
594 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
595
596         * bus/config-parser.c (service_dirs_find_dir): use 
597         _dbus_list_get_next_link so we don't get stuck in an infinite loop
598         (start_busconfig_child): move processing of standard_session_servicedirs
599         tags here because they have no content
600         (bus_config_parser_content): check we don't have content in 
601         standard_session_servicedirs tag
602
603 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
604
605         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
606         Packagers need to own this directory
607
608 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
609
610         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
611         <standard_session_servicedirs> tag with a <sevicedir> tag that
612         points to the test service directory
613
614 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
615
616         * configure.in: Add a check for DIR *dirp->dd_fd
617
618         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
619         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
620         of both Solaris and Irix
621
622 2006-11-01  Havoc Pennington  <hp@redhat.com>
623
624         * bus/dbus-daemon.1.in: document standard_session_servicedirs
625
626 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
627
628         * configure.in: expose DBUS_DATADIR
629         
630         * bus/config-parser.c: add the standard_session_servicedirs element
631         to the parser
632         (bus_config_parser_content): process the standard_session_servicedirs
633         element by getting the standard directories from sysdeps and merging
634         them into the service directory list
635         (test_default_session_servicedirs): make sure we get what we expect
636
637         * bus/session.conf.in: replace the servicedir tag with the 
638         standard_session_servicedirs tag
639
640         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
641         dbus-sysdeps.h to avoid circular header dependencies
642
643         * dbus/dbus-sysdeps.h: add the typedef of DBusList
644
645         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
646         which takes a string of directories delimited by colons, parses them 
647         out, appends a suffix and puts them in a list ignoring empty elements
648         (_dbus_get_standard_session_servicedirs): returns the standard 
649         directories for a session bus to look for service activation files
650         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
651         DBUS_DATADIR directories
652
653         * test/data/valid-config-files/many-rules.conf: add the 
654         standard_session_servicedirs tag to the valid config file tests
655
656 2006-10-30  Havoc Pennington  <hp@redhat.com>
657
658         * tools/dbus-launch.1, doc/TODO: capture intent to change the
659         command line options of dbus-launch a bit post 1.0
660
661 2006-10-27  Havoc Pennington  <hp@redhat.com>
662         
663         * dbus/dbus-connection.c (dbus_connection_open_private): document
664         how to choose shared vs. private connections
665
666 2006-10-27  Havoc Pennington  <hp@redhat.com>
667
668         * dbus/dbus-test.c: enclose more of the file in the
669         DBUS_BUILD_TESTS check.
670
671         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
672         DBUS_DISABLE_ASSERT case.
673
674         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
675         that it only works on the server side
676
677         * dbus/dbus-bus.c: add a global lock covering the BusData we
678         attach to each connection
679         (internal_bus_get): lock our access to the BusData
680         (dbus_bus_register): lock the entire registration process
681         with _DBUS_LOCK(bus_datas). If we get the lock and 
682         registration is already complete, silently return (vs. previous
683         behavior of aborting).
684         (dbus_bus_set_unique_name): lock the BusData
685         (dbus_bus_get_unique_name): lock the BusData
686
687 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
688
689         * bus/config-parser.c (service_dirs_find_dir, 
690         service_dirs_append_unique_or_free, 
691         service_dirs_append_link_unique_or_free): New static methods
692         for only appending unique service directory names into
693         the service directory list
694         (merge_included, bus_config_parser_content): Only add unique
695         service directory names into the list
696
697 2006-10-27  Havoc Pennington  <hp@redhat.com>
698
699         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
700         variables volatile, suggested by Thiago. Document struct fields.
701         (PTHREAD_CHECK): remove pthread error checking if assertions are
702         disabled, should reduce the no-assertions case to the bare
703         minimum code.
704
705 2006-10-26  Havoc Pennington  <hp@redhat.com>
706         
707         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
708         to be recursive
709         (_dbus_pthread_mutex_unlock): make it recursive
710         (_dbus_pthread_condvar_wait): save/restore the recursion count
711         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
712
713 2006-10-26  Havoc Pennington  <hp@redhat.com>
714
715         * doc/dbus-specification.xml: clarify the UUID text slightly
716
717         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
718         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
719         in preparation for being able to extend them for e.g. recursive
720         mutexes.
721
722 2006-10-26  Havoc Pennington  <hp@redhat.com>
723
724         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
725         condition variables relate to recursive mutexes.
726         
727         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
728         dbus/dbus-threads.c: Split the platforms-specific thread 
729         implementations into their own files.
730         
731         * dbus/dbus-sysdeps-pthread.c
732         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
733         was backward. Not that anything uses it.
734
735 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
736
737         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
738         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
739         needs to be cleaned up more.
740
741         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
742         up the CREDS issue.
743
744 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
745
746         * configure.in, dbus-1.pc.in: Check to see if thread methods 
747         are in glibc or libpthread and add -lpthread to the link stage 
748         if it is the latter
749
750 2006-10-26  Thiago Macieira  <thiago@kde.org>
751
752         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
753         bug 8780: the connection lock is only required while recording
754         the shared connection, so protect only that code
755         section. Don't require connection_lookup_shared to return a
756         locked connection.
757
758 2006-10-26  Thiago Macieira  <thiago@kde.org>
759
760         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
761         check if get_machine_uuid() returns NULL before proceeding any
762         further: we can't init the X atoms or create a session file
763         name if there is no machine ID.
764         This solves a crash reported by some users if
765         --exit-with-session was used without --autolaunch=<machine-id>
766
767 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
768
769         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
770         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
771
772         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
773         before we run dbus-launch
774
775         * configure.in: define TEST_BUS_BINARY to be the full path to 
776         dbus-daemon in the build root 
777
778 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
779
780         * dbus/Makefile.am:
781         * tools/Makefile.am:
782         * toos/dbus-uuidgen.1:
783                 Move the machine-id file to /var/lib/dbus 
784
785 2006-10-24  David Zeuthen  <davidz@redhat.com>
786
787         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
788         _dbus_assert (thread_init_generation != _dbus_current_generation)
789         not _dbus_assert (thread_init_generation == _dbus_current_generation)
790
791 2006-10-24  Thiago Macieira  <thiago@kde.org>
792
793         * dbus/dbus-sysdeps.h:
794         * dbus/dbus-sysdeps-unix.c: Add function
795         _dbus_make_file_world_readable that chmods a file to 0644.
796
797         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
798         Avoid writing to the static "argv" array, thereby avoiding a
799         COW on the child process.
800
801         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
802         call _dbus_make_file_world_readable on the created file.
803
804 2006-10-23  David Zeuthen  <davidz@redhat.com>
805
806         * dbus/dbus-memory.c: Use atomic variable to protect
807         n_blocks_outstanding otherwise OOM will be reported using SMP on
808         some arches
809         
810         * bus/dispatch.c: Add missing end of line characters
811
812         * bus/desktop-file.c (parse_section_start, parse_key_value) 
813         (bus_desktop_file_load): Propertly handle OOM
814
815         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
816         thread_init_generation equals _dbus_current_generation, not 0
817
818 2006-10-22  Havoc Pennington  <hp@redhat.com>
819
820         * dbus/dbus-connection-internal.h: move prototype of
821         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
822         it isn't in a public header and doesn't end up in the DBusBus
823         group in Doxygen
824
825 2006-10-21  Havoc Pennington  <hp@redhat.com>
826
827         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
828         the tarball if packagers want to run it
829
830         * cleanup-man-pages.sh: Add a script which munges all the internal
831         API man pages out of the Doxygen output. This reduces the size of
832         the installed man pages from 7 to 2 megs, and avoids
833         namespace-polluting pages. Right now (like Doxygen) this script
834         isn't in the build, it's something packagers can do manually.
835
836 2006-10-21  Havoc Pennington  <hp@redhat.com>
837
838         * dbus/dbus-connection.h: don't include the watch/timeout
839         functions in connection section
840
841 2006-10-21  Havoc Pennington  <hp@redhat.com>
842
843         * Documentation! Whee! Doxygen now 100% silent. If you make it
844         angry again, you will be punished.
845         
846 2006-10-21  Havoc Pennington  <hp@redhat.com>
847
848         * More documentation - all public API now documented according to
849         Doxygen
850
851 2006-10-21  Havoc Pennington  <hp@redhat.com>
852
853         * Document a bunch of undocumented stuff
854         
855 2006-10-21  Havoc Pennington  <hp@redhat.com>
856
857         * Clean up Doxygen group markers for public API so Doxygen finds
858         everything (not comprehensively fixed for private API).
859         Means all remaining Doxygen warnings are just about missing docs
860         and thus pretty simple to resolve.
861         
862 2006-10-21  Havoc Pennington  <hp@redhat.com>
863         
864         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
865
866         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
867         as DBUS_GNUC_DEPRECATED
868
869 2006-10-21  Havoc Pennington  <hp@redhat.com>
870
871         * Move all private API into the private Doxygen group sections of
872         the files, so they don't show up in the public API docs
873         
874 2006-10-21  Havoc Pennington  <hp@redhat.com>
875
876         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
877         dbus_message_iter_get_array_len().
878
879         * throughout: documentation improvements.
880
881 2006-10-20  Havoc Pennington  <hp@redhat.com>
882
883         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
884         matter, and the message-loader-breaker thing since nobody is going
885         to do it.  Add an item to 1.0 about supporting recursive locks
886         in dbus_threads_init_default() though, since it should be easy.
887
888         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
889         Fix this in the !dispatch case to avoid busy-looping after
890         disconnection
891
892         * More misc docs improvements
893
894 2006-10-19  Havoc Pennington  <hp@redhat.com>
895
896         * more Doxygen-related fixes (lots of moving things from the
897         public to internal section in dbus-connection.c)
898
899 2006-10-19  Havoc Pennington  <hp@redhat.com>
900
901         * Fix a pile of Doxygen warnings and missing docs
902
903 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
904
905         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
906         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
907         instead of a void *.  kqueue uses this to get the context's loop
908         while the other modules ignore the parameter.  This allows us to
909         avoid platform conditionals
910
911         * bus/bus.c (process_config_postinit): Pass in the context to the 
912         watch
913
914 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
915
916         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
917         when starting the system bus
918
919 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
920
921         * configure.in: More fixups for cross compile (Patch from 
922         Marco Pracucci <development at pracucci dot com>)
923
924 2006-10-17  Havoc Pennington  <hp@redhat.com>
925
926         * tools/dbus-send.c (main): don't close shared connection, fix
927         from Timo Hoenig
928
929 2006-10-17  Havoc Pennington  <hp@redhat.com>
930
931         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
932
933         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
934         since realistically it doesn't look like we'll be changing it
935         anymore.
936
937 2006-10-17  Havoc Pennington  <hp@redhat.com>
938
939         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
940         be used for return_if_fail type warnings; prefixes the pid, and
941         fatal by default.
942
943 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
944
945         * configure.in: Released 1.0 RC 2(0.94)
946         Add check for -fPIC and enable it if available
947
948 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
949
950         * doc/TODO: Remove the check TODO item
951
952 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
953
954         * dbus-transport-socket.c (exchange_credentials):
955         Print out more detailed errors if reading or sending
956         credentials fail (Patch from Julio M. Merino Vidal 
957         <jmmv at NetBSD dot org>)
958
959 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
960
961         * configure.in: when checking for posix getpwnam_r assume true
962         for cross compiles
963
964 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
965
966         * configure.in: Check for gethostbyname first before we check for it
967         in libnsl.  On gnu systems it is implemeneted 
968
969 2006-10-13  Havoc Pennington  <hp@redhat.com>
970
971         * dbus/dbus-connection.c
972         (dbus_connection_send_with_reply_and_block): fix to handle closed
973         connections, from Tambet Ingo bug #8631
974
975 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
976
977         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
978
979 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
980
981         * test/name-test/Makefile.am: don't link against both libdbus and
982         libdbus-convenience
983
984 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
985
986         * configure.in: check for dirfd even if it is a macro
987         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
988
989 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
990
991         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
992         avoid using dirfd on systems that don't have dirfd 
993         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
994
995 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
996
997         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
998         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
999
1000         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
1001         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
1002         macro because _dbus_abort calls it
1003
1004         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
1005         works
1006
1007 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
1008
1009         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
1010         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
1011
1012 2006-10-02  Thiago Macieira  <thiago@kde.org>
1013
1014         * tools/dbus-launch.c (main): make it complain and abort
1015         execution in case an unknown option is given. Also, process
1016         the '--' argument as the end of arguments.
1017
1018 2006-10-01  Havoc Pennington  <hp@redhat.com>
1019
1020         * tools/dbus-launch.c (print_variables): if no syntax is given,
1021         don't print something that's sort-of-half-sh-syntax, just print
1022         a plain key-value pairs thing.
1023
1024         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
1025         the local machine representation (but still have the hostname in
1026         the display). Remove the hostname from the display if it is
1027         localhost. Change session files to be named
1028         ~/.dbus/session-bus/machine-display. Change X atoms to be
1029         underscore-prefixed so nobody whines about ICCCM compliance.
1030         Otherwise name them the same as the env variables.
1031         Change session file format to include key-value pairs and an
1032         explanatory comment. Keys are the same as the env variables.
1033         (set_address_in_x11): X property format can't depend on
1034         sizeof(pid_t) on a particular machine, fix to always be 32 bits
1035
1036         * tools/dbus-launch.c: make --autolaunch take a machine id
1037         argument. If --autolaunch is used with a program to run, complain
1038         for now (but add a FIXME). Also, don't look for existing bus if 
1039         there's a program to run (but add a FIXME).
1040
1041         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
1042         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
1043         just to get this, and avoids duplicating uuid-reading code).
1044
1045         * tools/dbus-launch.1: clarify various things
1046         
1047 2006-10-01  Havoc Pennington  <hp@redhat.com>
1048
1049         * test/test-service.c (path_message_func): remove broken extra
1050         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
1051
1052         * test/test-shell-service.c (path_message_func): same fix
1053         
1054         * dbus/dbus-connection.c
1055         (_dbus_connection_get_dispatch_status_unlocked): break up the
1056         function a little for clarity and fix the notification of
1057         dbus-bus.c to not require dispatch to be complete
1058
1059         * dbus/dbus-connection.c (dbus_connection_unref): improve the
1060         warning when you try to finalize an open connection.
1061         
1062 2006-10-01  Havoc Pennington  <hp@redhat.com>
1063
1064         * dbus/dbus-bus.c
1065         (internal_bus_get): only weak ref the connection; this means 
1066         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
1067         called safely in any context
1068         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
1069         unref
1070
1071         * dbus/dbus-connection.c
1072         (_dbus_connection_get_dispatch_status_unlocked): move
1073         _dbus_bus_notify_shared_connection_disconnected_unlocked here
1074         when queuing Disconnected instead of when the Disconnected message
1075         arrives, so dbus_bus_get() won't return closed connections.
1076         
1077 2006-10-01  Havoc Pennington  <hp@redhat.com>
1078
1079         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
1080         Add a hack to make DBusNewConnectionFunction work right.
1081
1082         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
1083         the hack here. Also, fix the todo about refcount leak.
1084         
1085         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1086         and use the hack here
1087         
1088         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
1089         "shareable" flag; this was completely broken, since it meant 
1090         dbus_connection_open() returned a connection of unknown
1091         shared-ness. Now, we always hold a ref on anything opened 
1092         as shareable.
1093
1094         Move the call to notify dbus-bus.c into
1095         connection_forget_shared_unlocked, so libdbus consistently forgets
1096         all its knowledge of a connection at once. This exposed numerous
1097         places where things were totally broken if we dropped a ref inside
1098         get_dispatch_status_unlocked where
1099         connection_forget_shared_unlocked was previously, so move
1100         connection_forget_shared_unlocked into
1101         _dbus_connection_update_dispatch_status_and_unlock. Also move the
1102         exit_on_disconnect here.
1103
1104         (shared_connections_shutdown): this assumed weak refs to the
1105         shared connections; since we have strong refs now, the assertion 
1106         was failing and stuff was left in the hash. Fix it to close
1107         still-open shared connections.
1108         
1109         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
1110         debug pipe connections
1111         
1112         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
1113         dbus-bus.c if the closed connection is in fact shared
1114         (_dbus_connection_close_possibly_shared): rename from 
1115         _dbus_connection_close_internal
1116         (dbus_connection_close, dbus_connection_open,
1117         dbus_connection_open_private): Improve docs to explain the deal
1118         with when you should close or unref or both
1119
1120         * dbus/dbus-bus.c
1121         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
1122         from _dbus_bus_check_connection_and_unref_unlocked and modify to
1123         loop over all connections
1124
1125         * test/test-utils.c (test_connection_shutdown): don't try to close
1126         shared connections.
1127
1128         * test/name-test/test-threads-init.c (main): fix warnings in here
1129
1130         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
1131         env variable to cause blocking waiting for gdb; drop
1132         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
1133         unconditionally.
1134
1135         * configure.in: add -export-dynamic to libtool flags if assertions enabled
1136         so _dbus_print_backtrace works.
1137
1138         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
1139         instead of _dbus_verbose to print the backtrace, and diagnose lack 
1140         of -rdynamic/-export-dynamic
1141         
1142 2006-09-30  Havoc Pennington  <hp@redhat.com>
1143
1144         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
1145         (internal_bus_get): fix screwy code formatting. whoever committed
1146         that was not paying attention!
1147
1148 2006-09-30  Havoc Pennington  <hp@redhat.com>
1149
1150         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
1151         reflect addition of interfaces.
1152
1153         * doc/dbus-specification.xml: describe a new
1154         org.freedesktop.DBus.Peer.GetMachineId method
1155
1156         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
1157         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
1158         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
1159         at end of skip_white
1160         (_dbus_string_chop_white): new function
1161
1162         * bus/connection.c (bus_connections_setup_connection): call
1163         dbus_connection_set_route_peer_messages.
1164
1165         * dbus/dbus-connection.c
1166         (_dbus_connection_peer_filter_unlocked_no_update): modify to
1167         support a GetMachineId method.
1168
1169         Also, support a new flag to let the bus pass peer methods through
1170         to apps on the bus, which can be set with
1171         dbus_connection_set_route_peer_messages.
1172
1173         Finally, handle and return an error for anything unknown on the
1174         Peer interface, which will allow us to extend the Peer interface
1175         in the future without fear that we're now intercepting something
1176         apps were wanting to see.
1177         
1178         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
1179         dbus/dbus-uuidgen.c
1180
1181         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
1182         binary here, since most of the code is already in libdbus
1183
1184         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
1185         uuid from the system config file
1186
1187         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
1188         (_dbus_read_uuid_file_without_creating) 
1189         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
1190         uuid-related functions, partly factored out from dbus-server.c
1191
1192         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
1193         DBUS_ERROR_FILE_EXISTS instead of EEXIST
1194
1195         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
1196
1197         * tools/dbus-cleanup-sockets.1: explain what the point of this
1198         thing is a bit more
1199
1200         * autogen.sh (run_configure): add --config-cache to default
1201         configure args
1202
1203         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
1204         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
1205
1206         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
1207         don't try to save address, fixes crash in make check
1208         
1209 2006-09-30  Thiago Macieira  <thiago@kde.org>
1210
1211         * configure.in: add DBUS_BINDIR as a #define to C source code.
1212
1213         * tools/dbus-launch.c
1214         * tools/dbus-launch.h
1215         * tools/dbus-launch-x11.c:
1216         * tools/dbus-launch.1: Add the --autolaunch option to
1217         dbus-launch, which makes it scan for an existing session
1218         started with --autolaunch. With that option, it also creates
1219         an X11 window and saves the bus address and PID to it.
1220
1221         * dbus/dbus-sysdeps.h:
1222         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
1223         a function that runs "dbus-launch --autolaunch" to retrieve
1224         the running D-Bus session address (or start one if none was running)
1225
1226         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
1227         address protocol, which tries to get the running session from
1228         dbus-launch.
1229
1230         * dbus/dbus-bus.c:
1231         * dbus/dbus-internals.h: Make "autolaunch:" be the default
1232         D-Bus session bus address.
1233
1234         * dbus/dbus-connection.c: Fix horrible typo in error message.
1235
1236 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
1237
1238         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
1239
1240 2006-09-17  Havoc Pennington  <hp@redhat.com>
1241
1242         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1243         fix so that if unix_user_function is set on windows, we still
1244         do the default check that the auth identity matches the bus identity
1245
1246 2006-09-16  Havoc Pennington  <hp@redhat.com>
1247
1248         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
1249         to _dbus_transport_open_platform_specific,
1250         _dbus_transport_open_socket,
1251         and _dbus_transport_open_debug_pipe
1252
1253         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
1254
1255 2006-09-16  Havoc Pennington  <hp@redhat.com>
1256
1257         Attempt auditing public API to remove all cases where a Unix
1258         function returns weird emulated goo to Windows. This probably 
1259         breaks the bus daemon on Windows, to fix it again we may 
1260         need to stop processing unix-specific config options on Windows,
1261         and may need to add Windows-specific public API or config options.
1262         
1263         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
1264         to reflect added interfaces; should not break soname.
1265         
1266         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
1267         not invoke unix user function on Windows. Kind of a hacky fix, but 
1268         we don't want a "unix uid" leaking out on Windows.
1269
1270         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
1271         to get the socket fd on Windows or UNIX
1272         (dbus_connection_get_unix_fd): make this always fail on Windows
1273
1274 2006-09-16  Havoc Pennington  <hp@redhat.com>
1275
1276         * dbus/dbus-server.c (dbus_server_listen): change how this works
1277         to be able to delegate to a set of handlers that can succeed,
1278         fail, or choose not to handle. Allows us to have 
1279         dbus_server_listen_platform_specific.
1280
1281         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
1282         factor out the tcp socket stuff to be used on windows, leaving
1283         unix domain socket only in dbus-socket-unix.c
1284
1285         * dbus/dbus-transport-socket.c
1286         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
1287         stuff to be used on windows, leaving unix domain socket only 
1288         in dbus-transport-unix.c
1289
1290         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
1291         temporary hack to be sure this fails on windows
1292         (dbus_connection_get_unix_process_id): ditto
1293
1294 2006-09-16  Havoc Pennington  <hp@redhat.com>
1295
1296         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1297         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1298         _dbus_open_socket so the domain/type/protocol from system headers
1299         are not required. This is kind of pointless though unless we move
1300         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1301         sysdeps-unix.c, which would mean adding a wrapper around
1302         bind/listen/etc.
1303         Also, add DBusError to the socket-opening functions so they 
1304         don't require use of errno.
1305
1306 2006-09-16  Havoc Pennington  <hp@redhat.com>
1307
1308         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1309         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1310
1311         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1312         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1313         functions specifically for sockets only, and move generic 
1314         read/write/open/close into unix-specific code.
1315
1316 2006-09-14  Havoc Pennington  <hp@redhat.com>
1317
1318         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1319         complaint about accessing revents when poll returns 0, from Julian Seward.
1320
1321 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1322
1323         * Released 1.0 RC 1 (0.93) 
1324
1325 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1326
1327         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1328         use _dbus_close instead of close
1329
1330 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1331
1332         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1333         credentials.  Fixes "external" authentication under e.g. NetBSD
1334         which does not support any other socket credentials mechanism.
1335         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1336
1337 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1338
1339         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1340         dbus_threads_init and be used by the dbus mutex functions to
1341         avoid deadlocks.
1342
1343         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1344
1345 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1346
1347         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1348         use threadsafe readdir_r instead of readdir
1349
1350 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1351
1352         * dbus-threads.c (dbus_threads_init_default): New method for
1353         initializing the internal thread implementation (Patch from
1354         Alexander Larsson <alexl at redhat dot com>)
1355
1356 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1357
1358         * remove a bunch of todo items from the 1.0 list
1359
1360 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1361
1362         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1363         key not found
1364
1365 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1366
1367         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1368         complex debugging code
1369
1370         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1371         between the test suite ifdefs
1372         (_dbus_verbose_bytes): return if verbosity is not enabled 
1373
1374 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1375
1376         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1377         remove DBusMark
1378
1379 2006-09-10  Havoc Pennington  <hp@redhat.com>
1380
1381        patch mostly by Peter Kümmel, bug #8211
1382         
1383         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1384         unix-specific stuff in dbus-sysdeps.c
1385
1386         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1387         and move unix-specific stuff to dbus-sysdeps-unix.c
1388
1389         * configure.in: check HAVE_ERRNO_H
1390         
1391 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1392
1393         * bus/test-main.c (main): Initialize threading during tests
1394
1395         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1396         Unlock connection on error
1397         (generate_local_error_message): static method for generating
1398         an error message when we don't have a message to reply to
1399         (_dbus_connection_block_pending_call): Send a disconnect error
1400         instead of just a timeout (NULL) when the bus gets disconnected
1401         while blocking for a reply.
1402         
1403 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1404
1405         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1406         filters (Patch from Kimmo Hämäläinen 
1407         <kimmo dot hamalainen at nokia dot com>)
1408
1409 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1410
1411         * dbus/dbus-connection-internal.h: Add prototype for 
1412         _dbus_connection_test_get_locks to remove warning
1413
1414 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1415
1416         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1417         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1418         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1419
1420 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1421
1422         * Clean up close calls to use _dbus_close (Patch from 
1423         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1424
1425 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1426
1427         * doc/TODO:
1428         - Remove pending call locking todo item
1429         - dbus_connection_open now holds hard ref.  Remove todo item
1430         - do proper locking on _dbus_bus_check_connection_and_unref
1431           and handle DBUS_BUS_STARTER. Remove todo item
1432         - Warn on closing of a shared connection.  Remove todo item
1433
1434         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1435         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1436         so we don't get the warning when closing shared connections
1437
1438         * test/test-service.c, test/test-shell-service.c: Applications
1439         don't close shared connections themselves so we unref instead of
1440         close
1441
1442         * test/test-utils.c (test_connection_shutdown): Close the connection
1443
1444         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1445         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1446         method on a locked connection.  
1447         Make sure we call _dbus_connection_unref_unlocked instead of 
1448         dbus_connection_unref also.
1449         Handle DBUS_BUS_STARTER correctly
1450
1451         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1452         Mark as shared and hard ref the connection
1453         (connection_forget_shared_unlocked): Remove the hard ref from the 
1454         connection
1455         (_dbus_connection_close_internal_and_unlock):  New internal function
1456         which takes a locked connection and unlocks it after closing it
1457         (_dbus_connection_close_internal): New internal function which acts
1458         like the origonal dbus_connection_close method by grabbing a connection
1459         lock and calling _dbus_connection_close_internal_and_unlock
1460         (dbus_connection_close): Public close method, warns when the app
1461         trys to close a shared connection
1462
1463 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1464
1465         * bus/driver.c:
1466         (bus_driver_generate_introspect_string): New method for populating
1467         a DBusString with the introspect data
1468         (bus_driver_handle_introspect): Move introspect generation code to 
1469         bus_driver_generate_introspect_string
1470
1471         * bus/main.c:
1472         (introspect): New function which prints out the intropect data and
1473         exits
1474         (main): Add a --introspect switch
1475
1476 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1477
1478         * doc/TODO: Removed dtd publishing item.  
1479         It seems the dtd has already been added at
1480         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1481
1482 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1483
1484         * doc/TODO, various source files: Audited todo's and FIXME's and
1485         prepended the ones we should be looking at with 1.0.  Those
1486         prepended with 1.0? need clerification or might not be needed
1487         for 1.0
1488
1489 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1490
1491         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1492         NULL in the public API (Patch from Kimmo Hämäläinen 
1493         <kimmo dot hamalainen at nokia dot com>)
1494
1495 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1496
1497         * configure.in: Fix for OS-X compile time endian issues (patch from
1498         Benjamin Reed <ranger at befunk dot com>)
1499
1500 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1501
1502         * configure.in: Check for no-common compiler flag (OS-X fix from
1503         Benjamin Reed <ranger at befunk dot com>)
1504
1505 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1506
1507         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1508         <fcrozat at mandriva dot com>)
1509
1510 2006-08-29  Havoc Pennington  <hp@redhat.com>
1511
1512         * test/test-service.c (path_message_func): fix lack of return value
1513
1514         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1515         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1516         any more sense than on anything else in this file.
1517         (_dbus_get_tmpdir): add const to return value, and keep the
1518         results of the various getenv around in a static variable.
1519
1520 2006-08-29  Havoc Pennington  <hp@redhat.com>
1521
1522         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1523         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1524
1525 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1526
1527         * test/Makefile.am: change find to use syntax that works with non
1528         gnu versions of find
1529
1530 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1531
1532         * dbus/dbus-transport.c: fix invalid deref when checking if
1533         a vtable method exists (Patch from Christian Ehrlicher 
1534         <ch dot ehrlicher at gmx dot de>)
1535
1536 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1537
1538         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1539         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1540         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1541         <bernard at brenda-arkle dot demon dot co dot uk>)
1542
1543 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1544
1545         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1546         default case
1547
1548 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1549
1550         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1551         it works on any system providing this interface, not only FreeBSD.
1552         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1553
1554 2006-08-20  Havoc Pennington  <hp@redhat.com>
1555
1556         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1557         the docs
1558
1559 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1560
1561         * Released 0.92 
1562
1563 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1564
1565         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1566         to reflect the init late change
1567
1568         * bus/bus.c (bus_context_new): Check user before we fork so we can
1569         print out an error message a user will be able to see
1570
1571 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1572
1573         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1574
1575         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1576         Add two more global locks for use on windows platforms.  These are
1577         unused on non-windows platforms but are not ifdefed out to avoid
1578         potential bugs (i.e. the few bytes lost does not warrent the extra
1579         maintanence and complexity that having seperate sets of locks would
1580         cause)
1581
1582 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1583
1584         * bus/services.c (bus_registry_acquire_service): Return an error
1585         when an application tries to register the org.freedesktop.DBus Bus Name
1586
1587         * bus/services.c (bus_registry_release_service): Return an error
1588         when an application tries to release the org.freedesktop.DBus Bus Name
1589
1590 2006-08-17  Alp Toker  <alp@atoker.com>
1591
1592         * doc/dbus-specification.xml: Fix some minor typos.
1593
1594 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1595
1596         * configure.in: use $with_init_scripts instead of $operating_system
1597         to determine where to store the pid since the init scripts manipulate 
1598         the pid file (patch from Marcelo Ricardo Leitner 
1599         <marcelo dot leitner at terra dot com dot br>.  
1600
1601 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1602
1603         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1604         static DBusList *uninitialized_condvar_list to support new late 
1605         initialization threading model.  In this model threads can be initialized
1606         even after the D-Bus API has been used but still needs to be initialized 
1607         before the second thread has been started.  Mutexes and condvar addresses
1608         are stored in the two static lists and are replaced with actuall locks
1609         when threads are initalized.
1610         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1611         the location into the static list
1612         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1613         from the static list and freeing the mutex
1614         (_dbus_condvar_new_at_location): New method for creating a conditional 
1615         variable and placing the location into the static list
1616         (_dbus_condvar_free_at_location): New method for removing a conditional
1617         variable location from the static list and freeing the conditional variable 
1618         (init_uninitialized_locks): Atomic method which goes through the static 
1619         lists of mutex and condvar location and updates them with actuall locks
1620         (init_global_locks): changed to init_locks
1621         
1622         * dbus/dbus-connection.c:
1623         (_dbus_connection_test_get_locks): New method for tests to check connections
1624         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1625         condvar API
1626         (dbus_connection_allocate_data_slot): Pass in the global lock address
1627         to _dbus_data_slot_allocator_alloc
1628
1629         * dbus/dbus-dataslot.c:
1630         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1631         instead of the mutex itself
1632
1633         * dbus/dbus-message.c:
1634         (dbus_message_allocate_data_slot): Pass in the global lock address
1635         to _dbus_data_slot_allocator_alloc
1636
1637         * dbus/dbus-pending-call.c:
1638         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1639         to _dbus_data_slot_allocator_alloc
1640
1641         * dbus/dbus-server.c:
1642         (_dbus_server_init_base): Use the new at_location mutex API
1643         (dbus_server_allocate_data_slot): Pass in the global lock address
1644         to _dbus_data_slot_allocator_alloc
1645
1646         * test/name-test/test-threads-init.c: New test case for late thread
1647         initialization
1648
1649 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1650
1651         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1652         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1653         causes compile problems when asserts are turned off
1654         Keeping _dbus_warn for printing out the message so even if
1655         asserts are turned off the user gets the messages that something is 
1656         wrong 
1657
1658 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1659
1660         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1661
1662         * bus/services.c (bus_service_list_queued_owners):
1663         Add a pointer cast to fix compiler warning
1664
1665         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1666         return a NULL instead of FALSE since the return type
1667         is not expecting a boolean
1668
1669         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1670         Remove unused variable
1671
1672         * dbus/dbus-marshal-recursive-util.c (node_new):
1673         return a NULL instead of FALSE since the return type
1674         is not expecting a boolean
1675
1676         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1677         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1678         because we are expecting a pointer not a boolean
1679
1680         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1681         add void as the parameter so some compilers
1682         don't complain
1683
1684         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1685           _dbus_transport_new_for_tcp_socket):
1686         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1687         because we are expecting a pointer not a boolean
1688
1689         * test/shell-test.c (test_command_line):
1690         cast the second argument to _dbus_list_append to avoid compiler
1691         warnings
1692
1693         * test/test-names.c (main): remove unused variable
1694
1695         * test/test-service.c (check_hello_from_self_reply):
1696         Initialize echo_message and echo_reply to NULL
1697         
1698         * test/test-shell-service.c (handle_echo):
1699         Remove unused variable and cast the third parameter passed to
1700         dbus_connection_get_object_path_data to avoid compiler warrnings
1701
1702         * test/name-test/test-names.c (clear_message_queue):
1703         Remove unused function
1704
1705         * test/name-test/test-pending-call-dispatch.c:
1706         Fix format string in printf
1707
1708
1709 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1710
1711         * dbus/dbus-bus.c:
1712         * test/name-test/test-names.c:
1713         Remove test method dbus_bus_connection_get_unique_name because 
1714         we already have public method dbus_bus_get_unique_name that 
1715         does the exact same thing
1716
1717 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1718
1719         * dbus/dbus-signature.c:
1720         fix typos in Julio's previous patch which cause make check to fail
1721
1722 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1723
1724         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1725         In any case it was wrong since this is a test checking to see if
1726         address parsing is correct.  There was no need to get the true
1727         tmp directory.  
1728
1729 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1730
1731         * dbus/dbus-macros.h: Revert the addition of stddef.h
1732         as we should not be adding it to library headers 
1733
1734 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1735
1736         * dbus/dbus-signature.c:
1737         Fix the unit tests so that they work if assertions are not enabled.
1738         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1739
1740 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1741
1742         * tools/run-with-tmp-session-bus.sh:
1743         * test/name-test/run-test.sh:
1744         Remove bashisms (patch from Julio M. Merino Vidal
1745         <jmmv at NetBSD dot org>)
1746
1747 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1748
1749         * configure.in: add a version (>= 2.6.0) check for libxml2
1750
1751 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1752
1753         * configure.in: make sure the compiler supports -Wfloat-equal
1754         
1755         * bus/dir-watch-dnotify.c: move functional code after 
1756         variable declerations (C99 fix)  (patches from Jens Granseuer
1757         <jensgr at gmx dot net>
1758
1759 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1760
1761         * dbus/dbus-macros.h:
1762         add #include <stddef.h> so that Sun compilers don't complain about
1763         the defining NULL
1764
1765 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1766
1767         * dbus/dbus-sysdeps.c:
1768         * dbus/dbus-address.c:
1769         * bus/activation.c:
1770         * test/shell-test.c:
1771         don't hardcode tmp directory (patch from Dave Meikle 
1772         <dmk at davemeikle dot co dot uk>)
1773
1774 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1775
1776         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1777         Change an assert to a detailed warning and abort.  
1778         When allocator->lock != mutex it indicates that the user has failed
1779         to initalize threads before using the D-Bus library.  This warning
1780         helps the user identify the issue and fix their app.
1781
1782 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1783
1784         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1785         with cleanups of bugs found from Coverity reports:
1786
1787         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1788         close the file on error to avoid a leak
1789
1790         * bus/expirelist.c (bus_expire_list_test):
1791         Check for NULL on dbus_new0
1792
1793         * bus/activation.c (update_directory):
1794         remove dead code
1795
1796         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1797         Fix some leaks
1798
1799         * bus/bus.c (process_config_every_time):
1800         Fixed a leak
1801
1802         * bus/desktop-file.c (parse_key_value):
1803         Fixed leak
1804
1805         * bus/selinux.c (bus_selinux_id_table_insert):
1806         Fixed leak
1807
1808 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1809
1810         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1811         remove dead code
1812
1813 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1814
1815         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1816         #!/bin/bash
1817
1818 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1819
1820         * Doxyfile.in: fix the INPUT line so we can generate docs 
1821         when sourcedir != builddir (patch from Cygwin Ports maintainer
1822         <yselkowitz at users dot sourceforge dot net>
1823
1824 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1825
1826         * dbus/dbus-sysdeps.h:
1827         * dbus/dbus-sysdeps.c: 
1828         * dbus/dbus-string.c: 
1829         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1830         GLib's function which does the same thing
1831
1832         * configure.in:
1833         * bus/Makefile.am:
1834         * bus/dir-watch-default.c:
1835         * bus/dir-watch-dnotify.c:
1836         * bus/dir-watch-kqueue.c:
1837         Add kqueue directory watching for freebsd and split the directory
1838         watching code into seperate files per method/arch
1839         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1840
1841 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1842
1843         * configure.in:
1844         * tools/Makefile.am:
1845         * tools/dbus-launch.c:
1846         * bus/Makefile.am:
1847         allow --with-dbus-daemondir switch to be used to make the
1848         daemon install to a seperate bindir like /usr/libexec
1849         (patch from Brian Cameron <brian dot cameron at sun dot com)
1850
1851 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1852
1853         * bus/Makefile.am (install-data-hook): removed the slash after 
1854         $(DESTDIR) so we don't get the double slash which does not work
1855         in windows (patch from Andras Porjesz 
1856         <andras dot porjesz at siemens dot com>)
1857
1858 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1859
1860         * dbus/dbus-sysdeps.h:
1861         * dbus/dbus-sysdeps.c: 
1862           add _dbus_printf_length (patch from Peter Kümmel 
1863           <syntheticpp at gmx dot net>)
1864
1865 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1866
1867         * dbus/dbus-internals.c: unistd.h is not used 
1868         (_dbus_verbose_real): only enable verbose printing 
1869         if DBUS_VERBOSE environment var is set to '1'
1870         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1871
1872 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1873
1874         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1875         so we still compile on older gcc (patch from Frederic Peters 
1876         <fpeters at 0d dot be>
1877
1878 2006-08-04  Havoc Pennington  <hp@redhat.com>
1879
1880         * configure.in: add -Wdeclaration-after-statement
1881
1882         * dbus/dbus-connection.c: change all the pending call stuff to
1883         reflect the fact that pending call operations use the connection
1884         lock
1885
1886         * dbus/dbus-pending-call.c: add locking here
1887
1888         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1889         field const consistent with how message field is done
1890
1891 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1892
1893         * s/D-BUS/D-Bus/g
1894
1895 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1896
1897         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1898         <in7y118 at public.uni-hamburg dot de> - fix invalid
1899         read/write reported by valgrind
1900
1901 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1902
1903         * Released 0.91
1904
1905 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1906
1907         * dbus/dbus-connection.c:
1908         (_dbus_connection_attach_pending_call_unlocked):
1909         (connection_timeout_and_complete_all_pending_calls_unlocked):
1910         Make sure we set timeout_added on pending calls to FALSE when
1911         we remove the timeout from the connection
1912
1913 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1914
1915         * Removed some extra bindings stuff lingering around (thanks timo)
1916         * dbus-pendingcall.c (_dbus_pending_call_new): 
1917         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1918         when we tried to take a lock on an already locked connection
1919
1920 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1921
1922         * Released 0.90
1923
1924 2006-07-17  Havoc Pennington  <hp@redhat.com>
1925
1926         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1927         ints, reported by Owen Taylor
1928
1929 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1930
1931         * doc/TODO:
1932         * dbus/dbus-bus.c:
1933         * dbus-errors.c:
1934         * dbus/dbus-marshal-validate.c:
1935           Removed TODO items which were fixed or are no longer relevent
1936
1937 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1938
1939         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1940         Remove stray files from the stripped bindings
1941
1942 2006-07-16  Havoc Pennington  <hp@redhat.com>
1943
1944         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1945         Improve the error message on reply timeout
1946
1947 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1948
1949         * Remove all bindings
1950
1951 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1952
1953         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1954         and set pending_reply out arg to NULL is connection is disconnected
1955         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1956         static method for cleaning up pending calls on disconnect
1957         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1958         calls queued timeouts on disconnect 
1959
1960          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1961         Remove 
1962
1963 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1964
1965         * bus/activation.[ch] (bus_activation_list_services): new function to 
1966         get the list of services that can be activated
1967
1968         * bus/dispatch.c: test coverage for the new bus method
1969         ListActivatableNames
1970
1971         * bus/driver.c: new bus method ListActivatableNames to get the list of
1972         services that can be activated
1973
1974         * doc/dbus-specification.xml: ListActivatableNames method documentation
1975
1976 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1977         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1978         source files
1979
1980 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1981         * dbus/dbus-message-factory.c:
1982         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1983
1984 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1985         * dbus/dbus-connection-internal.h:
1986         * dbus/dbus-connection.c:
1987         * file dbus/dbus-pending-call.c:
1988         * dbus/dbus-pending-call.h:
1989         Make DBusPendingCall an opaque type even to D-Bus internals
1990
1991 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1992
1993         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1994         connection_close
1995
1996         * dbus/dbus-connection.c: include dbus-bus.h
1997         (_dbus_connection_read_write_dispatch): make static
1998
1999 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
2000
2001         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
2002         function
2003         (dbus_connection_dispatch): On disconnect unref any shared connections
2004
2005         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
2006         for cleaning up shared connections on disconnect
2007         (internal_bus_get): get a hard refrence to shared connections when
2008         they are created
2009         
2010         * doc/TODO: Remove items which are no longer relevent or have been fixed
2011         Split 1.0 todo items with a 0.90 freeze todo list
2012  
2013 2006-06-14  Ross Burton  <ross@openedhand.com>
2014
2015         * glib/dbus-gobject.c:
2016         Free a leaking GArray (surely not!) in dbus_g_method_return.
2017
2018 2006-06-14  Ross Burton  <ross@openedhand.com>
2019
2020         * tools/Makefile.am:
2021         * tools/dbus-monitor.c:
2022         Don't use the GLib bindings in dbus-monitor (patch from Ralf
2023         Habacker).
2024         
2025 2006-06-14  Ross Burton  <ross@openedhand.com>
2026
2027         * tools/dbus-print-message.c:
2028         Also print the object path when outputting signals or method calls.
2029
2030 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
2031
2032         * qt/src/Makefile.am: install the qdbus.h header.
2033         This allows people to actually use the installed code.
2034
2035 2006-06-12  Ross Burton  <ross@openedhand.com>
2036
2037         * glib/dbus-gproxy.c:
2038         Don't leak a GArray when firing signals (thank Rob Taylor for review).
2039
2040 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2041
2042         * Released 0.62
2043
2044 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2045
2046         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
2047         break pedantic builds. Closes bug 6043 (patch approved by
2048         Havoc back in February).
2049
2050 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2051
2052         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
2053         that took a QDBusMessage parameter.
2054         * qt/src/qdbusbus.h: Add a default flag for RequestName.
2055         * qt/tools/dbus.cpp: Don't use automatic call because we might
2056         be calling an async method: request a reply.
2057
2058 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
2059
2060         * test/qt/*: Update the testcases, including testing the new
2061         functionality of sending null QByteArray and QString over the
2062         bus. Add new headertest test and restore the old
2063         qdbusxmlparser test.
2064
2065 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
2066
2067         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
2068         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
2069
2070         * qt/examples/Makefile.am:
2071         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
2072         form.
2073
2074         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
2075         QByteArray() (nulls) over the bus.
2076         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
2077         the one that has the signature suffix stripped.
2078         * qt/src/qdbusreply.h: Make some methods const.
2079
2080 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
2081
2082         Patch from Timo Hoenig <thoenig@suse.de>.
2083
2084         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
2085         required during build to EXTRA_DIST.
2086         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
2087         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
2088         * configure.in: Fix "make dist", take care that the Makefile for
2089         qt/dbus is being generated.
2090
2091 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2092
2093         * bus/bus.c: Fix eavesdropping on method calls
2094
2095 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2096
2097         * configure.in:
2098         * dbus/dbus-userdb-util.c:
2099         Add Solaris console owner patch from Artem Kachitchkine
2100
2101 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
2102
2103         * qt/Makfile.am:
2104         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
2105         reorganisation. Thanks to Timo Hoenig for pointing this out.
2106
2107 2006-06-06  Robert McQueen  <robot101@debian.org>
2108
2109         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
2110           call to dbus_g_type_get_struct.
2111
2112 2006-06-06  Robert McQueen  <robot101@debian.org>
2113
2114         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
2115           pointers were put into a GPtrArray-based specialised collection, and
2116           then freed along with the array. GValues which you add into
2117           collections or maps which have the NOCOPY flag set are assumed to not
2118           belong to the caller, so rather than the existing pointer-stealing
2119           semantics, they are copied instead. Given that the main consumers of
2120           this abstraction are the bindings themselves, I don't think this is
2121           too bad, but others should watch their choice of take vs set_static.
2122
2123 2006-06-06  Robert McQueen  <robot101@debian.org>
2124
2125         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
2126           of g_slist_prepend not being used. Fixed copying of slist-based
2127           specialised collections, then wrote a test case and found that it was
2128           all broken. Went on to fix iterating and appending too. Good thing
2129           nobody uses this code yet.
2130
2131 2006-06-06  Robert McQueen  <robot101@debian.org>
2132
2133         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
2134           the iterators use gvalue_take_ptrarray_value (the GValues themselves
2135           are discarded without unsetting, so it makes no difference whether
2136           we take or set_static). Remove cases for G_TYPE_POINTER because
2137           there really is nothing useful we can do with them in our
2138           specialised types - we *need* boxed copy/free functions at the very
2139           least.
2140
2141 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
2142
2143         * qt/dbus: Add directory. I had forgotten to add this
2144         yesterday after the move...
2145
2146         * qt/examples/Makefile.am:
2147         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
2148
2149         * qt/tools/Makefile.am:
2150         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
2151         Added feature to get and set properties.
2152         Added validation of service, object path and interface names.
2153
2154         * qt/tools/dbusidl2cpp.cpp: Two new features:
2155         1) Allow specifying both the header and the source file names,
2156         by separating them with a colon.
2157         2) Don't write an interface output if the -p switch wasn't
2158         given, but the -a was.
2159
2160         * qt/src/*: Fix usage of Iterators and ConstIterators.
2161         Fix shadowing of variables by other variables (-Wshadow).
2162         Fix keyword-cleanliness in headers.
2163         Fix ASCII-cast (QLatin1String, QLatin1Char).
2164         Fix validation of member names.
2165         Add extra checking of introspection data during XML parsing.
2166         Various bug fixes.
2167
2168 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2169
2170         * dbus/Makefile.am:
2171         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
2172         qt/dbus/qdbus.h now.
2173
2174 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2175
2176         * configure.in: Make --disable-qt actually do
2177           something. Patch inspired by Zack Rusin.
2178
2179 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2180
2181         * qt/: Update to Subversion r548032.
2182         This includes a big reorganisation of the files inside the
2183         subdir.
2184
2185 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
2186
2187         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
2188         clear:  
2189         "Failed to connect to socket <host>:<port> <error>" instead of
2190         "Failed to connect to socket <host>: <error>:<port>"
2191
2192         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
2193         for a tcp transport. 
2194
2195 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2196
2197         * qt/*: Update the QtDBus bindings up to revision 546310 in
2198         Subversion.
2199         This adds the dbuscpp2xml tool, that parses a C++ header and
2200         outputs a D-BUS Introspection XML.
2201
2202 2006-05-21  Havoc Pennington  <hp@redhat.com>
2203
2204         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
2205         is not NULL when it shouldn't be. Also a couple of possible fixes
2206         for #4637 though I don't understand why the bug happens, to be
2207         honest... also the object constructor has an assert name != NULL
2208         and the name is only currently NULL for peer-to-peer proxies that 
2209         I don't think anyone uses? So it should be asserting.
2210         Anyway, for now at least see if we get an earlier assertion failure.
2211
2212         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
2213         apparently broken code to be sure the tests fail and someone 
2214         will fix them...
2215
2216 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
2217
2218         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
2219         and arrays when they had a single element: has_next returns
2220         false, even before you read the element. So, instead, check
2221         the array length.
2222
2223 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2224
2225         * qt/qdbusmessage.cpp:
2226         * qt/qdbustypehelper_p.h:
2227         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
2228         the list is a const-reference
2229
2230 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
2231
2232         * Adding old doc patch that never got applied
2233         
2234         * dbus/bus.c (dbus_bus_add_match): Add documentation
2235
2236         * doc/dbus-specification.xml: Add documentation for the match rules
2237           and the AddMatch and RemoveMatch methods
2238
2239 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
2240
2241         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2242         call (r535506)
2243
2244         * qt/dbusidl2cpp.cpp:
2245         * qt/qdbusabstractadaptor.cpp:
2246         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
2247         sibling of the QDBusAbstractAdaptor objects instead of the
2248         parent. (r535848)
2249
2250         * qt/dbusidl2cpp.cpp:
2251         * qt/qdbusabstractinterface.cpp:
2252         * qt/qdbusabstractinterface.h:
2253         * qt/qdbusabstractinterface_p.h:
2254         * qt/qdbusinterface.cpp: Make properties in interfaces
2255         actually work. The code that was generated would not compile,
2256         due to moc calls to functions that did not exist. They now
2257         shall. (r536571)
2258
2259 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
2260
2261         * Makefile.am:
2262         * configure.in:
2263         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
2264         Thanks to Brad Hards for providing the patch
2265
2266 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2267
2268         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2269         call. (r535506)
2270
2271 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2272
2273         * qt/examples/dbus.cpp: Enhance error messages and use
2274         QDBusInterfacePtr.
2275
2276 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2277
2278         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
2279         and disable the copy operators. (r533772, r534746)
2280
2281         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
2282
2283         * qt/qdbusabstractinterface.cpp:
2284         * qt/qdbusabstractinterface.h: Change the default call mode to
2285         not use the event loop. Add convenience call() methods that
2286         take a CallMode parameter. (r534042)
2287
2288         * qt/qdbusconnection.h: Change the default call mode to not
2289         use the event loop. (r534042)
2290
2291         * qt/qdbusinterface.cpp:
2292         * qt/qdbusinterface.h: Add a method to tell us if the
2293         interface is valid (since we don't return a null pointer
2294         anymore) (r534099)
2295
2296         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2297         (r534101)
2298
2299         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2300         function in two so taht we get the chance to introspect
2301         without having a QDBusMessage (r534102)
2302
2303         * qt/qdbusbus.h:
2304         * qt/qdbusconnection.cpp:
2305         * qt/qdbusconnection_p.h:
2306         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2307         avoid a round-trip to the server when attempting to introspect
2308         one of our own objects. Also make sure the filter functions
2309         match the empty interface as well. (r534108)
2310         Don't keep the connection names. Instead, trust the unique
2311         connection name (r534111)
2312         Remove event loop usage (r534112)
2313
2314 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2315
2316         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2317         Brad Hards.
2318
2319 2006-04-28  Robert McQueen  <robot101@debian.org>
2320
2321         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2322         any order, making it easier for people who inherit from this
2323         object.
2324
2325 2006-04-28  Robert McQueen  <robot101@debian.org>
2326
2327         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2328         of memory from within pointer arrays and lists. Fixes bug #6300.
2329
2330 2006-04-28  Robert McQueen  <robot101@debian.org>
2331
2332         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2333         generating struct signatures. Fixes bug #6083.
2334
2335 2006-04-28  Robert McQueen  <robot101@debian.org>
2336
2337         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2338         to qdbusconnection_p.moc.
2339
2340 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2341
2342         * README, INSTALL: Doc fixes
2343         Patch from Brad Hards <bradh at frogmouth.net>
2344
2345 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2346
2347         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2348         the dynamic meta object. No need to guess which interface to
2349         call.
2350
2351 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2352
2353         * qt/qdbusconnection_p.h:
2354         * qt/qdbusmetaobject.cpp:
2355         * qt/qdbusmetaobject_p.h:
2356         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2357         for the dynamic meta object. No need to guess which
2358         interface to call.
2359         * qt/qdbusabstractinterface_p.h:
2360         * qt/qdbusconnection.cpp:
2361         * qt/qdbusintegrator.cpp:
2362         * qt/qdbusinterface.cpp:
2363         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2364         Add a QDBusRef that looks and behaves like DCOPRef.
2365
2366 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2367
2368         * dbus/dbus-connection.c: Interfaces are optional in method
2369         calls, so don't give up if the interface parameter is NULL.
2370         Patch reviewed by Havoc Pennington.
2371
2372 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2373
2374         * qt/qdbusreply.h: Add default constructor and operator=
2375           (r532625)
2376         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2377           in public headers (r532952)
2378         * qt/qdbusabstractinterface.cpp:
2379         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2380           make it the default (r532951)
2381
2382 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2383
2384         * dbus/dbus-connection.c: Fix asserts
2385         Patch from Tim Moloney <t.moloney at verizon.net>
2386
2387 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2388
2389         * mono/Connection.cs, mono/Message.cs: Check Target type
2390         Patch from Aaron Bockover (abockover at novell.com)
2391
2392 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2393
2394         * INSTALL: fine-tune the requirements for the Qt4 binding.
2395
2396 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2397
2398         * tools/dbus-print-message.c: Added support for printing of all 
2399           remaining data types. Fixed logic for indentation of compound
2400           data types.
2401         
2402 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2403
2404         * INSTALL: fill out content of file providing DBus specific
2405           build installations, followed by generic Auto* INSTALL file
2406           content
2407         
2408 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2409
2410         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2411           Patch by Stefan Eilers. (r529537)
2412
2413 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2414
2415         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2416           contents (r528208)
2417
2418 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2419
2420         * qt/Makefile.am: fix the dependency for
2421           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2422           not in qdbusconnection.cpp.
2423           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2424           spotting this.
2425
2426 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2427
2428         * qt/examples/listnames.cpp:
2429         * qt/examples/Makefile.am: Three ways to list the names on the
2430           bus.
2431
2432 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2433
2434         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2435           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2436
2437 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2438
2439         Merge from Subversion:
2440         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2441           something that exists (r526315)
2442         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2443           slots/signals (r526316)
2444         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2445           also return an unknown-method error if the parameters don't
2446           match for org.freedesktop.DBus.Properties. (r526842)
2447         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2448         * qt/qdbusintegrator.cpp: Restore the proper order of
2449           delivery: don't make method returns be delivered on priority
2450           (r528150)
2451
2452 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2453
2454         * configure.in qt/Makefile.am: add qt/examples
2455         * qt/examples: Add QtDBus example programs:
2456           - hello: Hello, World
2457           - ping: Simple method-calling program
2458           - pong: Simple object-exporting program (not using adaptors)
2459           - complexping: Interactive method-calling program 
2460                 (also gets and sets properties).
2461           - complexpong: Sample program exporting methods, signals and
2462                 properties, using adaptors.
2463           - dbus: Simple implementation of a generic method-calling
2464                 program, similar to 'dbus-send', but with semantics
2465                 similar to 'dcop'.
2466           - chat: Simplistic chat program, implemented using signals
2467                 and the system bus. Looks like IRC.
2468
2469 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2470
2471         * configure.in: Detect QtGui (necessary for one of the
2472           example programs). Note: this increases the minimum required
2473           version of Qt to 4.1.3.
2474
2475 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2476
2477         * test/qt/*: Sync with KDE Subversion revision 523647.
2478         Update the testcases to the new API. Remove testcases for
2479         classes that are no longer public or have been removed.
2480
2481 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2482
2483         * qt/*: 
2484         * dbus/qdbus.h: Sync with KDE Subversion revision
2485         523647. Hopefully, this will be the last of the
2486         source-incompatible changes. Documentation has been improved;
2487         support for QList<basic-types> has been added; QDBusObject is
2488         gone; QDBus(Abstract)Interface is now a QObject with
2489         auto-generated meta-object; QDBusIntrospection is marked
2490         private, since QMetaObject can be used now; lots of bugfixes.
2491
2492 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2493
2494         Patch from Milosz Derezynski <internalerror at gmail.com>
2495         
2496         * configure.in:
2497         Output the service directory in the configure summary
2498
2499         * dbus-1.pc.in:
2500         Add session_bus_services_dir
2501
2502 2006-03-10  Ross Burton  <ross@openedhand.com>
2503
2504         * tools/dbus-print-message.c:
2505         Add support for object paths and signatures.
2506
2507 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2508
2509         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2510         config reload.
2511         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2512         information caches
2513         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2514         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2515         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2516         * dbus/dbus-userdb.h: Add function to flush all user/group information
2517         caches.
2518
2519 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2520
2521         * qt/dbusidl2cpp.cpp:
2522         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2523         for dcopidl2cpp, found in the KDE installations (or the more
2524         modern kalyptus): generate Qt4 C++ code for the input XML
2525         introspection. Currently no IDL parsing.
2526
2527 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2528
2529         * test/qt/*: Update the self-tests.
2530
2531 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2532
2533         * qt/*: 
2534         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2535         represents the first feature-complete version of the Qt4
2536         bindings since I took ove maintainership.
2537
2538 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2539
2540         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2541         dir. This is C++, so we can't use the DBus ones.
2542
2543 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2544
2545         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2546         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2547
2548 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2549
2550         * dbus/dbus-connection.c: 
2551         (_dbus_connection_block_pending_call):
2552         Check to see if our data has already been read off the connection
2553         by another blocking pending call before we block in poll.
2554         (check_for_reply_and_update_dispatch_unlocked):
2555         Code taken from _dbus_connection_block_pending_call - checks for
2556         an already read reply and updates the dispatch if there is one.
2557
2558         * test/name-test/test-pending-call-dispatch.c:
2559         New test for making sure we don't get stuck polling a 
2560         dbus connection which has no data on the socket when
2561         blocking out of order on two or more pending calls.
2562
2563 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2564
2565         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2566         make/automake don't detect that we're talking about the same
2567         .lo file if I specify the full path to the source files.
2568
2569 2006-02-26  Havoc Pennington  <hp@redhat.com>
2570
2571         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2572
2573         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2574         session bus variable is unset, suggest "man dbus-launch" and "man
2575         dbus-daemon" to figure out how to fix the problem
2576
2577 2006-02-25  Havoc Pennington  <hp@redhat.com>
2578
2579         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2580         should make this thing use the new glib options parser
2581
2582 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2583
2584         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2585         .lo files taking moc sources.
2586
2587 2006-02-25  Havoc Pennington  <hp@redhat.com>
2588
2589         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2590         and install it as a public header
2591
2592 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2593
2594         * Released 0.61
2595
2596 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2597         
2598         * proxies.py: Fix the callchain
2599
2600 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2601         
2602         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2603
2604         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2605         dbus/dbus-sysdeps.c
2606
2607         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2608         call _dbus_group_info_free_allocated which causes infinite loop,
2609         correctly call _dbus_group_info_free
2610
2611 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2612
2613         * qt/qdbusinterface_p.h:
2614         * qt/qdbusinterface.cpp: Use the standard
2615         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2616         calls instead of creating one for us.
2617
2618         * qt/qdbusconnection_p.h:
2619         * qt/qdbusintegrator.cpp: Remove debugging code.
2620
2621         * qt/qdbusintegrator.cpp:
2622         * qt/qdbusmessage.cpp:
2623         * qt/qdbusmessage_p.h:
2624         * qt/qdbusmessage.h: Change the behaviour of automatic
2625         reply-sending: now a reply is always sent, unless the caller
2626         didn't request one or if the user slot has already sent one.
2627
2628 2006-02-16  Robert McQueen  <robot101@debian.org>
2629
2630         * configure.in: Patch from Debian packages by Sjoerd Simons
2631         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2632         arguments so it's possible to build both bindings in the
2633         same tree.
2634
2635         * qt/Makefile.am: Fix truncated value so that make dist works.
2636
2637 2006-02-16  Robert McQueen  <robot101@debian.org>
2638
2639         * acinclude.m4, configure.in: Patch from Brad Hards
2640         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2641         improving quoting, re-ordering a few checks, and a few other
2642         aesthetic tidy-ups.
2643
2644 2006-02-16  Robert McQueen  <robot101@debian.org>
2645
2646         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2647         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2648         assertion that the next element to read from the iter is fixed in
2649         size. This is not the case when you are at the end of the iter,
2650         because the next element type is INVALID.
2651
2652         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2653         a bogus assert which means that you may not initialise a 0-length
2654         string unless you provide a non-NULL pointer. This prevented
2655         you from marshalling messages containing zero-length arrays in
2656         some cases.
2657
2658         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2659         from Rob to correct bogus asserts when trying to demarshal an
2660         array and get_fixed_array got you 0 elements. Append nothing to
2661         the GArray in this case.
2662
2663         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2664         an empty array via the glib bindings. Without all of the above
2665         patches, this new test fails.
2666
2667 2006-02-16  Robert McQueen  <robot101@debian.org>
2668
2669         * glib/dbus-gmain.c: Make the previous commit compile.
2670
2671         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2672         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2673         specify sender_keyword="foo", path_keyword="bar" when adding
2674         a signal listener, so that you can bind to signals generically
2675         but still do something useful in your callback.
2676
2677         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2678         chars so that they're not cast to chars and made negative. Thanks
2679         to Jakub Stachowski for reporting this and testing the fix.
2680
2681 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2682
2683         * dbus/dbus-glib.h:
2684         * glib/dbus-gmain.h:
2685         (dbus_g_connection_open): new method for openning
2686         a connection to an arbitrary address in the glib bindings
2687
2688         * ChangeLog: checkin last entry which doesn't seem to be commited
2689
2690 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2691
2692         * tools/dbus-launch.c: Fixed sh syntax output
2693
2694 2006-02-13  Robert McQueen  <robot101@debian.org>
2695
2696         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2697         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2698         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2699         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2700         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2701         missing piece of the glib bindings jigsaw puzzle. This modifies
2702         the existing specialised types to have N type parameters (rather
2703         than the current 1 or 2 for arrays and dictionaries respectively).
2704         You can then use this to get a glib type to represent any arbitrary
2705         D-Bus struct type using dbus_g_type_get_struct. The only
2706         implementation of these types is with GValueArrays as before,
2707         but it's now possible to store these in arrays, emit them in
2708         signals, etc.
2709
2710 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2711
2712         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2713         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2714         <thiago.macieira at trolltech.com>
2715
2716 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2717
2718         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2719         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2720
2721 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2722
2723         * bus/connection.c (bus_connections_expect_reply): Make
2724         pending reply limit not common to all connections (Bug #5416)
2725         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2726
2727 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2728
2729         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2730
2731 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2732
2733         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2734         patch from Doug Goldstein <cardoe at gentoo.org>
2735
2736 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2737
2738         * mono/Arguments.cs: Fix a magic number in the mono bindings
2739         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2740
2741 2006-01-27  Robert McQueen  <robot101@debian.org>
2742
2743         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2744         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2745         when generating the client-side methods, instead of overloading
2746         CSymbol which broke everything horribly. My apologies.
2747
2748 2006-01-27  Robert McQueen  <robot101@debian.org>
2749
2750         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2751         by me and Rob Taylor to add a simple_free function to D-Bus map
2752         and collection types, which allows those types which can be freed
2753         with a GDestroyNotify (such as GHashTables and GArrays, but not
2754         GPtrArrays) to be stored as the values in hashtables.
2755
2756         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2757         Patch by Rob Taylor to add nested dicts to the glib tests to check
2758         the above code works, and appears not to leak when called repeatedly.
2759
2760 2006-01-27  Robert McQueen  <robot101@debian.org>
2761
2762         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2763         to free a D-Bus allocated string with dbus_free () instead of
2764         g_free ().
2765
2766 2006-01-27  Iain Holmes  <iain@openedhand.com>
2767
2768         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2769         method from being called multiple times.
2770
2771 2006-01-19  Robert McQueen  <robot101@debian.org>
2772
2773         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2774         <rob.taylor@collabora.co.uk> to add support for generating bindings
2775         to arrays that are represented as GPtrArrays rather than GArrays (ie
2776         size-variable things, such as strings, objects, structs, etc).
2777
2778 2006-01-05  Robert McQueen  <robot101@debian.org>
2779
2780         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2781         <ricardo.kekki@movial.fi> to make it possible to inherit from
2782         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2783         a private part, and moving the setting of the DBusGProxyManager into a
2784         connection property, allowing proper GObject construction.
2785
2786 2006-01-05  Robert McQueen  <robot101@debian.org>
2787
2788         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2789         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2790         annotations when generating glib client bindings.
2791
2792 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2793
2794         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2795
2796         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2797
2798 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2799
2800         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2801
2802 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2803
2804         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2805
2806 2005-12-19  Ross Burton  <ross@openedhand.com>
2807
2808         * doc/dbus-tutorial.xml:
2809         Document the Glib client-side bindings, and list all possible annotations.
2810
2811 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2812
2813         * dbus/bus.c (dbus_bus_release_name): Add documentation
2814
2815 2005-12-06  Robert McQueen  <robot101@debian.org>
2816
2817         * python/service.py: s/sucessful/successful/ so we're allocating to
2818         and reading from the same variable. Oops.
2819
2820 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2821
2822         * Released 0.60
2823
2824 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2825
2826         * test/qt/Makefile.am: build from srcdir
2827
2828         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2829         Note - this code is wrong and needs to be fixed by the Qt binding
2830         developers.  The flags should be treated as bitfields and not enums.
2831
2832         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2833
2834 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2835
2836         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2837           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2838           in production code
2839
2840 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2841
2842         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2843         method for getting messages off the bus in the absence of a
2844         mainloop.  This method is much like 
2845         dbus_connection_read_write_dispatch except it does not dispatch
2846         the messages to a registered filter function.  Instead it
2847         allows a developer to process messages by directly popping
2848         them off the bus.
2849
2850 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2851
2852         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2853         the parser to continue instead of returning error
2854         (bus_desktop_file_load): Do not free parser data when
2855         parse_section_start or parse_key_value fails because it was 
2856         already freed by parser_free (patch from Carlos Garcia Campos  
2857         <carlosgc at gnome.org>)
2858
2859 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2860
2861         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2862         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2863         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2864         test/test-segfault.c, test/test-utils.c,
2865         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2866         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2867         Various cleanup of dead code and compiler warnings (patch from
2868         Kjartan Maraas <kmaraas at gnome.org>) 
2869
2870 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2871
2872         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2873         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2874
2875 2005-11-27  Robert McQueen  <robot101@debian.org>
2876
2877         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2878         part of the preceding one. Oops. Merge patch by Johan Hedberg
2879         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2880         on big-endian platforms.
2881
2882         * test/python/test-client.py: Add some 16-bit integers to the test
2883         values.
2884
2885 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2886
2887         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2888         method return message for property getters
2889
2890 2005-11-27  Robert McQueen  <robot101@debian.org>
2891
2892         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2893         with type v of an instance of dbus.Variant(foo, type='x') caused
2894         it to be boxed twice before sending over the bus.
2895
2896         * python/dbus_bindings.pyx, python/service.py,
2897         test/python/test-client.py: Update the constants for the new
2898         request_name flags, and update comments/test cases now that queueing
2899         is the default action.
2900
2901 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2902
2903         * configure.in:
2904         - Change version to 0.60 for impending release
2905         - upped the sonames because of ABI and API breakage
2906
2907 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2908
2909         * configure.in: Add test/name-test/Makefile to the generated
2910         Makefile list
2911
2912         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2913         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2914         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2915         not to queue an ower if it can't be the primary owner
2916
2917         * bus/bus.h: Add new internal BusOwner struct
2918
2919         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2920         to bus_registry_ensure and don't set the prohibit_replacement flag
2921         since they are now set per BusOwner and not per name.
2922         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2923         that returns the list of connections in a name's connection queue
2924         
2925         * bus/services.c (struct BusService): remove prohibit_replacement field
2926         (struct BusOwner): new struct for keeping track of queued connections
2927         and their associated flags for the queue
2928         (struct BusRegistry): add a BusOwner memory pool
2929         (bus_registry_new): initialize the BusOwner memory pool
2930         (bus_registry_unref): free the BusOwner memory pool
2931         (_bus_service_find_owner_link): new internal method for
2932         searching the queue for a specific connection
2933         (bus_owner_set_flags): new method for adding setting the flags on a
2934         bus owner
2935         (bus_owner_new): new method that creates a BusOwner object from the
2936         pool and sets its flags
2937         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2938         (bus_registry_ensure): Add the flags parameter
2939         (bus_registry_acquire_service): Switch from using raw connections to
2940         using the BusOwner struct
2941         Add new state machine for dealing with the new set of flags
2942         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2943         cancel_ownership, free_ownership_cancel_data, 
2944         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2945         restore_ownership, free_ownership_restore_data, 
2946         add_restore_ownership_to_transaction): Switch to using BusOwner 
2947         instead of raw connections
2948         (bus_service_add_owner): Add flags parameter
2949         Switch to using BusOwner instead of raw connections
2950         Add state machine for dealing with the new set of flags
2951         (bus_service_swap_owner): Swaps the first and second owners in the
2952         queue.  Used to make sure proper signals are sent when a service looses 
2953         or gains primary ownership.  We never insert an owner at the top of the
2954         queue.  Instead we insert it in the second position and then swap.
2955         (bus_service_remove_owner): Remove the owner from the queue sending
2956         out the NameLost and NameOwnerChanged signals if the we were the 
2957         primary owner
2958         (bus_service_get_primary_owners_connection): New method that extracts
2959         the connection from the primary owner
2960         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2961         connection
2962         (bus_service_get_allow_replacement): Changed from the old 
2963         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2964         primary owner and returns if it can be replaced or not
2965         (bus_service_set_prohibit_replacement): removed
2966         (bus_service_has_owner): returns TRUE if and owner with
2967         the specified connection exists in the queue
2968         
2969         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2970         method that only compiles if tests are enabled.  Allows us to get the 
2971         unique name of a connection so we can check it against the queue when
2972         doing regression tests
2973
2974         * bus/activation.c (bus_activation_send_pending_auto_activate),
2975         bus/dispatch.c (bus_dispatch),  
2976         bus/driver.c (bus_driver_handle_get_service_owner, 
2977         bus_driver_handle_get_connection_unix_user, 
2978         bus_driver_handle_get_connection_unix_process_id,
2979         bus_driver_handle_get_connection_selinux_security_context),
2980         bus/signals.c (connection_is_primary_owner): 
2981         use bus_service_get_primary_owners_connection instead of
2982         bus_service_get_primary_owner
2983
2984         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2985         _dbus_listen_unix_socket): Calculate the length of the socket
2986         path and use that instead of using a fixed length which was
2987         causing socket names to contain many trailing Nul bytes.
2988
2989         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2990         (dbus_g_method_get_sender): New method for extracting the sender 
2991         from a DBusGMethodInvocation
2992         (dbus_g_method_return_get_reply): changed name to 
2993         dbus_g_method_get_reply
2994         (dbus_g_method_return_send_reply): changed name to
2995         dbus_g_method_send reply
2996
2997         * doc/dbus-specification.xml: New docs that describe how the new
2998         queueing system works and talks about the changes to the how
2999         we specify socket names
3000
3001         * glib/examples/example-service.c, 
3002         glib/examples/example-signal-emitter.c,
3003         glib/examples/statemachine/statemachine-server.c:
3004         Changed the RequestName flags to the new system
3005
3006         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
3007         regression test suite for testing various states of the new
3008         queueing system
3009         
3010 2005-11-15  Robert McQueen  <robot101@debian.org>
3011
3012         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
3013         Taylor to add two methods, dbus_g_method_return_get_reply and
3014         dbus_g_method_return_send_reply, to allow you to get the reply
3015         message from a DBusGMethodInvocation, append arbitrary stuff to it,
3016         and send it. The GLib bindings can't marshal a return value of
3017         something like a(s) if the array is empty - ultimately they should be
3018         made to heed the signature of the out arguments as the Python bindings
3019         now can, but this is a workable interim solution which might have
3020         other applications.
3021
3022 2005-11-15  Robert McQueen  <robot101@debian.org>
3023
3024         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
3025         method to org.freedesktop.DBus to release a bus name or give up
3026         waiting in the queue for it.
3027
3028         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
3029         dbus_bus_release_name method to send the ReleaseName method calls.
3030         Add constants for the return values to dbus/dbus-shared.h.
3031
3032         * doc/dbus-specification.xml: Document the new ReleaseName method
3033         in the specification.
3034
3035         * python/dbus_bindings.pyx: Add a low-level python binding for the
3036         release name method.
3037
3038         * python/exceptions.py, python/service.py: Make freeing BusName
3039         objects release the name. Add a NameExistsException, and fix a
3040         bug with creating UnknownMethodException.
3041
3042         * test/python/test-client.py: Add tests for freeing BusName
3043         objects causing names to be released.
3044
3045 2005-11-14  Robert McQueen  <robot101@debian.org>
3046
3047         * python/service.py: Include the traceback in the error reply when we
3048         send an exception over the bus. _BEST_ _PATCH_ _EVER_
3049
3050 2005-11-14  David Zeuthen  <davidz@redhat.com>
3051
3052         Patch from Timo Hoenig <thoenig@suse.de>.
3053
3054         * bus/bus.c: I've recently investigated why the automatic reload
3055         of configuration files does not work as expected.
3056
3057         Currently, reloading configuration files does only work when
3058         running dbus-daemon with --nodaemon.  If we are running as daemon
3059         we're hitting a dnotify bug once we fork the process.
3060
3061         We're initializing the dnotify fds before calling fork().  Once
3062         the child process forked it does still have the fds (and they
3063         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
3064         getting SIGIO as changes are made to the configuration files.
3065
3066         The attached patch moves the initialization of the dnotify fds to
3067         process_config_postinit().  This is safe for all current code
3068         paths and solves the dnotify disfunction.  If we're running
3069         dbus-daemon as daemon the fds for dnotify are now being
3070         initialized after fork() for the child process.
3071
3072         * configure.in: The current configure.in check for dnotify probes
3073         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
3074         match for 'xlinux', too. Additionally I have adapted the configure
3075         option's style to match with the others.
3076
3077 2005-11-14  Robert McQueen  <robot101@debian.org>
3078
3079         * python/decorators.py, python/service.py: Add a new argument to the
3080         dbus.service.method decorator called sender_keyword, which if set,
3081         specifies the name of an argument which will be provided the bus
3082         name of the method caller.
3083
3084         * test/python/test-client.py, test/python/test-service.py: Add a
3085         method and test to check the sender_keyword functionality.
3086
3087 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
3088
3089         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
3090         empty reply so blocking calls don't block forever (Patch from Sjoerd 
3091         Simons <sjoerd at luon.net>)
3092
3093         * AUTHORS: Add Robert McQueen for his work on the Python
3094         Bindings and other parts of D-Bus
3095
3096 2005-11-07  Robert McQueen  <robot101@debian.org>
3097
3098         * python/decorators.py: Change emit_signal function to use the
3099         signature annotation of the signal when marhsalling the arguments from
3100         the service. Fix a bug where the code checking signature length
3101         against argument length referenced the wrong variable.
3102
3103         * python/introspect_parser.py: Avoid adding the type signature of
3104         signal arguments to any methods which occur after them in the
3105         introspection data (!) by making the parser a little more careful
3106         about its current state.
3107
3108         * python/service.py: Remove debug prints from last commit (again :D).
3109
3110         * test/python/test-client.py, test/python/test-service.py: Add test
3111         signals with signature decorators to test the strict marshalling code
3112         gives errors at the right time. Could do with checking the signals
3113         actually get emitted too, given that the test does nothing with
3114         signals at the moment...
3115
3116 2005-11-07  Robert McQueen  <robot101@debian.org>
3117
3118         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
3119         instances to stop madness of creating new instances representing
3120         the same bus connection all the time, rendering any tracking of
3121         match rules and bus names quite meaningless. Caught a bug where
3122         the private argument to SessionBus() and friends was being passed
3123         in as use_default_mainloop by mistake. Still some problems with
3124         multiple dbus_binding.Connection instances representing the same
3125         low-level connection (eg when you use both SessionBus() and
3126         StarterBus() in same process), but it's a lot better now than it
3127         was.
3128
3129         * python/dbus_bindings.pyx: Add constants with the return values
3130         for bus_request_name().
3131
3132         * python/service.py: Store bus name instances in a per-dbus.Bus cache
3133         and retrieve the same instances for the same name, so deletion can be
3134         done with refcounting. Also now throws some kind of error if you
3135         don't actually get the name you requested, unlike previously...
3136
3137         * test/python/test-client.py: Add tests for instance caching of buses
3138         and bus name objects.
3139
3140 2005-11-04  Robert McQueen  <robot101@debian.org>
3141
3142         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
3143         marshalling of boolean values. Add some booleans to the values in
3144         the test client.
3145
3146         * python/decorators.py, python/service.py: Add an 'async_callbacks'
3147         argument to the dbus.service.method decorator, which allows you to
3148         name arguments to take two callback functions for replying with
3149         return values or an exception.
3150
3151         * test/python/test-client.py, test/python/test-service.py: Add test
3152         case using asynchronous method reply functions, both return values and
3153         errors, and from within both the function itself and from a mainloop
3154         callback.
3155
3156         * python/decorators.py, python/service.py: Perform checking that the
3157         number of method/signal arguments matches the number of types in the
3158         signature at class loading time, not when you first introspect the
3159         class.
3160
3161         * python/service.py: Remove debug print left by the last commit.
3162
3163 2005-11-03  Robert McQueen  <robot101@debian.org>
3164
3165         * python/service.py: Heavy refactoring of method invocation, with
3166         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
3167         in favour of a new _message_cb that uses seperate functions for
3168         looking up the method to call, marshalling the return values, and
3169         sending exceptions as errors, and is easier to follow as a
3170         consequence.  Fixes some corner cases about returning things that
3171         don't match your declared out_signature, allows exceptions to define
3172         _dbus_error_name and have it be sent over the bus as the error name,
3173         and paves the way for cool stuff like heeding the message no reply
3174         flag, asynchronous method implementations, informing the method of the
3175         sender, and including backtraces in the error messages.
3176
3177         * test/python/test-client.py: Catch and print exceptions thrown in the
3178         async callback tests, rather than passing them to the low-level
3179         bindings to be ignored in a noisy and frustrating manner.
3180
3181 2005-11-03  Robert McQueen  <robot101@debian.org>
3182
3183         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
3184         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
3185         tweak others to be consistent.
3186
3187         * test/python/test-client.py: Tweak output of testInheritance.
3188
3189 2005-10-29  Robert McQueen  <robot101@debian.org>
3190
3191         * python/service.py: Major changes to allow multiple inheritance
3192         from classes that define D-Bus interfaces:
3193         
3194          1. Create a new Interface class which is the parent class of
3195             Object, and make the ObjectType metaclass into InterfaceType.
3196         
3197          2. Patch written with Rob Taylor to replace use of method_vtable
3198             with code that walks the class's __MRO__ (method resolution order)
3199             to behave like Python does when invoking methods and allow
3200             overriding as you'd expect. Code is quite tricky because
3201             we have to find two methods, the one to invoke which has the
3202             right name and isn't decorated with the /wrong/ interface,
3203             and the one to pick up the signatures from which is decorated
3204             with the right interface.
3205         
3206             The same caveats apply as to normal multiple inheritance -
3207             this has undefined behaviour if you try and inherit from two
3208             classes that define a method with the same name but are
3209             decorated with different interfaces. You should decorate
3210             your overriding method with the interface you want.
3211         
3212          3. Replace grungy introspection XML generation code in the metaclass
3213             with dictionaries that cope correctly with multiple inheritance
3214             and the overriding of methods. This also uses the signature
3215             decorations to provide correct introspection data, including
3216             the debut appearance of the types of your return values. :D
3217
3218         * test/python/test-client.py, test/python/test-service.py: Add a test
3219         case to try invoking an method that overrides one inherited from a
3220         D-Bus interface class.
3221
3222 2005-10-29  Robert McQueen  <robot101@debian.org>
3223
3224         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
3225         Add checking for the end of struct character when marshalling a
3226         struct in MessageIter.append_strict.
3227
3228         * python/examples/example-service.py,
3229         python/examples/gconf-proxy-service.py,
3230         python/examples/gconf-proxy-service2.py: Update to use gobject
3231         mainloop directly rather than appearing to depend on gtk.
3232
3233         * python/test/test-client.py, python/test/test-server.py: Remove
3234         obsolete and broken test scripts for old bindings. We have up to date
3235         and working tests in test/python/.
3236
3237 2005-10-29  Robert McQueen  <robot101@debian.org>
3238
3239         * python/decorators.py: Add optional arguments to the method and
3240         signal decorators to allow you to specify the signature of arguments
3241         and return values. Preserve the doc strings of signal functions in the
3242         decorated version, for pydoc and friends.
3243
3244         * python/dbus_bindings.pyx, python/proxies.py: Replace the
3245         parse_signature_block function with an iterable dbus.Signature()
3246         type. Fix a bug in MessageIter.append_strict where you could append
3247         anything by claiming it was a string.
3248
3249         * python/service.py: Use the out_signature decoration on methods to
3250         marshal return values, meaning you no longer require dbus.Array()
3251         or dbus.Dictionary() to indicate the type when returning empty
3252         arrays or dictionaries. Fix a bug where exceptions which are defined
3253         in __main__ are not turned into error replies.
3254
3255         * test/python/test-client.py, test/python/test-service.py: Add test
3256         for correct marshalling of return values according to out_signature.
3257         Fix a bug in the async call test where the error_handler is missing a
3258         self argument.
3259
3260 2005-10-29  Robert McQueen  <robot101@debian.org>
3261
3262         * glib/Makefile.am, glib/examples/Makefile.am,
3263         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
3264         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
3265
3266         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
3267
3268         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
3269         from Ubuntu by Daniel Silverstone to allow specifying match rules on
3270         the command line.
3271
3272 2005-10-27  Ross Burton  <ross@openedhand.com>
3273
3274         * dbus/dbus-marshal-header.c:
3275         Remove dead code.
3276
3277         * glib/dbus-gobject.c:
3278         Stop compiler warning.
3279
3280 2005-10-25  Ross Burton  <ross@openedhand.com>
3281
3282         * dbus/dbus-auth.c:
3283         * dbus/dbus-server-unix.c:
3284         * dbus/dbus-transport-unix.c:
3285         * glib/dbus-gmain.c:
3286         * glib/dbus-gobject.c:
3287         Add some const keywords.
3288
3289 2005-10-25  Ross Burton  <ross@openedhand.com>
3290
3291         * doc/dbus-specification.xml:
3292         Document the NoReply annotation.
3293
3294         * glib/dbus-binding-tool-glib.h:
3295         * glib/dbus-binding-tool-glib.c:
3296         Respect the NoReply annotation.
3297
3298 2005-10-24  Robert McQueen <robot101@debian.org>
3299
3300         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3301         derive from unicode instead of str, and encode/decode UTF-8 when
3302         marshalling/unmarshalling bus messages
3303
3304         * python/introspect_parser.py: encode introspection data as UTF-8
3305         before passing the buffer into libxml2
3306
3307         * test/python/test-client.py: add unicode test strings
3308
3309         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3310         ignore generated python test files
3311
3312 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3313
3314         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3315         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3316         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3317
3318         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3319         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3320         when constructing struct signatures
3321
3322         * python/_dbus.py (Bus): handle private connections using the
3323         private keyword in the constructor. defaults to private=False
3324         (Bus::close): new method to close a connection to the bus
3325
3326         * python/dbus_bindings.pyx (Connection::close): renamed method
3327         was previously called disconnect
3328         (bus_get): now supports getting a private connection
3329
3330         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3331         keyword is set to True.  if it is, execute the method without waiting
3332         for a reply
3333         (ProxyObject::_introspect_execute_queue): new method for executing
3334         all the pending methods that were waiting for the introspect to
3335         finish.  this is called when introspect either succeeds or fails
3336         (ProxyObject::_introspect_error_handler): call queued methods
3337
3338 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3339
3340         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3341         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3342
3343         * python/service.py (Object::_message_cb): handle exceptions correctly
3344         by sending them over the wire to the calling app.  This makes sure
3345         the client returns immediately instead of waiting the 15 seconds to
3346         timeout.
3347
3348         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3349         Add a test to benchmark how long it takes to introspect a service and 
3350         call a method which returns a large element (pretty fast)
3351
3352         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3353         method which pushes a lot of data
3354
3355 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3356
3357         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3358         reclaim memory outside of the loop and use del istead of just setting
3359         the key to None
3360
3361 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3362
3363         * python/service.py (ObjectType::_reflect_on_signal): Always close
3364         signal tag even when there are no arguments
3365
3366 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3367
3368         * configure.in: Set mono, mono-docs and Qt3 to default
3369         to no instead of auto when building.  These bindings do not
3370         have full time maintainers and will not be supported for the
3371         1.0 release.
3372
3373 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3374
3375         patches from Michael Krivoruchko <misha at sun.com>: 
3376         
3377         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3378         _dbus_connection_message_sent, 
3379         _dbus_connection_send_preallocated_unlocked_no_update, 
3380         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3381         is NULL when calling _dbus_verbose
3382
3383         * configure.in: check for functions getpeerucred and getpeereid
3384
3385         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3386         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3387         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3388         Patch was only tested on Solaris 10 x86 so it might be issues
3389         with other platforms (i.e. BSDs and MacOSX)
3390         
3391
3392 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3393
3394         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3395         instead of marshal basic so we can handle recursive types in a variant
3396
3397         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3398         in variants
3399
3400         * test/glib/test-service-glib.c, test-service-glib.xml
3401         (my_object_echo_variant [EchoVariant], 
3402         my_object_process_variant_of_array_of_ints123
3403         [ProcessVariantOfArrayOfInts123]): 
3404         Add two test methods
3405
3406         * python/introspect_parser.py: New module for parsing introspect
3407         data.
3408
3409         * python/dbus_bindings.pyx:
3410         (various places): when throwing errors fix to use errormsg instead 
3411         of message local variable because Pyrex can get confused with other 
3412         message variables (initial patch by Robert McQueen 
3413         <robert.mcqueen at collabora.co.uk>)
3414         (MessageIter::parse_signature_block): new method for getting the next
3415         block in a signiture.
3416         (MessageIter::append_strict): new method for appending values strictly
3417         using the passed in signature instead of guessing at the type
3418         (MessageItter:: append_dict, append_struct, append_array): use 
3419         signatures to marshal children if the signature is available
3420         
3421         * python/exceptions.py (IntrospectionParserException): new exception
3422
3423         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3424         introspected signatures if available, else we fall back to the
3425         old way of doing things.
3426         (ProxyObject::_introspect_reply_handler ): parse introspection data
3427         
3428         * python/service.py (ObjectType::_reflect_on_method): Properly
3429         terminate <method> if there are no args in the reflection data
3430
3431         * test/python/test-client.py: add tests for talking with the GLib
3432         test server.  This gives us better coverage for introspection since
3433         python to python will always generate arguments as variants.  It also
3434         allows us to test the robustness of the GLib bindings and interlanguage
3435         communications.
3436
3437         
3438 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3439
3440         * bus/driver.c (bus_driver_handle_introspect): Add signals
3441         to the introspect data. (patch from Daniel P. Berrange 
3442         <dan at berrange.com>)
3443
3444         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3445         
3446         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3447         _dbus_connection_run_builtin_filters): Changed these to
3448         be unlock_no_update functions and call 
3449         _dbus_connection_send_unlocked_no_update instead of
3450         dbus_connection_send to avoid locking errors.
3451         
3452         * doc/TODO: Removed the make Ping test TODO
3453         
3454 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3455
3456         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3457         We now copy the message from a DBusError and then free 
3458         the error object befor throwing the error
3459
3460         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3461         DBusBindingOutputMode enum which was causing a warning.
3462         #include <time.h> so using time_t is explicitly defined
3463
3464 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3465
3466         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3467         - dbus/dbus-bus.c
3468         (internal_bus_get): new method that take over the heavy lifting
3469         of dbus_bus_get and adds the ability to get a private connection
3470         to the bus
3471         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3472         interface as in previous versions
3473         (dbus_bus_get_private): new method that is a wrapper to 
3474         internal_bus_get to get a private connection to the bus
3475
3476         - dbus/dbus-bus.h
3477         (dbus_bus_get_private): add as a public libdbus interface
3478
3479         - dbus-1.pc.in: output system_bus_default_address and 
3480         sysconfdir variables so apps can use them when compiling
3481
3482 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3483         * dbus/qt: New Qt bindings
3484
3485 2005-09-12  Waldo Bastian  <bastian@kde.org>
3486
3487         * dbus/dbus-marshal-validate.c,
3488         doc/dbus-specification.xml, test/Makefile.am,
3489         test/test-names.c: allow hyphens in bus names.
3490
3491 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3492
3493         * test/data/auth/fallback.auth-script: we don't
3494         retry the EXTERNAL method when we know its going
3495         to fail anymore.
3496
3497 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3498
3499         * dbus/dbus-connection-internal.h: rename
3500         (add|remove|toggle)_(watch|timeout) to unlocked()
3501         
3502         * dbus/dbus-connection.c: ditto.
3503         
3504         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3505         Update some callers for the renaming.
3506
3507 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3508
3509         * dbus/dbus-auth.c: (record_mechanisms): don't
3510         retry the first auth mechanism because we know
3511         we're just going to get rejected again.
3512         
3513         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3514         Fix thinko ... and what a nasty little bugger to
3515         track down you were ...
3516
3517         * dbus/dbus-connection.c:
3518         (_dbus_connection_add_watch),
3519         (_dbus_connection_remove_watch): add note about
3520         these needing the connection to be locked.
3521         (_dbus_connection_get_dispatch_status_unlocked):
3522         set status to DATA_REMAINS when we queue the
3523         disconnected message.
3524         
3525         * bus/dispatch.c:
3526         (bus_dispatch): fix warning.
3527         (check_existent_service_no_auto_start):
3528         Expect ChildSignaled error too.
3529         (check_existent_hello_from_self): fix another
3530         couple of warnings.
3531         
3532 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3533
3534         Patches from James Willcox <snorp@snorp.net>
3535
3536         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3537
3538         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3539         support array "out" parameters.
3540
3541         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3542         for 16-bit int support.
3543
3544 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3545
3546         * Released 0.50
3547
3548         * Patch from Steve Grubb:
3549         - bus/activation.c (bus_activation_service_reload_test): clean up
3550         some indentation
3551         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3552         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3553         buffer overflows in the test suite.  This is non critical because
3554         it can not be exploited and this code is only run when doing a 
3555         make check.
3556
3557         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3558         - configure.in: Don't check and link against kdecore, only qt headers
3559         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3560         - gcj/org/freedesktop/dbus/Makefile.am:
3561         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3562         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3563         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3564         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3565         - tools/Makefile.am: Add platform extentions to binaries 
3566         (i.e. .exe on windows)
3567
3568         * configure.in: 
3569         - Make it so if no suitable version of python is found we only 
3570         disable building python instead of exiting the configure script
3571         - Require version 2.4 of glib for glib bindings
3572         - Up version to 0.50
3573
3574         * python/__init__.py: Sync version with libdbus to (0,50,0)
3575         
3576 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3577
3578         * dbus/dbus-object-tree.c (find_subtree_recurse):
3579         a couple of optimizations (bug #710):
3580         - do a binary search in the tree
3581         - insert a new child at the right place directly, no need for
3582           qsort anymore
3583         - do the "double alloc" thing when allocating children
3584
3585 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3586
3587         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3588
3589         * python/dbus_bindings.pyx: Memory management foo
3590         (global): remove hacky _user_data_references global list
3591         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3592         tuples. Unref user_data
3593         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3594         (Connection::__del__): Remove and replace with __dealloc__ method
3595         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3596         to keep tuple from being deallocated instead of the global var hack
3597         (Connection::register_object_path): Stuff user_data into a tuple.
3598         Use Py_INCREF to keep tuple from being deallocated instead of the 
3599         global var hack
3600         (Connection::register_fallback): Stuff user_data into a tuple.
3601         Use Py_INCREF to keep tuple from being deallocated instead of the 
3602         global var hack
3603         (GIL_safe_pending_call_notification): Don't unref the message
3604         because it gets unreffed when going out of scope.  Py_XDECREF
3605         the user_data
3606         (PendingCall::__del__): Remove and replace with __dealloc__ method
3607         (PendingCall::set_notify): ref the pending call because we will
3608         need it to stick around for when the notify callback gets called
3609         (Message::__del__): Remove and replace with __dealloc__ method
3610
3611         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3612         gthreads_init to match up with the dbus call
3613
3614         * python/glib.py (init_threads): Changed to threads_init to match
3615         up with gobject.threads_init().  init_threads is kept for backwards
3616         compat but will most likely be deprecated in the future
3617
3618         * test/python/test-client.py: 
3619         - revamp to use Python's unittest functionality
3620         - add async call tests
3621         - setup threads in glib and dbus so we make sure locks are working
3622         
3623 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3624
3625         * python/dbus_bindings.pyx 
3626         (_pending_call_notification, cunregister_function_handler, 
3627         cmessage_function_handler): All callback functions have been rearranged 
3628         to workaround a bug in Pyrex when working with the GIL which is Python's 
3629         global lock when dealing with threads.  They have been split into
3630         a wrapper function (which assumes the name of the old function) and
3631         a _GIL_safe_<function name> function which contains the functionality
3632         of the old function.  This ensures that Pyrex does not write code
3633         the lock is released.
3634         
3635
3636 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3637
3638         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3639         GIL global lock when calling back into Python
3640
3641 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3642
3643         * Release 0.36.2
3644
3645         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3646
3647         * bus/policy.c (bus_policy_allow_user): change default "user is
3648         allowed" to be "user has same uid as the bus itself"; any
3649         allow/deny rules will override.
3650
3651         * bus/session.conf.in: don't allow all users, since now by default
3652         the user that ran the bus can connect.
3653
3654 2005-08-26  Colin Walters  <walters@verbum.org>
3655
3656         * tools/dbus-print-message.c (print_message): Flush stdout
3657         after printing a message, so that redirecting to a file, then
3658         hitting Ctrl-C works.
3659
3660 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3661
3662         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3663         (EmptyMessage): new class that subclasses Message.  This is a workaround
3664         to a Pyrex bug that fails to call __del__ when the Message object goes out
3665         of scope.  For some reason subclassing Message fixes this bug
3666         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3667         - s/Message(_create=0)/EmptyMessage everywhere else
3668         
3669         * test/python/test-{server|client}.py: add the python/.libs directory
3670         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3671         get picked up from the system
3672
3673 2005-08-25  Colin Walters  <walters@verbum.org>
3674
3675         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3676         to Ryan Lortie for the suggestion.
3677
3678 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3679
3680         * test/python: Add python regression test
3681
3682         * configure.in: Add test/python/Makefile
3683
3684         * test/Makefile.am: Add the python directory to SUBDIRS
3685
3686 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3687
3688         * Release 0.36.1
3689
3690         * python/_dbus.py: 
3691         (Interface::connect_to_signal): propigate keywords for match on args
3692         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3693
3694         * python/proxies.py (ProxyObject::connect_to_signal):
3695         propigate keywords for match on args
3696
3697         * Makefile.am: point everything to pyexecdir since python borks
3698         on multilib
3699
3700 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3701
3702         * Release 0.36
3703
3704 2005-08-23  Colin Walters  <walters@verbum.org>
3705
3706         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3707
3708 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3709
3710         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3711         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3712         of defining DBusConnection ourselves.
3713
3714 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3715
3716         * python/dbus.pth: New path file to fix up problems when installing
3717         c libraries to lib64 and python files to lib.
3718
3719         * python/Makefile.am: install dbus.pth in the correct spot
3720
3721 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3722         * ChangeLog: clean up my last entry a bit
3723
3724         * doc/introspect.xsl: New stylesheet for converting introspection data
3725         into browser renderable xhtml. Contributed by Lennart Poettering.
3726
3727         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3728         Poettering.
3729
3730         * doc/dbus-tutorial.xml: 
3731         - Add Colin Walter to the Authors section for authoring the GLib
3732         section
3733         - Add descriptions of the new signature and type functionality
3734         in the Python complex type mapping section
3735         - Add a sidenote on the new args matching functionality in 
3736         the Python bindings
3737         - Fixed up some of the examples to use the gobject.MainLoop
3738         instead of gtk.main
3739         
3740         * python/_dbus.py:
3741         (Bus::_create_args_dict): New. Converts a hash of arg matches
3742         to a more useable format
3743         (Bus::add_signal_receiver): add a **keywords parameter for catching
3744         arg match parameters
3745         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3746         arg match parameters
3747         
3748         * python/matchrules.py:
3749         (MatchTree::exec_matches): Check for arg matches
3750         (SignalMatchRule::add_args_match): New method
3751         (SignalMatchRule::execute): Added args_list parameter as an optimization
3752         so we don't have to marshal the args more than once
3753         (SignalMatchRule::match_args_from_list): New method that checks to see
3754         if the rule's arg matches match an argument list.  Only arguments
3755         set in the rule are checked.
3756         (SignalMatchRule::match_args_from_rule): New method that checks to see
3757         if the rule's arg matches match another rule's.  All args have to match
3758         in order for this method to return true.  If either rule has more args
3759         then it is not a match.
3760         (SignalMatchRule::is_match): Add args match
3761         (SignalMatchRule::repr): Add args to the final output if they exist
3762
3763 2005-08-17  Ross Burton  <ross@burtonini.com>
3764
3765         * glib/dbus-gproxy.c:
3766         (dbus_g_proxy_call_no_reply): unref the message once sent.
3767         (dbus_g_proxy_call): protect against NULL proxy.
3768
3769 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3770
3771         * python/__init__.py: Version updated (0, 43, 0)
3772         
3773         * python/dbus_bindings.pyx: 
3774         - Fixed type objects to have self passed into __init__
3775         - Added the Variant type
3776         - Add the ability to specify types or signatures for Array, Variant 
3777         and Dictionary
3778         (Connection::send_with_reply_handlers): return a PendingCall object
3779         (_pending_call_notification): handle the case when an error is returned 
3780         without an error message in the body
3781         (MessageIter::get_boolean): return True or False instead of an integer
3782         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3783         and add checks for objects with embeded signatures or types (Array, 
3784         Variant and Dictionary)
3785         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3786         (MessageIter::append_dict): handle embeded types or signatures
3787         (MessageIter::append_array): handle embeded types or signatures
3788         (MessageIter::append_variant): new method
3789         
3790         * python/proxies.py:
3791         (DeferedMethod): New. Dummy executable object used when queuing calls 
3792         blocking on introspection data
3793         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3794         or shorter timeouts for method calls
3795         (ProxyObject): Add first pass at an introspection state machine
3796         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3797         introspection. 
3798         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3799         the usual mechanisms for sending messages.  This is to avoid a deadlock
3800         where the Intospect call would be queued waiting for the Introspect 
3801         call to finish ;-)
3802         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3803         when introspection returns with no error
3804         (ProxyObject::_introspect_error_handler): New.  This method is called 
3805         when introspection encounters an error
3806         (ProxyObject::__getattr__): Code to handle different introspection 
3807         states.  Queue async calls or block blocking calls if we are 
3808         introspecting.  Pass through as normal if we are not or are done with 
3809         introspecting.
3810         
3811         * python/service.py: Import signal and method from decorators.py
3812
3813         * python/types.py: Add Variant type
3814
3815 2005-08-16  Colin Walters  <walters@verbum.org>
3816
3817         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3818         DBusError message is NULL.
3819
3820 2005-08-09  Havoc Pennington  <hp@redhat.com>
3821
3822         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3823         malloc'd copy of the name parameter
3824
3825 2005-08-09  Havoc Pennington  <hp@redhat.com>
3826
3827         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3828         warning if the reply serial is set to 0
3829
3830 2005-08-04  Colin Walters  <walters@verbum.org>
3831
3832         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3833         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3834         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3835         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3836         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3837         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3838         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3839         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3840         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3841         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3842         
3843         Prefix name with _ to ensure they're not exported.  All callers
3844         updated.
3845
3846         * glib/dbus-gvalue.c (typecode_to_gtype)
3847         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3848         (signature_iter_to_g_type_dict)
3849         (signature_iter_to_g_type_array)
3850         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3851         (dbus_gtypes_from_arg_signature):
3852         Move to dbus-gsignature.c.
3853
3854         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3855         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3856         (dbus_binding_tool_output_glib_client): Ditto.
3857
3858         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3859         and dbus-gsignature.h
3860
3861         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3862         unused variable.
3863
3864 2005-08-03  Colin Walters  <walters@verbum.org>
3865
3866         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3867         catch any incompatible changes accidentally made.
3868
3869 2005-08-03  Havoc Pennington  <hp@redhat.com>
3870
3871         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3872         typo, from Julien Puydt
3873
3874         * bus/connection.c (bus_connection_disconnected): we were always
3875         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3876
3877 2005-08-01  Colin Walters  <walters@verbum.org>
3878
3879         Patch from Joe Markus Clarke:   
3880         
3881         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3882         use-after-free.
3883
3884 2005-08-01  Colin Walters  <walters@verbum.org>
3885         
3886         Patch from Joe Markus Clarke:   
3887         
3888         * tools/dbus-send.c (main): 
3889         
3890         Don't use C99 style initializers (bug #3933).
3891         
3892 2005-08-01  Colin Walters  <walters@verbum.org>
3893
3894         Patch from Joe Markus Clarke:   
3895
3896         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3897         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3898         * glib/dbus-gobject.c (write_interface):
3899
3900         Don't use C99 style initializers (bug #3933).
3901
3902 2005-07-31  Havoc Pennington  <hp@redhat.com>
3903
3904         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3905         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3906
3907 2005-07-30  Havoc Pennington  <hp@redhat.com>
3908
3909         * fix a bunch of Doxygen warnings and mistakes
3910
3911 2005-07-30  Havoc Pennington  <hp@redhat.com>
3912
3913         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3914         DBUS_BUILD_TESTS since it's now used in production code
3915
3916 2005-07-29  Havoc Pennington  <hp@redhat.com>
3917
3918         * test/glib/test-profile.c (write_junk): initialize the junk
3919         buffer so valgrind doesn't have a breakdown
3920
3921 2005-07-29  Havoc Pennington  <hp@redhat.com>
3922
3923         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3924         (match_rule_matches): remove unused arg
3925         (test_matching): add tests for match_rule_matches()
3926
3927         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3928         do arg0='foo' arg5='bar' in the match rules
3929         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3930
3931         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3932
3933 2005-07-29  Ross Burton  <ross@openedhand.com>
3934
3935         * dbus/dbus-connection.c:
3936         Don't create a DBusCondVar which is never used.
3937
3938 2005-07-27  Ross Burton  <ross@openedhand.com>
3939
3940         * dbus/dbus-message.c:
3941         Reduce the size of the maximum cached message to 10K.
3942
3943 2005-07-25  Ross Burton  <ross@openedhand.com>
3944
3945         * glib/dbus-gproxy.c:
3946         Remove matches when all proxies are unregistered.
3947
3948 2005-07-24  Colin Walters  <walters@verbum.org>
3949
3950         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3951         typedata; recursive arrays won't have it.
3952
3953         * test/glib/test-dbus-glib.c:
3954         * test/glib/test-service-glib.c:
3955         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3956         
3957 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3958
3959         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3960         proxies.py, service.py: Cleanup of code after running it through the
3961         pyflakes code checker mostly dealing with undefined names.  
3962         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3963
3964 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3965
3966         * NEWS: Update to 0.35.2
3967
3968 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3969
3970         * python/_dbus.py: Remove import of the dbus.services
3971         module as it no longer exists (patch from Dimitur Kirov)
3972
3973         * python/service.py (Object::__init__): Fixed typo
3974         s/name/bus_name (patch from Dimitur Kirov)
3975
3976         * python/examples/example-signal-emitter.py: import dbus.glib
3977         to get the main loop and use glib mainloop instead of gtk so
3978         X doesn't have to be running.
3979
3980         * python/examples/example-signal-recipient.py: import dbus.glib
3981         to get the main loop and use glib mainloop instead of gtk so
3982         X doesn't have to be running. Import the decorators module
3983         directly.
3984
3985         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3986         didn't pick up on but are needed to build
3987
3988         * configure.in: upped version to 0.35.2
3989
3990         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3991         added Colin Walters' SELinux API rename patch from head 
3992         s/unix sercurity context/selinux security context/
3993
3994 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3995
3996         * python/Makefile.am: dbus_binding.pxd.in should be included 
3997         in EXTRA_DIST not dbus_binding.pxd
3998         fix up $(srcdir) hopefully for the last time
3999
4000         * NEWS: Update to 0.35.1
4001
4002 2005-07-16  Colin Walters  <walters@verbum.org>
4003
4004         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
4005         from bus_driver_handle_get_connection_unix_security_context.  Update for
4006         error usage.
4007         (message_handlers): Update for renames.
4008
4009         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
4010         _dbus_string_init failure correctly.
4011         (bus_selinux_append_context): Convert SID to context.  Append it
4012         as a byte array.
4013         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
4014         hasn't been called.
4015
4016         * bus/selinux.h: Update prototype.
4017
4018         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
4019         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
4020
4021 2005-07-15  Colin Walters  <walters@verbum.org>
4022
4023         * doc/TODO: Add note about convenience wrappers.
4024
4025 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4026
4027         * NEWS: Update to 0.35
4028
4029 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4030
4031         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
4032         so distcheck doesn't fail
4033
4034         * glib/examples/Makefile.am: Add example-service.xml and 
4035         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
4036
4037         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
4038         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
4039
4040         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
4041         compiler looks in the right places during distcheck
4042
4043 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4044
4045         * glib/example/Makefile.am: Fix a typo which cause make distcheck
4046         to fail
4047
4048 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4049
4050         * python/examples/example-service.py,
4051         python/examples/example-signal-emitter.py: Fixed up examples
4052         for API changes
4053
4054 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4055
4056         * python/__init__.py: Upped to version (0,42,0) because of
4057         the API change
4058
4059 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4060
4061         * ChangeLog: fix date in last entry
4062
4063         * configure.in, bus/system.conf.in: add the ability to configure 
4064         the system bus user at compiletime with the --with-dbus-user flag
4065         (patch from Kristof Vansant)
4066
4067 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4068
4069         * bus/dispatch.c, test/test-service.c: Add testcase
4070         for sending messages to oneself (TODO item).
4071
4072         * python/service.py (class Object): Swap ordering of bus_name 
4073         and object_path parameters to better support inheritance.
4074
4075         * doc/dbus-tutorial.xml: change Python docs to reflect change
4076         in parameter ordering and fix the inheritance section.
4077
4078         * doc/TODO: remove sending message to oneself TODO item
4079
4080 2005-07-15  Ross Burton  <ross@openedhand.com>
4081
4082         * glib/dbus-gproxy.c:
4083         Fix a leak when calling methods via the proxy.
4084
4085 2005-07-15  Colin Walters  <walters@verbum.org>
4086
4087         * bus/selinux.c (bus_selinux_append_context): Wrap in
4088         HAVE_SELINUX.
4089
4090 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4091
4092         * python/_dbus.py (Bus::remove_signal_receiver):
4093         don't add a callback to the match if none has been passed in
4094         
4095         * python/matchrules.py (SignalMatchTree::remove): if the rule
4096         being matched does not have a callback treat it as a wildcard
4097         fix matching logic
4098
4099         * doc/dbus-tutorial.xml: Add Python tutorial
4100
4101 2005-07-14  Colin Walters  <walters@verbum.org>
4102
4103         * bus/driver.c
4104         (bus_driver_handle_get_connection_unix_security_context): New function.
4105         (message_handlers): Add.
4106
4107         * bus/selinux.c (bus_selinux_append_context): New function; appends
4108         security context to message.
4109
4110         * bus/selinux.h: Prototype.
4111
4112         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
4113
4114 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4115
4116         * bus/activation.c: clean up all tabs to be 8 spaces 
4117         (bus_activation_activate_service): make sure we clean up
4118         if activation fails
4119
4120         * bus/dispatch.c: clean up all tabs to be 8 spaces 
4121         (check_shell_fail_service_auto_start): New function
4122         tests to make sure we get fail properly when trying to auto start a service
4123         with a faulty command line
4124         (check_shell_service_success_auto_start): New function tests to make sure
4125         auto started services get the arguments on the command line
4126
4127         * test/test-shell-service.c: Added service for testing auto-starting with 
4128         command line arguments
4129
4130         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
4131         test/data/valid-service-files/debug-shell-echo-success.service.in:
4132         Added service files for testing auto-starting with command line arguments
4133
4134         * */.cvsignore: added a bunch of generated files to various .cvsignore files
4135
4136 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
4137
4138         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
4139         
4140         * dbus/Makefile.am: added new files to build.
4141
4142         * bus/activation.c (bus_activation_activate_service): support
4143         activation commands with parameters.
4144
4145         * test/shell-test.c: added test program for the shell parsing
4146         code.
4147
4148 2005-07-13  David Zeuthen  <davidz@redhat.com>
4149
4150         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
4151         64 bit signed and unsigned parameters
4152
4153 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
4154
4155         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
4156
4157         * python/service.py (class Name): renamed BusName to make it clearer
4158         what the object is for (a name on the bus)
4159
4160         * python/examples/example-service.py,
4161         python/examples/example-signal-emitter.py: change the Name object to
4162         BusName
4163
4164 2005-07-12  Colin Walters  <walters@verbum.org>
4165
4166         Patch from Jim Gettys <Jim.Gettys@hp.com>.
4167
4168         * tools/dbus-launch.c: Include sys/select.h.
4169
4170 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
4171         * python/dbus_bindings.pyx.in: removed
4172
4173         * python/dbus_bindings.pyx: Added.
4174         - Fixed some memleaks (patch from 
4175         Sean Meiners <sean.meiners@linspireinc.com>)
4176         - Broke out the #include "dbus_h_wrapper.h" and put it in its
4177         own pxd file (Pyrex definition)
4178         - Broke out glib dependancies into its own pyx module
4179         
4180         * python/dbus_bindings.pdx: Added.
4181         - Defines C class Connection for exporting to other modules
4182
4183         * python/dbus_glib_bindings.pyx: Added.
4184         - New module to handle lowlevel dbus-glib mainloop integration
4185
4186         * python/glib.py: Added.
4187         - Registers the glib mainloop when you import this module
4188
4189         * python/services.py: Removed (renamed to service.py)
4190         
4191         * python/service.py: Added.
4192         - (class Server): renamed Name
4193
4194         * python/__init__.py: Bump ro version (0,41,0)
4195         -don't import the decorators or service module
4196         by default.  These now reside in the dbus.service namespace
4197
4198         * python/_dbus.py (Bus::__init__): Add code run the main loop 
4199         setup function on creation 
4200
4201         * python/examples/example-service.py,
4202         python/examples/example-signal-emitter.py: update examples
4203
4204         * python/examples/gconf-proxy-service.py,
4205         python/examples/gconf-proxy-service2.py: TODO fix these up
4206
4207         * doc/TODO: Addition
4208         - Added a Python Bindings 1.0 section
4209         - added "Add match on args or match on details to match rules"
4210
4211
4212 2005-07-12  Colin Walters  <walters@verbum.org>
4213
4214         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
4215         (statemachine-glue.h): 
4216         * glib/examples/Makefile.am (example-service-glue.h) 
4217         (example-signal-emitter-glue.h): 
4218         * glib/Makefile.am (dbus-glib-error-switch.h): 
4219         Add libtool --mode=execute so we use the built library instead
4220         of any installed one.
4221
4222 2005-07-11  Colin Walters  <walters@verbum.org>
4223
4224         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
4225         (dbus_g_value_types_init): Remove assertion.
4226         (dbus_g_value_get_g_type, dbus_g_value_open)
4227         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
4228         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
4229         functions related to DBusGValue.  Now we marshal/demarshal
4230         structures as GValueArray.
4231         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
4232         structures.
4233         (signature_iter_to_g_type_array): Don't call
4234         signature_iter_to_g_type_struct.
4235         (signature_iter_to_g_type_struct): Delete.
4236         (dbus_gvalue_to_signature): Delete.
4237         (dbus_gvalue_to_signature): New function with same name as other
4238         one; we can convert structures to signatures.
4239         (demarshal_valuearray): New function.
4240         (get_type_demarshaller): Use it.
4241         (demarshal_recurse): Delete.
4242         (marshal_proxy): New function.
4243         (marshal_map): Warn if we can't determine signature from type.
4244         (marshal_collection_ptrarray): Ditto.
4245         (marshal_collection_array): Ditto.
4246         (get_type_marshaller): Use marshal_valuearray.
4247         (marshal_recurse): Delete.
4248         (_dbus_gvalue_test): Add some tests.
4249
4250         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
4251         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
4252         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4253         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4254         (dbus_g_value_free): Remove prototypes.
4255
4256         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
4257         G_TYPE_VALUE_ARRAY.
4258
4259         * glib/examples/example-service.c:
4260         * glib/examples/example-client.c: Implement GetTuple.
4261
4262         * test/glib/test-dbus-glib.c:
4263         * test/glib/test-service-glib.c:
4264         * test/glib/test-service-glib.xml: Add structure tests.
4265
4266 2005-07-10  Colin Walters  <walters@verbum.org>
4267
4268         * doc/TODO: Knock off some GLib items with this patch.
4269
4270         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
4271         (_dbus_gvalue_signals_error): New functions.
4272
4273         * glib/dbus-gvalue-utils.h: Prototype them.
4274
4275         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
4276         and change to not output const/retval flags for input args.  All
4277         callers updated.
4278         (invoke_object_method): Refactor to handle return values.  Add
4279         some more comments in various places.  Remove debug g_print.
4280
4281         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
4282
4283         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
4284         Handle G_TYPE_NONE.
4285         (compute_gsignature): New function; refactored from code from
4286         compute_marshaller and compute_marshaller_name.  Enhance to
4287         handle return values and async ops more cleanly.  Update for
4288         async ops returning NONE instead of BOOLEAN.
4289         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
4290         and output appropriate string.
4291         (generate_glue): Handle return value annotation.  Also don't dump
4292         constness flag for input arguments.
4293
4294         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
4295         files shared between installed library and utilities.
4296         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4297         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4298         binding tool can access gtype utility functions.
4299
4300         * test/glib/test-service-glib.c: 
4301         * test/glib/test-service-glib.xml: 
4302         * test/glib/test-dbus-glib.c: Add some tests for return values.
4303
4304 2005-07-09  Colin Walters  <walters@verbum.org>
4305
4306         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4307         argument if available, not method.
4308
4309         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4310         (invoke_object_method): First, remove some redundant
4311         GValues (object_value, error_value) in favor of working on
4312         array directly.  Second, rework constness to be less buggy.
4313         Now we iterate directly over the argument metadata instead
4314         of parallel iterating over output signature and metadata.
4315
4316         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4317
4318         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4319         annotation on input args.
4320         
4321 2005-07-09  Colin Walters  <walters@verbum.org>
4322
4323         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4324         Define.
4325
4326         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4327         annotation.
4328
4329         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4330         (method_dir_signature_from_object_info): Handle arg_iterate change.
4331         (write_interface): Ditto.
4332         (lookup_object_info): Don't barf if format_version is > 0.
4333         (invoke_object_method): Handle arg constness.
4334
4335         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4336         (arg_info_new): Create.
4337         (arg_info_unref): Destroy.
4338         (arg_info_get_annotations, arg_info_get_annotation) 
4339         (arg_info_add_annotation): New functions.
4340
4341         * glib/dbus-gidl.h: Prototype them.
4342
4343         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4344         args, disallow them in properties.
4345         (parse_annotation): Handle arg annotations.
4346
4347         * test/glib/test-service-glib.xml: 
4348         * test/glib/test-service-glib.c: Update to make some methods
4349         const.
4350
4351 2005-07-08  Colin Walters  <walters@verbum.org>
4352
4353         * test/glib/test-service-glib.xml: 
4354         * test/glib/test-service-glib.c:
4355         * test/glib/test-dbus-glib.c: Test a{sv}.
4356
4357         * glib/examples/statemachine/statemachine.c:
4358         * glib/examples/statemachine/statemachine-server.c:
4359         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4360         add progress bar, etc.
4361
4362         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4363         needed anymore due to generic array/map marshalling.
4364         (dbus_g_value_types_init): Don't register basic arrays or the
4365         string/string hash.
4366         (dbus_gtype_from_signature_iter): Don't try to recurse into
4367         variants.
4368         (dbus_gtype_to_signature): Check collection/map before type
4369         metadata.
4370         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4371         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4372         generic map creation/append functions instead of hash table
4373         specifically.
4374         (get_type_demarshaller): Handle maps.
4375         (demarshal_collection): Dispatch on collection type to either
4376         demarshal_collection_ptrarray or demarshal_collection_array.
4377         (get_type_marshaller): Handle maps.
4378         (marshal_collection): Dispatch collection type to either
4379         marshal_collection_ptrarray or marshal_collection_array.
4380         (_dbus_gvalue_test): New test.
4381
4382         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4383         (hash_free_from_gtype): Use it to free GValues.
4384         (hashtable_append): New function.
4385         (ptrarray_append): Fix prototype.
4386         (slist_append): Ditto.
4387         (_dbus_gvalue_utils_test): Extend tests.
4388
4389         * glib/dbus-gtype-specialized.c
4390         (dbus_g_type_specialized_init_append): Renamed from
4391         dbus_g_type_specialized_collection_init_append.  Remove const from
4392         value, since we steal it.
4393         (dbus_g_type_specialized_map_append): New function.
4394
4395         * glib/dbus-gtype-specialized.h: Update prototypes.
4396         Add DBusGTypeSpecializedMapAppendFunc.
4397
4398         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4399         _dbus_gvalue_test.
4400         
4401         * glib/dbus-gtest.h: Prototype it.
4402
4403 2005-07-08  Ross Burton  <ross@openedhand.com>
4404
4405         * dbus/dbus-glib.h:
4406         Add DBysGAsyncData for the async bindings.
4407
4408         * glib/dbus-binding-tool-glib.c:
4409         Re-enable the async bindings.
4410
4411         * test/glib/test-dbus-glib.c:
4412         Add a test for the generated async bindings.
4413
4414 2005-07-08  Colin Walters  <walters@verbum.org>
4415
4416         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4417         connection concept.
4418         
4419 2005-07-08  Colin Walters  <walters@verbum.org>
4420         
4421         * tools/Makefile.am: Kill of print-introspect in favor of using
4422         dbus-send --print-reply=literal.
4423
4424         * test/glib/test-service-glib.xml: 
4425         * test/glib/test-service-glib.c (my_object_get_objs): New test
4426         for "ao".
4427
4428         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4429         (main): Test GetObjs.
4430
4431         * glib/examples/statemachine/Makefile.am:
4432         * glib/examples/statemachine/sm-marshal.list:
4433         * glib/examples/statemachine/statemachine-client.c:
4434         * glib/examples/statemachine/statemachine-server.c:
4435         * glib/examples/statemachine/statemachine-server.xml:
4436         * glib/examples/statemachine/statemachine.c:
4437         * glib/examples/statemachine/statemachine.h:
4438         * glib/examples/statemachine/statemachine.xml:
4439
4440         New example.
4441
4442         * glib/examples/example-service.c (main): Move invocation
4443         of dbus_g_object_type_install_info earlier, to emphasize it
4444         should only be done once.
4445
4446         * glib/examples/example-signal-emitter.c (main): Ditto.
4447
4448         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4449
4450         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4451         (dbus_gvalue_marshal): Update prototypes.
4452
4453         * glib/dbus-gvalue.c: Update all marshalling functions to take
4454         const GValue instead of GValue.
4455         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4456         types.
4457         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4458         change.
4459         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4460         Return a newly-allocated string.
4461         (demarshal_proxy, demarshal_object_path, demarshal_object)
4462         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4463         we get the wrong types from message.
4464         (get_type_demarshaller): New function, extracted from
4465         dbus_gvalue_demarshal.
4466         (demarshal_collection): New function, demarshals generic
4467         collection.
4468         (dbus_gvalue_demarshal): Just invoke result of
4469         get_type_demarshaller.  Throw error if we don't have one.
4470         (marshal_garray_basic): Abort on OOM.
4471         (get_type_marshaller): New function, extracted from
4472         dbus_gvalue_marshal.
4473         (collection_marshal_iterator, marshal_collection): New functions;
4474         implements generic marshalling for an iteratable specialized
4475         collection.
4476         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4477
4478         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4479         G_TYPE_STRING.
4480         (ptrarray_value_from_gvalue): Ditto.
4481         (ptrarray_append, ptrarray_free): New functions.
4482         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4483         (slist_append, slist_end_append, slist_free): New functions.
4484         (dbus_g_type_specialized_builtins_init): Add append fuctions
4485         for GPtrArray and GSList.  Register GSList.
4486         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4487
4488         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4489         New.
4490         (dbus_g_type_specialized_collection_init_append)
4491         (dbus_g_type_specialized_collection_append)
4492         (dbus_g_type_specialized_collection_end_append): Prototype.
4493         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4494         end_append_func.
4495
4496         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4497         (dbus_g_type_specialized_collection_append) 
4498         (dbus_g_type_specialized_collection_end_append): New functions.
4499         (dbus_g_type_map_value_iterate): Take const GValue.
4500         (dbus_g_type_collection_value_iterate): Ditto.
4501
4502         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4503         _dbus_gvalue_utils_test.
4504         
4505         * glib/dbus-gtest.h: Prototype it.
4506
4507         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4508         using uninitialized owner_list.
4509         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4510         public API.
4511         (dbus_g_proxy_end_call_internal): Update to use error set
4512         from dbus_gvalue_demarshal instead of setting it here.
4513         (dbus_g_proxy_begin_call): Move return_if_fail here.
4514
4515         * glib/dbus-gobject.c (write_interface): Update for
4516         dbus_gtype_to_signature returning new string.
4517
4518         * configure.in: Add glib/examples/statemachine.
4519
4520 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4521
4522         * configure.in: Add a configure option, --with-console-auth-dir
4523         
4524         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4525         new setting.  Patch from Kay Sievers.
4526
4527 2005-07-06  Colin Walters  <walters@verbum.org>
4528
4529         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4530         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4531         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4532         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4533         Delete in favor of dbus_g_proxy_begin_call and
4534         dbus_g_proxy_cancel_call.
4535         (DBusGProxyCall, DBusGProxyCallNotify): New.
4536         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4537         data, and destroy function.  This replaces
4538         dbus_g_pending_call_set_notify.
4539         (dbus_g_proxy_cancel_call): Prototype.
4540         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4541
4542         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4543         pending_calls map.
4544         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4545         internal proxy for calls to the bus. Remove
4546         pending_nameowner_calls, now the internal proxy keeps track.
4547         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4548         pending_nameowner_calls.
4549         (got_name_owner_cb): Update prototype, and use
4550         dbus_g_proxy_end_call.
4551         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4552         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4553         favor of using internal proxy.
4554         (dbus_g_proxy_manager_unregister): Update to use
4555         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4556         (dbus_g_proxy_init): Initialize pending calls map.
4557         (dbus_g_proxy_constructor): New.
4558         (dbus_g_proxy_class_init): Add get/set property functions,
4559         constructor, and add NAME, PATH, and INTERFACE properties.
4560         (cancel_pending_call): New function.
4561         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4562         cancel them.
4563         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4564         (GPendingNotifyClosure): New structure.
4565         (d_pending_call_notify, d_pending_call_free): Moved here from
4566         dbus-glib.c.
4567         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4568         ordering.
4569         (manager_begin_bus_call): New internal function for talking to
4570         internal bus proxy.
4571         (dbus_g_proxy_new): Construct object using GObjet properties.
4572         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4573         Create closure of same, and insert call into map of pending calls.
4574         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4575         call.  Look up pending call in current set.  Remove it when we've
4576         completed.
4577         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4578         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4579         and destroy function directly.
4580         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4581         (dbus_g_proxy_call): Invoke with NULL callback.
4582         (dbus_g_proxy_cancel_call): New function, replaces
4583         dbus_g_pending_call_cancel.
4584
4585         * glib/dbus-gparser.c (validate_signature): Fix call to
4586         dbus_set_g_error.
4587
4588         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4589         New quark for attaching metadata to GType.
4590         (info_hash): Delete.
4591         (lookup_object_info): Look up using quark.
4592         (dbus_g_object_type_install_info): Check that a type is classed,
4593         not that it's an object.  Also just install type data using quark
4594         instead of using global hash.
4595
4596         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4597         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4598         (GPendingNotifyClosure): Delete.
4599         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4600         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4601
4602         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4603         client method generation until we can fix it...
4604         
4605         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4606         (load_from_service_thread_func): Ditto.
4607
4608         * tools/dbus-names-model.c (struct NamesModel): Hold
4609         DBusGProxyCall.
4610         (have_names_notify): Update prototype, use
4611         dbus_g_proxy_cancel_call.
4612         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4613
4614         * tools/dbus-monitor.c (filter_func): Update for print_message
4615         API change.
4616
4617         * test/glib/test-dbus-glib.c: Add more tests for async
4618         invocations.  Update many begin_call/end_call pairs to just use
4619         dbus_g_proxy_call.
4620
4621         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4622         allows us to dump print-introspect.c.
4623
4624         * tools/dbus-print-message.h (print_message): Add literal argument
4625         to print_message which is intended to allow printing arguments without
4626         metadata like "string=".
4627
4628         * tools/dbus-print-message.c (print_iter): Add literal argument.
4629         (print_message): Allow printing string messages literally.
4630
4631 2005-07-05  Colin Walters  <walters@verbum.org>
4632
4633         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4634         Remove value refcount leak, original patch from Jorn Baayen
4635         <jorn@openedhand.com>.  Also remove useless extra value in favor
4636         of prepending to value array directly.
4637
4638 2005-07-02  Colin Walters  <walters@verbum.org>
4639
4640         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4641
4642 2005-07-01  Colin Walters  <walters@verbum.org>
4643
4644         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4645         
4646         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4647         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4648         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4649         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4650
4651 2005-06-30  Colin Walters  <walters@verbum.org>
4652
4653         * test/glib/test-dbus-glib.c:
4654         * test/glib/test-service-glib.c:
4655         * test/glib/test-service-glib.xml: Update tests for new error
4656         setting bits, also add async tests (patch from Ross Burton).
4657
4658         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4659         DBUS_GLIB_THREADS_LIBS.
4660
4661         * glib/dbus-gproxy.c (get_name_owner)
4662         (dbus_g_pending_call_end_valist): Ditto.
4663
4664         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4665         domain (GQuark) to DBusGErrorInfo.  
4666         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4667         quark in error_metadata.  Take message interface as default
4668         error message interface.
4669         (gerror_to_dbus_error_message): Pass message interface.
4670         (dbus_set_g_error): Resurrected.
4671         (dbus_g_error_info_free): New function.
4672         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4673         of _peek to actually create the object class if it hasn't been
4674         created yet.
4675         (dbus_g_error_domain_register): New function.
4676
4677         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4678
4679         * glib/dbus-gparser.c (validate_signature): Ditto.
4680
4681         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4682         (dbus_g_error_domain_register): Prototype.
4683
4684         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4685         Update tests.
4686
4687 2005-06-29  Colin Walters  <walters@verbum.org>
4688
4689         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4690         DBUS_TYPE_G_OBJECT_PATH.
4691
4692         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4693         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4694         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4695         (dbus_g_object_path_get_g_type): New function.
4696         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4697         to DBUS_TYPE_G_OBJECT_PATH by default.
4698         (demarshal_proxy): Remove unused name variable.
4699         (demarshal_object_path, marshal_object_path): New functions.
4700         (demarshal_proxy_array, marshal_proxy_array): Delete.
4701         
4702         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4703         DBUS_TYPE_G_OBJECT_PATH to char *.
4704         (dbus_g_type_get_lookup_function): Map builtin
4705         DBUS_TYPE_G_OBJECT_PATH.
4706
4707         * test/glib/test-dbus-glib.c
4708         * test/glib/test-service-glib.c (my_object_objpath): 
4709         Adapt tests to new object path marshalling.
4710
4711 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4712
4713         * configure.in: force check for Python >= 2.4
4714
4715 2005-06-29  Colin Walters  <walters@verbum.org>
4716         
4717         Patch from Ross Burton <ross@openedhand.com>
4718         
4719         * glib/dbus-gobject.c (invoke_object_method): Unset object
4720         value in all cases, not only in async case.
4721
4722 2005-06-29  Colin Walters  <walters@verbum.org>
4723
4724         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4725         name_call for keeping track of any outgoing GetNameOwner call.
4726         Also add for_owner and associated.
4727         (struct _DBusGProxyManager): Add owner_names, which is hash table
4728         that maps a base name to a list of names it owns (that we're
4729         interested in).  Add pending_nameowner_calls which is a list of
4730         all outstanding GetNameOwner; avoids us having to iterate over
4731         every proxy.  Add unassociated_proxies which keeps track of name
4732         proxies with no associated name owner.
4733         (dbus_g_proxy_manager_unref): Destroy owner_names.
4734         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4735         name refcounts.
4736         (find_name_in_info, name_owner_foreach)
4737         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4738         (dbus_g_proxy_manager_monitor_name_owner)
4739         (dbus_g_proxy_manager_unmonitor_name_owner)
4740         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4741         New functions; they manipulate the owner_names mapping.
4742         (got_name_owner_cb): New function.
4743         (get_name_owner): New function, extracted from
4744         dbus_g_proxy_new_for_name_owner.
4745         (dbus_g_proxy_manager_register): For now we need to keep track of
4746         all NameOwnerChanged.  Also if the proxy is for a name, if we
4747         don't already know the name owner, queue a new GetNameOwner
4748         request and add it to our list of unassociated proxies.  Otherwise
4749         inc the refcount.
4750         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4751         cancel any pending GetNameOwner call, etc.
4752         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4753         the owner_names mapping to look up the current names for the
4754         signal source, and dispatch to any proxies for that name.
4755         (dbus_g_proxy_new): Initialize new members.
4756         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4757         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4758         (dbus_g_pending_call_end_valist): New function, extracted from
4759         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4760         but want to use the GLib infrastructure.  Also note how many
4761         arguments in reply were over.
4762         (dbus_g_pending_call_end): New function, just call
4763         dbus_g_pending_call_end_valist.
4764         (dbus_g_proxy_end_call_internal): Just call
4765         dbus_g_pending_call_end_valist.
4766
4767         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4768         of builtin marshaller for STRING_STRING_STRING.
4769
4770         * test/glib/test-dbus-glib.c: 
4771         * test/glib/test-service-glib.c:
4772         * test/glib/test-service-glib.xml:
4773         Extend tests to cover name proxies, destruction of owner proxies,
4774         etc.
4775         
4776         * glib/examples/example-signal-recipient.c
4777         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4778         
4779         * tools/dbus-send.c (main): Print D-BUS error name in addition
4780         to message.
4781
4782 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4783
4784         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4785         cmessage_function_handler): Patch from 
4786         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4787         by using the Py_GILState_Ensure/Release to synchronize with the
4788         python runtime.
4789         
4790 2005-06-28  Ray Strode  <rstrode@redhat.com>
4791
4792         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4793         babysitter helper process on last unref, bug #2813.
4794
4795 2005-06-27  Colin Walters  <walters@verbum.org>
4796
4797         * test/glib/test-dbus-glib.c: 
4798         * test/glib/test-service-glib.c:
4799         * test/glib/test-service-glib.xml:
4800         Test hash table signal emitting.
4801
4802         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4803         types to their fundamental basis types, since this is what
4804         marshallers operate on.  Also add an entry for VOID__BOXED.
4805         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4806
4807 2005-06-26  Havoc Pennington  <hp@redhat.com>
4808
4809         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4810         from Don Park
4811
4812 2005-06-26  Colin Walters  <walters@verbum.org>
4813
4814         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4815         (dbus_g_error_set): New public function from its ashes; used by
4816         both service-side method implementation and GLib bindings
4817         internals.
4818         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4819         (_dbus_glib_test): Add some tests.
4820
4821         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4822
4823         * test/glib/test-service-glib.c (my_object_throw_error): Use
4824         dbus_g_error_set.
4825
4826         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4827         errors thrown by dbus_g_error_set.
4828
4829         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4830
4831         * glib/dbus-gparser.c (validate_signature): Ditto.
4832
4833         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4834         (dbus_g_proxy_end_call_internal): Ditto.
4835
4836         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4837         converts DBUS_ERROR_x to DBUS_GERROR_x.
4838         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4839
4840         * doc/TODO: Remove error TODO.
4841
4842         * doc/dbus-tutorial.xml: Update with documentation about error
4843         handling.
4844
4845         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4846         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4847         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4848
4849 2005-06-22  Colin Walters  <walters@verbum.org>
4850         
4851         Patch from Ross Burton <ross@openedhand.com>
4852
4853         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4854
4855 2005-06-20  Colin Walters  <walters@verbum.org>
4856
4857         * configure.in: Add glib/examples.
4858
4859         * glib/Makefile.am: Add examples/
4860
4861         * glib/examples/.cvsignore
4862         * glib/examples/Makefile.am
4863         * glib/examples/example-client.c
4864         * glib/examples/example-service.c
4865         * glib/examples/example-service.xml
4866         * glib/examples/example-signal-emitter.c
4867         * glib/examples/example-signal-emitter.xml
4868         * glib/examples/example-signal-recipient.c:
4869         New files; GLib binding examples, ported from
4870         python/examples.
4871
4872 2005-06-20  Colin Walters  <walters@verbum.org>
4873
4874         * dbus/dbus-glib.h: 
4875         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4876         dbus_g_proxy_call.
4877
4878         * glib/dbus-binding-tool-glib.c: 
4879         * doc/dbus-tutorial.xml: 
4880         * test/glib/test-dbus-glib.c: Update for rename.
4881         
4882 2005-06-20  Colin Walters  <walters@verbum.org>
4883
4884         Patch suggested by Ross Burton <ross@openedhand.com>
4885
4886         * glib/dbus-gobject.c (export_signals): Free signal name.
4887         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4888         memory leak.  Add a bit of documentation.
4889         (dbus_g_method_return_error): Free context, and note we do
4890         so.
4891
4892 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4893
4894         * dbus/dbus-glib.h:
4895         * glib/dbus-gobject.c:
4896         * glib/dbus-gproxy.c:
4897         * glib/dbus-gvalue.c: Predeclare structs as 
4898         typedef struct _Something Something instead of 
4899         typedef struct Something Something, so we can 
4900         redeclare the prototypes. Other GNOME libraries 
4901         do this already.
4902
4903 2005-06-17  Colin Walters  <walters@verbum.org>
4904
4905         * tools/dbus-names-model.c (have_names_notify): Fix call
4906         to dbus_g_proxy_end_call.
4907         
4908 2005-06-17  Colin Walters  <walters@verbum.org>
4909
4910         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4911         spew warnings if we get malformed remote signals.
4912
4913         * glib/dbus-gobject.c (propsig_iterate): New function.
4914         (lookup_object_info): New function, extracted from
4915         lookup_object_and_method.
4916         (introspect_properties, introspect_signals): Delete; these
4917         are merged into write_interface.
4918         (write_interface): Write out signals and properties here;
4919         dump the org.gtk.object stuff and use the interface given
4920         in the introspection data blob.  Also fix up property XML.
4921         (lookup_values): New function.
4922         (introspect_interfaces): Gather a mapping from interface to a
4923         list of its methods, signals, and properties, then write out
4924         each interface.
4925         (lookup_object_and_method): Use lookup_object_info.
4926         (struct DBusGSignalClosure): Add interface.
4927         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4928         we can just use the constant data.
4929         (dbus_g_signal_closure_finalize): Don't free signal name.
4930         (signal_emitter_marshaller): Use interface from signal closure.
4931         (export_signals): Only export signals mentioned in introspection
4932         blob.
4933         (dbus_g_connection_register_g_object): Warn if we have no
4934         introspection data for an object.
4935         (funcsig_equal): Remove unused variable.
4936         (dbus_g_object_register_marshaller): Take varargs instead of
4937         list.
4938         (dbus_g_object_register_marshaller_array): New function,
4939         extracted from old dbus_g_object_register_marshaller.
4940
4941         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4942         signals and property data.
4943         (write_quoted_string): New function, extracted from generate_glue.
4944         (generate_glue): Write signals and properties to introspection
4945         blob.
4946
4947         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4948         exported_signals and exported_properties.
4949         (dbus_g_object_register_marshaller): Update prototype.
4950         (dbus_g_object_register_marshaller_array): Prototype.
4951         
4952         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4953
4954         * test/glib/test-service-glib.c: Add new test signals and method
4955         to emit them.
4956
4957         * test/glib/test-service-glib.xml: Add some test signals.
4958
4959         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4960         and my-object-marshal.h
4961         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4962         my-object-marshal.c.
4963         (my-object-marshal.c, my-object-marshal.h): Implement.
4964
4965         * test/glib/.cvsignore: Update.
4966
4967         * doc/TODO: Remove two GLib TODO items fixed by this
4968         patch.
4969
4970 2005-06-16  Colin Walters  <walters@verbum.org>
4971
4972         * doc/TODO: Update for GLib bindings.
4973         
4974 2005-06-16  Colin Walters  <walters@verbum.org>
4975
4976         * glib/dbus-binding-tool-glib.c:
4977         * glib/dbus-gobject.c:
4978         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4979         from Ross Burton, for his GLib bindings work.
4980
4981 2005-06-16  Colin Walters  <walters@verbum.org>
4982
4983         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4984         to iterate instead of walking to G_TYPE_INVALID.
4985
4986         Patch based on a patch from Ryan Gammon.
4987
4988 2005-06-16  Colin Walters  <walters@verbum.org>
4989
4990         * bus/bus.c (bus_context_new): Set parser to NULL
4991         after we unref it (Patch from Chris Boscolo, #2174).
4992         
4993 2005-06-16  Colin Walters  <walters@verbum.org>
4994
4995         * python/dbus_bindings.pyx.in: Import size_t,
4996         __int64_t, __uint64_t, and __signed.
4997
4998         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4999         Define cmsg struct, output it.
5000         (_dbus_read_credentials_unix_socket):
5001         Use cmsg struct.
5002         
5003         Patch from Joe Markus Clarke for FreeBSD support.
5004         
5005 2005-06-16  Colin Walters  <walters@verbum.org>
5006
5007         * tools/dbus-send.c (append_array): Use strtok.
5008         (append_dict): New function.
5009         (type_from_name): New function, extracted from main.
5010         (main): Handle sending dicts.
5011
5012         * tools/dbus-print-message.c (print_iter): Print dict
5013         entries.
5014         
5015 2005-06-16  Colin Walters  <walters@verbum.org>
5016
5017         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
5018         values as the empty string (#2948).
5019         
5020 2005-06-16  Colin Walters  <walters@verbum.org>
5021
5022         * dbus/Makefile.am:
5023         * mono/doc/Makefile.am:
5024         * test/glib/Makefile.am:
5025
5026         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
5027
5028 2005-06-16  Colin Walters  <walters@verbum.org>
5029
5030         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
5031         header byte order from expected byte order (Patch from Chris Wilson, #3475).
5032
5033         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
5034         Increment pointer after swapping fixed array.  Add assertion
5035         for array length.
5036                 
5037 2005-06-15  Colin Walters  <walters@verbum.org>
5038
5039         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
5040         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
5041         
5042 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5043
5044         * NEWS: Update to 0.34
5045
5046 2005-06-15  David Zeuthen  <davidz@redhat.com>
5047
5048         * configure.in (LT_CURRENT): Revert back to 1 as the library
5049         hasn't changed and we've certainly not committed to protocol
5050         stability yet.  All this does is to break ABI. See commit note
5051         from hp@redhat.com 2005-05-05 for details.
5052         
5053 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5054
5055         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
5056         (_dbus_connection_run_builtin_filters): New method
5057         (dbus_connection_dispatch): Run the builtin filters which in turn
5058         runs the peer filter which handles Ping messages.
5059
5060         * doc/TODO: 
5061          - Ping isn't handled: This patch fixes it
5062          
5063          - Add a test case for the Ping message: added TODO item
5064
5065 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5066
5067         * dbus/dbus-message.c:
5068         (dbus_message_has_path): New method
5069         (dbus_message_has_interface): New method
5070         (dbus_message_has_member): New method
5071
5072         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
5073         New method
5074
5075         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
5076         the keyring directory is private to the user
5077
5078         * doc/TODO:
5079          - The convenience functions in dbus-bus.h should perhaps have
5080          the signatures that they would have if they were autogenerated
5081          stubs. e.g. the acquire service function. We should also evaluate
5082          which of these functions to include, in light of the fact that
5083          GLib/Qt native stubs will probably also exist.: Punted
5084
5085          - add dbus_message_has_path(), maybe has_member/interface:
5086          fixed in this patch
5087
5088          - in dbus-keyring.c, enforce that the keyring dir is not
5089          world readable/writable: Fixed in this patch
5090
5091 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5092
5093         * dbus/dbus-marshal-validate.h: Added a new validation
5094         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
5095         out of memory errors when validating signitures
5096
5097         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
5098         in places where we previously used DBUS_VALID and a FALSE return 
5099         value to indicate OOM
5100         
5101         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
5102         Use a stack to track the number of elements inside containers.  The 
5103         stack values are then used to validate that dict entries have only two
5104         elements within them.
5105         (validate_body_helper): check the reason for failure when validating
5106         varients
5107         
5108         * dbus/dbus-message.c (load_message): use 
5109         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
5110         DBUS_VALID and a FALSE return value to indicate OOM
5111
5112         * doc/TODO: remove "- validate dict entry number of fields" as this
5113         patch fixes it
5114
5115 2005-06-14  David Zeuthen  <davidz@redhat.com>
5116
5117         * bus/bus.c (process_config_every_time): Drop existing conf-dir
5118         watches (if applicable) and add new watches
5119
5120         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
5121         (main): Setup SIGIO signal handler if using D_NOTIFY
5122
5123         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
5124
5125         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
5126         (merge_included): Also merge conf_dirs list
5127         (bus_config_parser_unref): Clear conf_dirs list
5128         (include_dir): Add directory to conf_dirs list
5129         (bus_config_parser_get_conf_dirs): New function
5130
5131         * bus/dir-watch.[ch]: New files
5132
5133         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
5134
5135         * configure.in: Add checks for D_NOTIFY on Linux
5136
5137 2005-06-14  Colin Walters  <walters@verbum.org>
5138
5139         * glib/dbus-binding-tool-glib.c:
5140         * glib/dbus-gobject.c:
5141         * glib/dbus-gvalue.c: Fix indentation and brace style.
5142         
5143 2005-06-14  Ross Burton <ross@openedhand.com>.
5144
5145         * glib/dbus-glib.h: Make DBusGMethodInvocation
5146         a private structure.  Rearrange prototypes a bit.
5147         
5148         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
5149         documentation for first_arg_type.
5150         
5151         * glib/dbus-gobject.c: Move DBusGMethodInvocation
5152         here, add documentation.  Move dbus_g_method_return
5153         and dbus_g_method_return_error into public API
5154         section.
5155
5156 2005-06-14  Colin Walters  <walters@verbum.org>
5157
5158         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
5159         Add missing return statements, noticed by Ross Burton.
5160         
5161 2005-06-13  Ross Burton <ross@openedhand.com>.
5162
5163         * glib/dbus-gobject.c: Handle errors on message
5164         demarshalling by sending error message back.
5165         * glib/dbus-gvalue.c: Initialize return variables.
5166
5167 2005-06-13  Colin Walters  <walters@verbum.org>
5168
5169         * glib/Makefile.am: Fix thinko in last patch.
5170
5171 2005-06-13  Colin Walters  <walters@verbum.org>
5172
5173         * glib/Makefile.am: Move dbus-gtype-specialized.c
5174         and dbus-gtype-specialized.h into a _HEADERS variable,
5175         install them.
5176
5177 2005-06-12  Colin Walters  <walters@verbum.org>
5178
5179         Async signals and various bugfixes and testing by
5180         Ross Burton <ross@openedhand.com>.
5181
5182         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
5183         (dbus_gvalue_genmarshal_name_from_type)
5184         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
5185         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
5186         (dbus_g_value_types_init, dbus_gtype_from_signature)
5187         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
5188         (dbus_gtypes_from_arg_signature): New function prototypes.
5189         (dbus_gvalue_demarshal): Take context and error arguments.
5190         (dbus_gvalue_demarshal_variant): New function.
5191         (dbus_gvalue_demarshal_message): New function.
5192         (dbus_gvalue_store): Delete.
5193
5194         * glib/dbus-gvalue.c:
5195
5196         File has been almost entirely rewritten; now we special-case
5197         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
5198         hash tables correctly, etc.  Full support for recursive values
5199         is not yet complete.
5200
5201         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
5202         argument of signal to G_TYPE_POINTER since we now pass a
5203         structure.
5204         (lookup_g_marshaller): Delete in favor of
5205         _dbus_gobject_lookup_marshaller.
5206         (marshal_dbus_message_to_g_marshaller): Use
5207         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
5208         to handle remote signal callbacks.
5209         (dbus_g_proxy_new_from_proxy): New function; creates a new
5210         DBusGProxy by copying an existing one.
5211         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
5212         (dbus_g_proxy_get_path): New functions.
5213         (dbus_g_proxy_marshal_args_to_message): New function;
5214         factored out of existing code.
5215         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
5216         from a varargs array.
5217         (dbus_g_proxy_begin_call_internal): New function.
5218         (dbus_g_proxy_end_call_internal): New function.
5219         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
5220         as arguments; simply invoke dbus_g_proxy_begin_call_internal
5221         after collecting args into value array.
5222         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
5223         invoke dbus_g_proxy_end_call_internal.
5224         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
5225         end_call_internal.
5226         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
5227         types.
5228         (array_free_all): New function.
5229         (dbus_g_proxy_add_signal): Take GTypes.
5230
5231         * glib/dbus-gobject.h:
5232         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5233         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
5234         Prototype.
5235
5236         * glib/dbus-gobject.c: Add a global marshal_table hash which
5237         stores mappings from type signatures to marshallers.  Change lots
5238         of invocations of dbus_gtype_to_dbus_type to
5239         dbus_gtype_to_signature.
5240         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5241         (introspect_signals): Fix test for query.return_type.
5242         (set_object_property): Update invocation of dbus_gvalue_demarshal.
5243         (invoke_object_method): Many changes.  Handle asynchronous
5244         invocations.  Convert arguments with
5245         dbus_gvalue_demarshal_message.  Handle errors.  Use
5246         DBusSignatureIter instead of strlen on args. Handle all arguments
5247         generically.  Special-case variants.
5248         (dbus_g_method_return, dbus_g_method_return_error): New function.
5249         (DBusGSignalClosure): New structure, closes over signal
5250         information.
5251         (dbus_g_signal_closure_new): New function.
5252         (dbus_g_signal_closure_finalize): New function.
5253         (signal_emitter_marshaller): New function; is special marshaller
5254         which emits signals on bus.
5255         (export_signals): New function; introspects object signals and
5256         connects to them.
5257         (dbus_g_object_type_install_info): Take GType instead of
5258         GObjectClass.
5259         (dbus_g_connection_register_g_object): Invoke export_signals.
5260         (dbus_g_connection_lookup_g_object): New function.
5261         (DBusGFuncSignature) New structure; used for mapping type
5262         signatures to marshallers.
5263         (funcsig_hash): New function; hashes DBusGFuncSignature.
5264         (funcsig_equal): New function; compares DBusGFuncSignature.
5265         (_dbus_gobject_lookup_marshaller): New function.
5266         (dbus_g_object_register_marshaller): New function; used to
5267         register a marshaller at runtime for a particular signature.
5268
5269         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
5270
5271         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
5272         which notes a server method implementation should be
5273         asynchronous.
5274
5275         * glib/dbus-binding-tool-glib.c
5276         (dbus_binding_tool_output_glib_server): Call
5277         dbus_g_value_types_init.
5278         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
5279         variants specially.
5280         (dbus_g_type_get_lookup_function): Turn GType into an invocation
5281         of a lookup function.
5282         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
5283         (write_untyped_out_args): New method; write output arguments.
5284         (write_formal_declarations_for_direction): Function for
5285         writing prototypes.
5286         (write_formal_parameters_for_direction): Function for
5287         writing implementations.
5288         (write_typed_args_for_direction): Function for writing
5289         arguments prefixed with GTypes.
5290         (write_async_method_client): Write out async version
5291         of method.
5292
5293         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
5294         (dbus_g_type_get_marshal_name): Move mapping from GType
5295         to marshal name into here.
5296         (dbus_g_type_get_c_name): Move into here.
5297         (compute_marshaller): Convert signature to type with
5298         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5299         (compute_marshaller_name): Ditto.
5300         (compute_marshaller): Handle async signal annotations.
5301         (gather_marshallers): Return if we don't have a known
5302         prefix.
5303         (generate_glue): Collect introspection blob here, and
5304         write all of the blob at the end.  This allows an object
5305         with multiple interfaces to work.
5306         Mark async methods in introspection blob.
5307
5308         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5309         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5310         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5311
5312         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5313         avoids people accidentally using DBUS_TYPE_* which should
5314         not be necessary anymore.
5315         Do include dbus-gtype-specialized.h, which are utilities
5316         for GLib container types.
5317         Add various #defines for types such as
5318         DBUS_TYPE_G_BOOLEAN_ARRAY.
5319         (DBusGValueIterator, DBusGValue): Define, not fully used
5320         yet.
5321         (dbus_g_value_get_g_type): Type for recursive value.
5322         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5323         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5324         (dbus_g_value_free): Prototypes.
5325         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5326         (dbus_g_proxy_set_interface): Prototype.
5327         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5328         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5329         types.
5330         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5331         Accessors.
5332         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5333         doing async invocations.
5334         (dbus_g_method_return, dbus_g_method_return_error):
5335         Prototypes.
5336         * doc/dbus-tutorial.xml: Update GLib section.
5337         
5338         * tools/dbus-viewer.c (load_child_nodes): Update
5339         for new invocation type of dbus_g_proxy_end_call.
5340         (load_from_service_thread_func): Ditto.
5341
5342         * tools/print-introspect.c (main): Ditto.
5343
5344         * tools/dbus-names-model.c (have_names_notify)
5345         (names_model_reload, names_model_set_connection)
5346         Use GTypes.
5347
5348         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5349         needed since Python bindings use GLib bindings.
5350
5351         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5352         Add --prefix argument.
5353
5354         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5355         unneeded --ignore-unsupported arg.
5356         
5357         * test/glib/test-service-glib.c: 
5358         * test/glib/test-service-glib.xml:
5359         * test/glib/test-dbus-glib.c: Add many more tests.
5360
5361 2005-06-06  David Zeuthen  <davidz@redhat.com>
5362
5363         * doc/TODO: Add item about need to remove deprecated functions.
5364
5365         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5366
5367         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5368         to repair the ABI which was broken with the last commit.
5369
5370 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5371
5372         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5373         (dbus_connection_disconnect): renamed to dbus_connection_close 
5374         for API symmetry with dbus_connection_open
5375         (_dbus_connection_open_internal): 
5376         s/dbus_connection_disconnect/dbus_connection_close
5377
5378         * dbus/dbus-bus.c (dbus_bus_get):
5379         s/dbus_connection_disconnect/dbus_connection_close
5380
5381         * bus/connection.c (bus_connections_unref, 
5382         bus_connections_setup_connection, bus_connections_expire_incomplete):
5383         s/dbus_connection_disconnect/dbus_connection_close
5384
5385         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5386         kill_client_connection_unchecked, check_hello_connection):
5387         s/dbus_connection_disconnect/dbus_connection_close
5388
5389         * bus/bus.c (new_connection_callback):
5390         s/dbus_connection_disconnect/dbus_connection_close
5391
5392         * tools/dbus-send.c (main):
5393         s/dbus_connection_disconnect/dbus_connection_close
5394
5395         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5396         s/dbus_connection_disconnect/dbus_connection_close
5397         
5398         * test/test-service.c (path_message_func, filter_func):
5399         s/dbus_connection_disconnect/dbus_connection_close
5400         
5401         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5402         
5403 2005-05-25  Colin Walters  <walters@verbum.org>
5404
5405         * dbus/dbus-protocol.h: Move various bus service #defines such
5406           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5407           dbus/dbus-shared.h.
5408         * dbus/dbus-shared.h: Various defines moved here.
5409         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5410
5411 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5412
5413         * python/__init__.py: Python bindings deserve a minor version
5414         update.  Upped to (0, 40, 2)
5415
5416 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5417
5418         * python/decorators.py: add explicitly_pass_message decorator
5419         for passing in the dbus message as keyword for edge case signal
5420         handling
5421
5422         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5423         to conform with what dbus expects for match rules
5424         (SignalMatchRule.execute): add the dbus message as a keyword
5425         if the signal handler has requested it
5426
5427         * python/examples/example/signal-recipient.py: added some more
5428         examples on how to hook up to signals
5429
5430 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5431
5432         * python/decorators.py: import dbus_bindings
5433
5434         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5435         SignalMatchNode): new classes that implement wildcard signal
5436         callback matching using a tree lookup. Heavily modified from a
5437         patch sent by Celso Pinto (fd.o bug #3241)
5438
5439         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5440         use new match classes to handle signals.
5441
5442 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5443         
5444         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5445
5446 2005-05-18  Havoc Pennington  <hp@redhat.com>
5447
5448         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5449         gettext. Not really worth requiring yet perhaps, but any
5450         production quality 1.0 would require it so we should go ahead and
5451         get things set up. We do have a couple token calls to
5452         bindtextdomain in the code already.
5453
5454 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5455
5456         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5457         when using recursive g_main_loops
5458
5459         * python/_dbus.py (class Bus): add the ProxyObjectClass
5460         alias for ProxyObject to make it easier for the Twisted 
5461         networking framework to integrate dbus.
5462
5463         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5464         alias for ProxyMethod to make it easier for the Twisted 
5465         networking framework to integrate dbus. 
5466
5467 2005-05-11  Ross Burton  <ross@openedhand.com>
5468
5469         * glib/dbus-glib-tool.c: Add --prefix argument.
5470         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5471         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5472         Add prefix argument.
5473         (generate_glue): Pass prefix argument down.
5474         (dbus_binding_tool_output_glib_server): Pass prefix to
5475         glib-genmarshal.
5476         
5477 2005-05-11  Colin Walters  <walters@verbum.org>
5478
5479         * tools/dbus-send.c (append_array): New function.
5480         (append_arg): Broken out from main.
5481         (main): Add cheesy hack to send arrays and variants.
5482         (usage): Update.
5483         * tools/dbus-print-message.c (print_iter): Broken out
5484         from main.
5485
5486 2005-05-11  Colin Walters  <walters@verbum.org>
5487
5488         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5489         New function, returns signature string for signature iter.
5490         * dbus/dbus-signature.h: Prototype it.
5491         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5492         New function, returns signature string for message iter.
5493         (dbus_message_iter_get_array_len): New function, returns
5494         length of array.
5495         (dbus_message_iter_get_fixed_array): Fix assertion; this
5496         function should be used when the iter is pointing to the
5497         contents of an array
5498         * dbus/dbus-message.h: Prototypes.
5499         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5500         New function; returns length of an array.
5501         * dbus/dbus-marshal-recursive.h: Prototype it.
5502         
5503 2005-05-11  Colin Walters  <walters@verbum.org>
5504
5505         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5506         compilation error.
5507         
5508 2005-05-08  Havoc Pennington  <hp@redhat.com>
5509
5510         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5511         daemon's pid, not the parent's pid, to the file descriptor.
5512         Reported by Taj Morton.
5513
5514 2005-05-05  Havoc Pennington  <hp@redhat.com>
5515
5516         * configure.in (LT_*): add notes on how the libtool versioning
5517         works to save thinking. Increment soname to indicate protocol
5518         breakage (though really the library interface hasn't changed I
5519         guess)
5520
5521         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5522         verify the GUID received from server matches what we were
5523         expecting, if we had an expectation
5524
5525         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5526         (_dbus_auth_get_guid_from_server): new function
5527         (send_begin): parse the OK args
5528
5529         * doc/dbus-specification.xml: add GUID to the auth protocol
5530
5531 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5532
5533         * Fix my name in previous changelog ;)
5534
5535         * python/proxies.py (ProxyObject.__getattr__): add further patch
5536         from Anthony Baxter to throw an AttributeError when python 
5537         __special__ functions are called instead of marshling them over 
5538         the bus (Bug#1685 comment 3).
5539
5540 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5541
5542         * python/Makefile.am: changed to use pyexecdir for the binding
5543         shared libraries (Bug#2494)
5544
5545         * python/exceptions.py: bring exceptions over from the bindings
5546         so they can be used in applications (Bug#2036)
5547         Make all exceptions derive from DBusException
5548
5549         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5550         of classes so that print obj doesn't throw an exception (Bug #1685)
5551
5552 2005-05-03  Ross Burton  <ross@openedhand.com>
5553
5554         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5555         Return if we get an error during registration.  Set up a
5556         weak reference on object to unregister if object is destroyed.
5557         (unregister_gobject): New function.
5558         
5559 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5560
5561         * python/dbus_bindings.pyx.in: 
5562         - added new type classes for hinting to the marashaler what type 
5563         to send over the wire
5564         - added int16 and uint16 marshalers
5565         - Fixed a bug in the type constants that caused int32 to go out
5566         as uint16 over the wire
5567         * python/dbus.py: split up into different files and renamed _dbus.py
5568         * python/__init__.py, python/_util.py, python/decorators.py, 
5569         python/exceptions.py, python/proxies.py, python/services.py,
5570         python/types.py: new files split off from dbus.py
5571         * python/Makefile.am: Add new files, remove dbus.py and 
5572         install all python files to <python module dir>/dbus
5573         * python/examples/*: Added #!/usr/bin/env python to the top of
5574         every example.  Patch provided by Tatavarty Kalyan
5575
5576 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5577
5578         * NEWS: Update to 0.33
5579
5580 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5581
5582         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5583         method for doing async calls
5584         (_pending_call_notification): New C function for handling pendning call
5585         callbacks
5586         (set_notify): New method for setting pending call notification
5587         
5588         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5589         Async capabilities added to remote method calls
5590         (Sender): class removed
5591         (RemoteService): class removed
5592         (ObjectTree): class removed for now
5593         (RemoteObject): Renamed to ProxyObject
5594         (RemoteMethod): Renamed to ProxyMethod
5595         (method): Decorator added for decorating python methods as dbus methods
5596         (signal): Decorator added for decorating python methods as signal emitters
5597         (ObjectType): Metaclass added for generating introspection data and the
5598         method callback vtable
5599         (Interface): Wrapper class added to wrap objects in a dbus interface
5600         (Object): Uses ObjectType as its metaclass and exports Introspect
5601         of the org.freedesktop.DBus.Introspectable interface
5602         (ValidationException, UnknownMethodException): new exceptions
5603
5604         * python/examples/*: Modified to fit with the new bindings
5605
5606 2005-04-23  Havoc Pennington  <hp@redhat.com>
5607
5608         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5609         reported by Tony Houghton
5610
5611         * test/test-service.c (main): test
5612         dbus_connection_get_object_path_data()
5613
5614         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5615         the exact_match
5616         (_dbus_object_tree_get_user_data_unlocked): new function used by
5617         dbus_connection_get_object_path_data()
5618         (do_register): add assertion test for get_user_data_unlocked
5619         (object_tree_test_iteration): more tests
5620
5621         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5622         new function from Dan Reed to let you get the user data from 
5623         dbus_connection_register_object_path()
5624
5625 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5626
5627         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5628         in numerous places that did not account for the NULL terminator
5629         (signature_from_seed): changed the manual string copy loop to 
5630         just use strcpy instead
5631         make check should now pass
5632
5633 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5634
5635         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5636         so that it allows messages that are not signals to pass in 
5637         NULL as the interface.
5638
5639 2005-04-18  David Zeuthen  <davidz@redhat.com>
5640
5641         * glib/dbus-gmain.c (io_handler_destroy_source): 
5642         (timeout_handler_destroy_source, connection_setup_free): 
5643         Also unref the source to avoid memory leaks.
5644
5645 2005-04-13  David Zeuthen  <davidz@redhat.com>
5646
5647         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5648         more reasonable, yet still totally arbitrary, value :-). 
5649
5650 2005-04-13  David Zeuthen  <davidz@redhat.com>
5651
5652         * doc/TODO: Added an "important for 1.0" item about selinux
5653         allow/deny messages
5654
5655 2005-04-13  David Zeuthen  <davidz@redhat.com>
5656
5657         * bus/selinux.c: Add c-file-style to top of file
5658         (log_audit_callback): Don't free the data here anymore
5659         (bus_selinux_check): Don't take spid and tpid since appending
5660         that to auxdata may OOM.
5661         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5662         to the caller if we are OOM by taking an error object.
5663         (bus_selinux_allows_send): -do-
5664
5665         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5666         and bus_selinux_allows_send
5667
5668         * bus/bus.c (bus_context_check_security_policy): Pass error and
5669         pass on OOM thrown by bus_selinux_allows_send()
5670
5671         * bus/services.c (bus_registry_acquire_service): Pass error and
5672         pass on OOM thrown by bus_selinux_allows_acquire_service()
5673
5674 2005-04-13  Havoc Pennington  <hp@redhat.com>
5675
5676         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5677         message at a time to avoid monopolizing the main loop, bug 
5678         #2953 from Benjamin Otte
5679
5680 2005-04-09  Havoc Pennington  <hp@redhat.com>
5681
5682         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5683         possible overlap, fix from Daniel Reed
5684         (fixup_alignment): fix signedness warnings
5685         (_dbus_string_append_unichar): ditto
5686
5687 2005-04-09  Havoc Pennington  <hp@redhat.com>
5688
5689         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5690
5691         * glib/dbus-glib-tool.c (main): fix warning
5692
5693         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5694
5695         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5696         add a new function that can be used in simple applications that
5697         don't have a main loop and are willing to block
5698
5699 2005-04-05  David Zeuthen  <davidz@redhat.com>
5700
5701         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5702
5703         * glib/dbus-gmain.c:
5704         (io_handler_destroy_source): Remove from list of IO handlers
5705         of the ConnectionSetup object
5706         (timeout_handler_destroy_source): -do- for timeout handlers
5707         (io_handler_source_finalized): Don't remove from list since
5708         we now do that in io_handler_destroy_source(). Renamed from
5709         io_handler_source_destroyed
5710         (timeout_handler_source_destroyed): -do- for timeout handlers
5711         (connection_setup_free): It is now safe to iterate over all
5712         IO and timeout handlers as the _destroy_source removes them
5713         from the list synchronously
5714
5715 2005-03-30  Havoc Pennington  <hp@redhat.com>
5716
5717         * configure.in: change check to gtk 2.4
5718
5719         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5720         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5721         to 2.4
5722
5723 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5724
5725         * News: Update 0.32
5726
5727         * HACKING: Fixed realease instructions.  configure.in should be updated to
5728           the next release by the person who made the last release.
5729
5730 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5731
5732         * python/lvalue_cast_post_process.py - removed.  Patch has been
5733           submitted to Pyrex maintainers that fixes gcc4.0 errors
5734
5735         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5736
5737 2005-03-24  Daniel Reed  <n@ml.org>
5738
5739         * tools/Makefile.am: Make print-introspect and
5740         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5741
5742 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5743
5744         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5745
5746         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5747           had in Red Hat packages for a while but for some reason never 
5748           got merged upstream
5749           (_dbus_is_a_number): New checks if a string
5750           can be converted to a number and does the conversion if it can
5751           (_dbus_user_database_lookup): Add check to see if the given username
5752           is a udi.  This allows udi's to be used instead of usernames in the
5753           config file.
5754           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5755           is a gdi.  This allows gdi's to be used instead of groupnames in the
5756           config file.
5757
5758 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5759
5760         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5761           code so that it compiles with gcc4.0
5762
5763         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5764           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5765           results back to dbus_binding.c
5766
5767 2005-03-20  Colin Walters  <walters@verbum.org>
5768
5769         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5770
5771         * configure.in: Require GTK+ 2.6.
5772         
5773 2005-03-20  Colin Walters  <walters@verbum.org>
5774
5775         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5776
5777 2005-03-17  Tom Parker  <palfrey@tevp.net>
5778
5779         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5780         print DBUS_UID_UNSET; instead print passed username.  Also
5781         be sure to actually use gid looked up in cache.
5782         
5783         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5784         for DBUS_GID_UNSET and groupname.
5785
5786 2005-03-17  Colin Walters  <walters@verbum.org>
5787
5788         * bus/print-introspect.c: Move to tools/.
5789         * bus/run-with-tmp-session-bus.sh: Ditto.
5790         
5791         * glib/Makefile.am (dbus-glib-bindings.h): Move
5792         generation to tools/Makefile.am.
5793
5794         * test/glib/run-test.sh: Update to handle move
5795         of run-with-tmp-session-bus.sh.
5796
5797         * test/glib/test-service-glib.c: Update to handle
5798         move of dbus-glib-bindings.h.
5799
5800         * tools/print-introspect.c: Moved here
5801         from bus/, and ported to GLib bindings.
5802
5803         * tools/run-with-tmp-session-bus.sh: Moved here
5804         from bus/.
5805
5806         * tools/Makefile.am: Generate dbus-glib-bindings.h
5807         and dbus-bus-introspect.xml here.
5808
5809         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5810         Update.
5811
5812 2005-03-17  Colin Walters  <walters@verbum.org>
5813
5814         * bus/driver.c (write_args_for_direction): Use
5815         _dbus_string_get_const_data to retrieve string;
5816         _dbus_string_get_const_data_len doesn't actually return
5817         a NULL-terminated substring.
5818
5819         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5820         (main): Change to use org_freedesktop_DBus_request_name
5821         instead of using g_proxy_begin_call/end_call.
5822
5823 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5824
5825         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5826         generating the finalizer.  Fixes from Ben Maurer.
5827
5828 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5829
5830         * mono/BusDriver.cs: Update method names: ListServices
5831         becomes ListNames; GetOwner becomes GetNameOwner.
5832
5833         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5834         onto the eval stack when removing the delegate.
5835
5836 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5837
5838         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5839         LT_CURRENT.  Set it to the autoconf variable.
5840                                                                                 
5841         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5842         classes that disconnects the signal handler delegate from the
5843         service object.  Fixes a big leak of proxy objects on the
5844         client side of things.  Patch from Ben Maurer
5845         <bmaurer@ximian.com>
5846
5847 2005-03-12  Colin Walters  <walters@verbum.org>
5848
5849         * bus/driver.c (write_args_for_direction): New function,
5850         parses a type signature into arguments and outputs to
5851         XML.
5852         (bus_driver_handle_introspect): Use it instead of
5853         hardcoding XML for certain signatures.
5854         
5855         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5856         dependency on dbus-daemon.
5857
5858         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5859         argument, pass it to dbus_binding_tool_output_glib_client.
5860
5861         * glib/dbus-binding-tool-glib.c
5862         (generate_client_glue): Protect against multiple inclusion.
5863         (dbus_binding_tool_output_glib_client): Add
5864         G_BEGIN_DECLS/G_END_DECLS.
5865
5866         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5867         Change to just take iface prefix directly.
5868         (write_formal_parameters): Clarify error message.
5869         (check_supported_parameters): New function; checks to see type
5870         signatures of method parameters are supported.
5871         (generate_client_glue): Handle ignore_unsupported flag.
5872         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5873         parameter.
5874
5875         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5876         --ignore-unsupported by default until glib bindings
5877         support arrays.
5878
5879 2005-03-11  Colin Walters  <walters@verbum.org>
5880
5881         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5882         install it.
5883
5884         * bus/print-introspect.c: New file; prints introspection
5885         data for a given name and object path.
5886
5887         * bus/run-with-tmp-session-bus.sh: New file, refactored
5888         from test/glib/run-test.sh.  Creates a temporary session
5889         bus and runs another program.
5890
5891         * test/glib/run-test.sh: Refactor to invoke
5892         run-with-tmp-session-bus.sh.
5893
5894         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5895         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5896         macros instead of hardcoding.
5897
5898         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5899
5900 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5901
5902         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5903         this unref; it doesn't match up evenly in some codepaths.
5904         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5905         this evenly matches with the ref near the top of this function.
5906
5907 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5908
5909         * dbus/dbus-object-tree.c
5910         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5911         and we try to unregister a path that's not registered, still go
5912         through the process of unlocking and don't just return.
5913
5914 2005-03-09  Colin Walters  <walters@verbum.org>
5915
5916         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5917         to this are generated for client-side wrappers.  Invokes a
5918         D-BUS method and returns reply values.  
5919
5920         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5921         function; writes signature string for argument direction.
5922         (write_args_for_direction): Change to pass input values directly
5923         instead of via address, and fix indentation.
5924         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5925         make generated wrappers inlineable.
5926
5927         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5928         note about using dbus_type_is_fixed.
5929
5930         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5931         dbus/dbus-signature.c as dbus_type_is_fixed.
5932
5933         All callers updated.
5934
5935         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5936         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5937
5938         * dbus/dbus-signature.h: Prototype.
5939
5940         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5941         error printf code.
5942
5943         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5944         appropriate instead of just freeing it.
5945         (main): Free returned strings using g_free.
5946
5947         * test/glib/Makefile.am (test-service-glib-glue.h)
5948         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5949
5950         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5951         simply maps a simple D-BUS type to GType.
5952         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5953         GType.
5954         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5955         initialize the value with it.
5956         (dbus_gvalue_binding_type_from_type): Unused, delete.
5957         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5958         various types instead of unmarshalling to value data directly.
5959         Remove can_convert boolean.
5960         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5961         returning directly instead of using can_convert boolean.
5962         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5963         Stores a GValue in a pointer to a value of its corresponding C
5964         type.
5965
5966         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5967         add dbus_gvalue_store.
5968
5969 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5970
5971         Fix a bunch of lifecycle and memory management problems
5972         in the mono bindings.
5973
5974         * mono/Arguments.cs (Arguments): Implement IDisposable
5975
5976         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5977         strictly a static class.
5978
5979         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5980         delegates into this file.
5981         (Connection): Implement IDisposable.
5982         (Dispose): Disconnect the connection and set the raw connection
5983         pointer to IntPtr.Zero.
5984         (~Connection): Call Dispose().
5985         (RegisterObjectPath): Added.  Manages the registration of object
5986         paths so we can cleanly disconnect them at dispose/finalize time.
5987         (UnregisterObjectPath): Ditto.
5988         (set_RawConnection): Unregister all of the object paths when
5989         changing the underlying DBusConnection.  Add them back onto the
5990         new connection, if any.
5991
5992         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5993         more unmanaged resources anymore, so it's not necessary.  Move all
5994         the DBusObjectPathVTable stuff out of here.
5995         (Handler): Save references to our delegates so that they don't get
5996         finalized.  Call Connection.RegisterObjectPath() instead of
5997         dbus_connection_register_object_path() directly.
5998         (Message_Called): Dispose the message after we're finished with
5999         it.
6000
6001         * mono/Message.cs (Message): Implement IDisposable.
6002         (Dispose): Dispose the Arguments, and set the RawMessage to
6003         IntPtr.Zero.
6004         (SendWithReplyAndBlock): We own the ref to the reply that comes
6005         back from dbus_connection_send_with_reply_and_block() so add a
6006         comment about that and unref it after we've constructed a managed
6007         MethodReturn class around it.  Fixes a big, big leak.
6008
6009         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
6010         method.
6011         (BuildSignalHandler): After we've sent the Signal message, dispose
6012         of it.
6013         (BuildMethod): Dispose of the method call and reply messages after
6014         we've sent the message and extracted the data we want from the
6015         reply.
6016
6017         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
6018         anymore.
6019         (Service_FilterCalled): Dispose of the message after we're
6020         finished with it.
6021
6022 2005-03-08  Joe Shaw  <joeshaw@novell.com>
6023
6024         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
6025         After we attach our pending call to the connection, unref
6026         it.  Fixes a leak.
6027  
6028         * mono/Connection.cs (set_RawConnection): Disconnect our
6029         filter and match callbacks from the old connection and
6030         reconnect them to the new connection, if any.
6031
6032         * mono/DBusType/Array.cs: "Code" is a static member, so
6033         don't use "this" to refer to it.  Fix for stricter checking
6034         in Mono 1.1.4.
6035  
6036         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
6037         object path that we pass into unmanaged code.
6038  
6039         * mono/DBusType/String.cs (Append): Don't leak the string
6040         that we pass into unmanged code.
6041
6042 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
6043         * NEWS: Update for 0.31
6044
6045         * configure.in: Release 0.31
6046         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
6047
6048         * qt/Makefile.am: fixed build
6049
6050         * dbus/Makefile.am: soname bump for libdbus
6051
6052         * glib/Makefile.am: soname bump for libdbus-glib
6053
6054 2005-03-05  Havoc Pennington  <hp@redhat.com>
6055
6056         * dbus/dbus-sysdeps.c:
6057         (pseudorandom_generate_random_bytes_buffer): fix to have no return
6058         value
6059         (_dbus_generate_random_bytes_buffer): fix return value
6060
6061         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
6062         checks actually work, from Tom Parker <fdo@tevp.net>
6063
6064 2005-03-01  Colin Walters  <walters@verbum.org>
6065
6066         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
6067         functions copied from dbus-glib-tool.c.
6068         (main): Convert lots of error code to use them.
6069         Also add some testing for introspection bits.
6070
6071 2005-03-01  Colin Walters  <walters@verbum.org>
6072         
6073         * doc/TODO: Remove introspection signature TODO.
6074
6075 2005-02-27  Colin Walters  <walters@verbum.org>
6076
6077         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
6078         Change return value to const char * instead of int so we can do
6079         full signatures.
6080         (struct PropertyInfo, struct ArgInfo): Store char *.
6081         (property_info_new, arg_info_new): Update parameters, strdup.
6082         (property_info_unref, arg_info_unref): Free.
6083
6084         * glib/dbus-gidl.h: Update prototypes.
6085
6086         * glib/dbus-gparser.c (basic_type_from_string): Delete.
6087         (validate_signature): New function, just validates signature and
6088         sets GError.
6089         (parse_property, parse_arg): Invoke validate_signature.  Store
6090         signature instead of just type code.
6091
6092         * glib/dbus-gvalue.c (base_type_from_signature): New utility
6093         function to return a primary type for a signature, dropping
6094         information about types in container types.
6095         (dbus_gvalue_genmarshal_name_from_type)
6096         (dbus_gvalue_binding_type_from_type)
6097         (dbus_gvalue_ctype_from_type): Update to take full signature
6098          instead of type code.
6099         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
6100
6101         * glib/dbus-gvalue.h: Update prototypes for above.
6102
6103         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
6104         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
6105         (introspect_properties, introspect_signals, write_interface):
6106         Update to handle signatures, and remove usage of
6107         _dbus_gutils_type_to_string.
6108         (handle_introspect): Print out type codes instead of e.g. "string"
6109         in hardcoded introspection XML; also use x_AS_STRING constants
6110         instead of hardcoding in string.
6111
6112         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
6113         to string.  Remove usage of _dbus_gutils_type_to_string.
6114
6115         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
6116
6117         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
6118         deletion.
6119         
6120         * glib/dbus-binding-tool-glib.c (compute_marshaller)
6121         (compute_marshaller_name, generate_glue): Handle signature change
6122         to string.
6123         (write_formal_parameters, write_args_for_direction): Ditto, and
6124         remove FIXME.
6125
6126         * tools/dbus-tree-view.c (type_to_string): Delete.
6127         (info_set_func_text): Update to print full signatures.
6128
6129         * test/glib/test-service-glib.xml: Change types to new
6130         introspection format.
6131
6132 2005-02-26  Havoc Pennington  <hp@redhat.com>
6133
6134         * doc/TODO: remove the "guid" item
6135
6136         * test/glib/test-profile.c (no_bus_thread_func): use open_private
6137         (with_bus_thread_func): use open_private
6138
6139         * dbus/dbus-connection.c (dbus_connection_open_private): new
6140         function that works like the old dbus_connection_open()
6141         (dbus_connection_open): now returns an existing connection if
6142         possible
6143
6144         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
6145         through the GUID to the transport
6146
6147         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
6148         GUID in hex-encoded form.
6149
6150         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
6151         pass GUID argument in to the transport
6152
6153         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
6154         guid argument
6155
6156         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
6157
6158         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
6159
6160 2005-02-25  Havoc Pennington  <hp@redhat.com>
6161
6162         * doc/dbus-specification.xml: document the GUID thing
6163
6164         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
6165         globally unique ID for the server, and put a "guid=hexencoded"
6166         field in the address
6167
6168         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
6169
6170         * dbus/dbus-message.c: ditto
6171
6172         * dbus/dbus-dataslot.c: ditto
6173
6174         * dbus/dbus-list.c: ditto
6175
6176         * dbus/dbus-internals.h: wait, just include
6177         dbus-threads-internal.h here
6178         
6179         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
6180         use in main library
6181
6182         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
6183
6184 2005-02-24  Colin Walters  <walters@verbum.org>
6185
6186         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
6187
6188 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
6189
6190         * glib/Makefile.am: added dbus-gobject.h to sources list
6191         so distcheck doesn't fail
6192         
6193 2005-02-24  Havoc Pennington  <hp@redhat.com>
6194
6195         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
6196         you must disconnect before unref, since locking and other things
6197         are screwed up otherwise. Fix assorted other locking stuff.
6198
6199         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
6200         fix compilation
6201
6202         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
6203         into a private header and don't export from the library
6204
6205         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
6206
6207 2005-02-24  Colin Walters  <walters@verbum.org>
6208         
6209         * dbus/dbus-signature.c: New file; implements various functions
6210         related to type signatures.  Includes an interator for parsing,
6211         validation functions.
6212         (dbus_type_is_basic): Moved here from
6213         dbus-marshal-basic.c:_dbus_type_is_basic.
6214         (dbus_type_is_container): Moved here from
6215         dbus-marshal-basic.c:_dbus_type_is_container.
6216
6217         All callers of _dbus_type_is_container and _dbus_type_is_basic
6218         updated, and include dbus-signature.h.
6219
6220         * dbus/dbus-signature.h: New file; prototypes for the above.
6221
6222         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
6223         dbus-signature.h.
6224
6225         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
6226         function factored out of _dbus_first_type_in_signature.
6227         (_dbus_first_type_in_signature_c_str): New function; returns first
6228         type code for a type signature character.
6229
6230         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
6231         handle function moves.
6232
6233         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
6234
6235         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
6236         function; skips to next complete type in type signature.
6237         Implemented using previous skip_one_complete_type.  Now
6238         skip_one_complete_type just delegates to
6239         _dbus_type_signature_next.
6240
6241         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
6242         to dbus-signature.c
6243         (_dbus_type_is_container): Ditto.
6244
6245         * doc/dbus-specification.xml: Update introspection sample to
6246         use real type signatures.
6247
6248         * dbus/dbus-test.h: Prototype signature test.
6249
6250         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
6251         signature tests.
6252
6253         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
6254
6255 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
6256
6257         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
6258         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
6259
6260 2005-02-21  Colin Walters  <walters@verbum.org>
6261
6262         * dbus/dbus-test-main.c (main): Take optional specific test
6263         argument.
6264
6265         * dbus/dbus-test.c (run_test): New function, runs a test function
6266         with no data directory.
6267         (run_data_test): Like above, but takes data directory.
6268         (dbus_internal_do_not_use_run_tests): Take
6269         specific test argument.  Replace lots of cut n' paste code
6270         with run_test and run_data_test.
6271
6272         * dbus/dbus-test.h: Update prototype for
6273         dbus_internal_do_not_use_run_tests.
6274
6275 2005-02-20  Havoc Pennington  <hp@redhat.com>
6276
6277         Fix bugs reported by Daniel P. Berrange
6278         
6279         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
6280         (protected_change_watch): new function
6281         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
6282         (_dbus_server_add_watch): change to work like the
6283         dbus-connection.c equivalents; like those, probably kind of
6284         busted, but should at least mostly work for now
6285         (dbus_server_disconnect): drop the lock if we were already
6286         disconnected, patch from Daniel P. Berrange
6287
6288         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
6289         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
6290         same stuff
6291
6292         * doc/TODO: todo about unscrewing this mess
6293
6294 2005-02-19  Colin Walters  <walters@verbum.org>
6295
6296         * glib/dbus-binding-tool-glib.c
6297         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6298
6299         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6300         as errno.h and sys/stat.h.
6301         (lose): New function, prints error with
6302         newline and exits.
6303         (lose_gerror): Similar, but takes GError for message.
6304         (main): Add --output argument to specify output file to write to,
6305         instead of always printing to stdout.  In this mode, determine
6306         timestamps on source files to see whether any are newer than the
6307         target file.  If not, exit.  Also convert a number of error
6308         messages to use lose (since it's shorter), and switch to using
6309         g_io_channel_shutdown.
6310
6311 2005-02-19  Havoc Pennington  <hp@redhat.com>
6312
6313         * glib/dbus-gobject.c
6314         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6315
6316         * glib/dbus-glib.c: fix doxygen warnings
6317
6318         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6319         is found on an <arg>
6320
6321 2005-02-17  Colin Walters  <walters@verbum.org>
6322
6323         * glib/dbus-gobject.h: Don't export
6324         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6325         
6326         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6327         (invoke_object_method): Handle it.
6328
6329         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6330         Handle rename.
6331         
6332 2005-02-17  Colin Walters  <walters@verbum.org>
6333
6334         * bus/.cvsignore, doc/.cvsignore
6335         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6336         Update.
6337
6338 2005-02-17  Colin Walters  <walters@verbum.org>
6339         
6340         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6341         Rename to DBUS_SERVICE_DBUS.
6342         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6343         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6344         Change the value from "org.freedesktop.Local"
6345         to "org.freedesktop.DBus.Local".
6346         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6347         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6348         DBUS_INTERFACE_INTROSPECTABLE.
6349         Change the value from "org.freedesktop.Introspectable"
6350         to "org.freedesktop.DBus.Introspectable".
6351         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6352         DBUS_INTERFACE_PROPERTIES.
6353         Change the value from "org.freedesktop.Properties"
6354         to "org.freedesktop.DBus.Properties".
6355         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6356         DBUS_INTERFACE_PEER.
6357         Change the value from "org.freedesktop.Peer"
6358         to "org.freedesktop.DBus.Peer".
6359         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6360         DBUS_INTERFACE_LOCAL.
6361         Change the value from "org.freedesktop.Local"
6362         to "org.freedesktop.DBus.Local".
6363
6364         All other users of those constants have been changed.
6365
6366         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6367
6368         * glib/dbus-gobject.c (handle_introspect): Use constants.
6369
6370         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6371
6372 2005-02-17  Colin Walters  <walters@verbum.org>
6373
6374         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6375         (parse_node, parse_interface, parse_method, parse_signal)
6376         (parse_property, parse_annotation): Lose if we're currently in an
6377         annotation.
6378         (parse_annotation): New function.
6379         (parser_start_element, parser_end_element): Handle annotation.
6380         (parse_method, parse_interface): Remove support for c_name attribute,
6381         switch to annotations.
6382
6383         * glib/dbus-gidl.h (interface_info_get_binding_names)
6384         (method_info_get_binding_names)
6385         (interface_info_get_binding_name, method_info_get_binding_name)
6386         (interface_info_set_binding_name, method_info_set_binding_name):
6387         Remove.
6388         (interface_info_get_annotations, method_info_get_annotations)
6389         (interface_info_get_annotation, method_info_get_annotation)
6390         (interface_info_add_annotation, method_info_add_annotation):
6391         Prototype.
6392
6393         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6394         for "bindings".
6395         (struct MethodInfo): Ditto.
6396         Straightfoward conversion of binding methods into annotation methods
6397         as prototyped.
6398
6399         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6400
6401         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6402
6403         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6404         Use new annotation API.
6405
6406         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6407         annotation element.
6408         
6409         * doc/dbus-specification.xml: Discuss introspection annotations,
6410         include list of well-known annotations.
6411
6412         * test/glib/test-service-glib.xml: Make validate against new DTD.
6413
6414 2005-02-17  Colin Walters  <walters@verbum.org>
6415
6416         This patch is based on initial work from
6417         Paul Kuliniewicz <kuliniew@purdue.edu>.
6418
6419         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6420         initialization of GValue from dbus type to here.
6421         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6422         for the "glib-genmarshal" program from a DBus type.
6423         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6424         into the C name for it we use in the glib bindings.
6425         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6426         glib C type (not GValue).
6427         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6428
6429         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6430         from dbus-gobject.c.
6431
6432         * glib/dbus-gutils.h: Prototype it.
6433
6434         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6435         (marshal_dbus_message_to_g_marshaller): Use new shared function
6436         dbus_glib_marshal_dbus_message_to_gvalue_array.
6437
6438         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6439         Will be changed once we have annotations.
6440
6441         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6442         GStaticRWLock.  Callers updated.
6443         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6444         (string_table_next): New function for iterating over zero-terminated
6445         string value array.
6446         (string_table_lookup): New function; retrieves specific entry in
6447         array.
6448         (get_method_data): New function; look up method data in object data chunk.
6449         (object_error_domain_prefix_from_object_info)
6450         (object_error_code_from_object_info): New functions, but not implemented yet.
6451         (method_interface_from_object_info): New function; retrieve interface name.
6452         (method_name_from_object_info): New function; retrieve method name.
6453         (method_arg_info_from_object_info): New function; retrieve argument data.
6454         (arg_iterate): New function; iterates over serialized argument data.
6455         (method_dir_signature_from_object_info): New function; returns a
6456         GString holding type signature for arguments for just one
6457         direction (input or output).
6458         (method_input_signature_from_object_info)
6459         (method_output_signature_from_object_info): New functions.
6460         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6461         converts dbus message arguments into a GValue array.  Used for both
6462         signal handling and method invocation.
6463         (struct DBusGlibWriteIterfaceData): New utility structure.
6464         (write_interface): New function; generate introspection XML for
6465         an interface.
6466         (introspect_interfaces): New function; gathers all interface->methods,
6467         generates introspection XML for them.
6468         (handle_introspect): Invoke introspect_interfaces.
6469         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6470         (lookup_object_and_method): New function; examines an incoming message
6471         and attempts to match it up (via interface, method name, and argument
6472         signature) with a known object and method.
6473         (gerror_domaincode_to_dbus_error_name): New function; converts a
6474         GError domain and code into a DBus error name.  Needs GError data
6475         added to object introspection to work well.
6476         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6477         GError.
6478         (invoke_object_method): New function to invoke an object method
6479         looked up via lookup_object_and_method.  Parses the incoming
6480         message, turns it into a GValue array, then invokes the marshaller
6481         specified in the DBusGMethodInfo.  Creates a new message with
6482         either return values or error message as appropriate.
6483         (gobject_message_function): Invoke lookup_object_and_method and
6484         invoke_object_method.
6485
6486         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6487         (enum DBusBindingOutputMode): New enum for binding output modes.
6488         (pretty_print): Print binding names.
6489         (dbus_binding_tool_error_quark): GError bits.
6490         (version): Fix typo.
6491         (main): Create GIOChannel for output.  Parse new --mode argument,
6492         possible values are "pretty-print", "glib-server", "glib-client".
6493         Use mode to invoke appropriate function.
6494         
6495         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6496
6497         * glib/dbus-glib-tool.h: New header, just includes GError bits
6498         for now.
6499
6500         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6501         maps binding style to name.
6502         (struct MethodInfo): Ditto.
6503         (get_hash_keys, get_hash_key): Utility function, returns keys for
6504         a GHashTable.
6505         (interface_info_new, method_info_new): Initialize bindings.
6506         (interface_info_unref, method_info_unref): Destroy bindings.
6507         (method_info_get_binding_names, method_info_get_binding_name)
6508         (interface_info_get_binding_names, interface_info_get_binding_name):
6509         Functions for retrieving binding names.
6510         (method_info_set_binding_name, interface_info_set_binding_name):
6511         Functions for setting binding names.
6512
6513         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6514         for glib binding generation.
6515
6516         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6517         and client-side glib glue generation.
6518
6519         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6520         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6521         dbus-glib-tool.h.
6522
6523         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6524         of using GClosureMarshal directly.
6525         (struct DBusGObjectInfo): Add n_infos member.
6526
6527         * test/glib/test-service-glib.xml: New file; contains introspection data
6528         for MyTestObject used in test-service-glib.c.
6529
6530         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6531         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6532         (my_object_uppercase, my_object_many_args): New test methods.
6533         (main): Use dbus_g_object_class_install_info to include generated object
6534         info.
6535
6536         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6537         as well as client-side bindings.
6538
6539         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6540         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6541         using both the dbus_gproxy stuff directly as well as the generated bindings.
6542
6543 2005-02-15  Havoc Pennington  <hp@redhat.com>
6544
6545         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6546         complete a pending call, don't run filters first.
6547
6548         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6549         dbus_pending_call_steal_reply
6550
6551         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6552         _dbus_connection_block_pending_call
6553         (dbus_pending_call_get_reply): change to steal_reply and return a
6554         ref
6555
6556         * dbus/dbus-connection.c
6557         (dbus_connection_send_with_reply_and_block): port to work in terms
6558         of DBusPendingCall
6559         (_dbus_connection_block_pending_call): replace block_for_reply
6560         with this
6561
6562 2005-02-14  Havoc Pennington  <hp@redhat.com>
6563
6564         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6565         properly handle looking up group information by name; fix 
6566         from j@bootlab.org
6567
6568 2005-02-13  Havoc Pennington  <hp@redhat.com>
6569
6570         * dbus/dbus-connection.c (dbus_connection_return_message) 
6571         (dbus_connection_borrow_message): hold dispatch lock while message
6572         is outstanding
6573         (_dbus_connection_block_for_reply): hold dispatch lock while we
6574         block for the reply, so nobody steals our reply
6575         (dbus_connection_pop_message): hold the dispatch lock while we
6576         pluck the message
6577
6578 2005-02-13  Havoc Pennington  <hp@redhat.com>
6579
6580         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6581         (_dbus_connection_release_dispatch)
6582         (_dbus_connection_acquire_io_path)
6583         (_dbus_connection_release_io_path): make the mutex and condvar
6584         control access to the "acquired" flag. Drop the connection lock
6585         while waiting on the condvar. Hopefully these are baby steps in
6586         roughly the right direction.
6587
6588 2005-02-13  Havoc Pennington  <hp@redhat.com>
6589
6590         * dbus/dbus-connection.c: use separate mutexes for the condition
6591         variables; this is some kind of baseline for sanity, but the
6592         condition variables still aren't used correctly afaict
6593
6594 2005-02-13  Havoc Pennington  <hp@redhat.com>
6595
6596         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6597         fix a double-unlock
6598
6599         * dbus/dbus-connection.c
6600         (_dbus_connection_detach_pending_call_unlocked): add this
6601
6602         Initial semi-correct pass through to fix thread locking; there are
6603         still some issues with the condition variable paths I'm pretty
6604         sure
6605         
6606         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6607         lock/unlock calls
6608
6609         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6610         rename to add _unlocked
6611         (struct DBusConnection): move "dispatch_acquired" and
6612         "io_path_acquired" to use only one bit each.
6613         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6614         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6615         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6616         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6617         (_dbus_connection_remove_timeout) 
6618         (_dbus_connection_toggle_timeout): drop lock when calling out to
6619         user functions; done in a hacky/bad way.
6620         (_dbus_connection_send_and_unlock): add a missing unlock
6621         (_dbus_connection_block_for_reply): add a missing unlock
6622
6623         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6624         drop lock in a hacky probably unsafe way to call out to user
6625         function
6626
6627 2005-02-12  Havoc Pennington  <hp@redhat.com>
6628
6629         * tools/dbus-tree-view.c (info_set_func_text): display more
6630         details on args
6631
6632         * bus/driver.c (bus_driver_handle_list_services): list the bus
6633         driver
6634
6635         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6636
6637         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6638         (method_info_get_n_args): new function
6639
6640 2005-02-12  Havoc Pennington  <hp@redhat.com>
6641
6642         * bus/driver.c (bus_driver_handle_introspect): add introspection
6643         for bus driver
6644
6645 2005-02-12  Havoc Pennington  <hp@redhat.com>
6646
6647         * bus/driver.c: put the signature of each bus driver method in the
6648         table of handlers and check it on incoming calls; this isn't
6649         really useful, but going to add introspect support in a minute.
6650
6651 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6652
6653         * mono/Connection.cs: The unpredictability of finalizers in mono
6654         prevents us from deterministically disconnecting the filters from
6655         the Service class's finalizer, so move tracking of filters and
6656         matches here.  Add API for that.
6657
6658         * mono/Service.cs: Remove the code, add code which calls the
6659         methods now on the Connection class.
6660
6661 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6662
6663         * python/dbus.py (class Sender): added to support dbus signals better
6664         (Bus::add_signal_receiver): added expand_args parameter which defaults
6665         to True.  When expand args is True the signal handler will pass the 
6666         message arguments as parameters to the signal handler.  If False
6667         revert to previous behavior where the signal handler must get the
6668         argument list from the message.  This is to help port applications
6669         like HAL that have a tendancy to send variable length argument lists.
6670         self._match_rule_to_receivers is now a dict of dicts.
6671         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6672         removing it from a list
6673         (Bus::_signal_func): change signal handlers so that interface,
6674         signal_name, service, path and message are packed into a Sender
6675         object and that is passed to the handler.  If expand_args is True
6676         extract the args list from the message and append it to the parameter
6677         list
6678         
6679         * python/dbus_bindings.pyx.in (class Signature): added to support 
6680         signiature types
6681         (MessageIter::__init__): changed iteration limit to match D-BUS
6682         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6683         STRUCT and VARIENT type support
6684         (MessageIter::python_value_to_dbus_sig): made recursive to support
6685         recursive types
6686         (MessageIter::append*): added Signature, dict, tuple 
6687         support
6688
6689         * python/examples/example-client.py: added examples of getting tuples
6690         and dicts
6691
6692         * python/examples/example-service.py: added examples of sending tuples
6693         and dicts
6694
6695         * python/examples/example-signal-recipient.py: Fixed to handle new
6696         signal callback format
6697
6698 2005-02-10  Havoc Pennington  <hp@redhat.com>
6699
6700         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6701         (call dbus_g_proxy_add_signal)
6702
6703         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6704         escape the hostname
6705         (_dbus_server_new_for_domain_socket): escape the path
6706
6707         * dbus/dbus-address.c (dbus_address_escape_value): new
6708         (dbus_address_unescape_value): new
6709         (dbus_parse_address): unescape values
6710
6711         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6712
6713         * doc/dbus-specification.xml: explain how to escape values in
6714         addresses
6715
6716 2005-02-10  Havoc Pennington  <hp@redhat.com>
6717
6718         * dbus/dbus-message-factory.c (generate_special): modify test to
6719         avoid using a non-basic dict key
6720
6721         * dbus/dbus-marshal-validate-util.c: add test for the below
6722
6723         * doc/dbus-specification.xml: require that dict keys are a basic
6724         type
6725
6726         * dbus/dbus-marshal-validate.c
6727         (_dbus_validate_signature_with_reason): require that dict key is a
6728         basic type
6729
6730 2005-02-10  Havoc Pennington  <hp@redhat.com>
6731
6732         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6733         change to be _and_unlock instead of _unlocked
6734
6735         * dbus/dbus-connection.c
6736         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6737         have no_update so we can find this bug quickly in future
6738
6739 2005-02-10  Havoc Pennington  <hp@redhat.com>
6740
6741         * dbus/dbus-message-util.c (verify_test_message): tests for string
6742         array
6743
6744         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6745         support for arrays of string/signature/path
6746
6747 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6748
6749         * dbus/dbus-connection.c
6750         (_dbus_connection_queue_received_message_link,
6751         _dbus_connection_message_sent): Add the path to
6752         the verbose output.
6753         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6754         _dbus_connection_send_preallocated_unlocked(), updated the
6755         dispatch status, and unlocks.  Fixes a bug where certain
6756         situations (like a broken pipe) could cause a Disconnect message
6757         to not be sent, tricking the bus into thinking a service was still
6758         there when the process had quit.
6759         (_dbus_connection_send_preallocated): Call
6760         _dbus_connection_send_preallocated_and_unlock().
6761         (_dbus_connection_send_and_unlock): Added.  Calls
6762         _dbus_connection_send_preallocated_and_unlock().
6763         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6764         (dbus_connection_send_with_reply): Update the dispatch status and
6765         unlock.
6766
6767         * mono/Service.cs (~Service): Added.  Removes the filter so that
6768         we don't get unmanaged code calling back into a GCed delegate.
6769         (RemoveFilter); Added.
6770
6771 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6772
6773         * dbus/dbus-message.c (dbus_message_iter_open_container):
6774         - Removed check for iterator type being an array because
6775         get_arg_type does not work with writer iterators
6776         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6777
6778 2005-02-07  Havoc Pennington  <hp@redhat.com>
6779
6780         * doc/dbus-specification.xml: some more language cleanups; add
6781         stuff about how to deal with invalid protocol and extension
6782         points; add _ to allowed chars in auth commands; add EXTENSION_
6783         auth command prefix
6784
6785 2005-02-06  Havoc Pennington  <hp@redhat.com>
6786
6787         * s/expected/required/ in a couple places for clarity
6788
6789 2005-02-07  Colin Walters  <walters@verbum.org>
6790
6791         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6792         sender or proposed_recipient.
6793
6794 2005-02-06  Havoc Pennington  <hp@redhat.com>
6795
6796         * dbus/dbus-message-factory.c (generate_special): more tests
6797
6798         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6799         array length that exceeds the maximum
6800
6801 2005-02-05  Havoc Pennington  <hp@redhat.com>
6802
6803         * dbus/dbus-message-factory.c (generate_special): more test cases,
6804         increasing coverage
6805
6806         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6807         reason why a signature was invalid
6808
6809         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6810         skip the length of the string before we look at it in validation
6811
6812         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6813         equal_substring
6814
6815         * dbus/dbus-message.c (_dbus_message_loader_new): default
6816         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6817
6818 2005-02-05  Havoc Pennington  <hp@redhat.com>
6819
6820         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6821         if the signature of a variant was empty
6822         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6823         struct with no element type)
6824
6825         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6826         mangled messages to break things
6827
6828 2005-02-04  Havoc Pennington  <hp@redhat.com>
6829
6830         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6831         g_quark_try_string() so it actually can return 0
6832         (dbus_g_proxy_connect_signal): ditto
6833
6834 2005-02-04  Havoc Pennington  <hp@redhat.com>
6835
6836         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6837         bogus warning
6838         (tristring_from_message): assert cleanly on null path/interface
6839         (should not be possible though I decided later)
6840         (dbus_g_proxy_dispose): move proxy manager unregistration here
6841         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6842         g_return_if_fail() checks
6843
6844 2005-02-04  Havoc Pennington  <hp@redhat.com>
6845
6846         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6847
6848         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6849         (with some minor changes)
6850
6851         * doc/dbus-specification.xml: add deprecated attribute to
6852         introspection format
6853
6854 2005-01-31  Havoc Pennington  <hp@redhat.com>
6855
6856         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6857         think it's sort of right
6858
6859 2005-01-30  Havoc Pennington  <hp@redhat.com>
6860
6861         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6862
6863 2005-01-30  Havoc Pennington  <hp@redhat.com>
6864
6865         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6866
6867         * autogen.sh: change to autotools 1.9
6868
6869         * glib/dbus-gproxy.c: completely change how signals work
6870         (dbus_g_proxy_add_signal): new function to specify signature of a
6871         signal
6872         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6873         and g_warning if the incoming message has the wrong signature.
6874
6875 2005-01-30  Havoc Pennington  <hp@redhat.com>
6876
6877         * tools/dbus-names-model.c (have_names_notify): fix this
6878
6879         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6880         up the string array handling a bit 
6881
6882 2005-01-30  Havoc Pennington  <hp@redhat.com>
6883
6884         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6885         (dbus_g_pending_call_cancel): new function
6886
6887         * dbus/dbus-glib.h: move GType decls for connection/message here;
6888         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6889         here, just kind of rationalizing how we handle all that
6890
6891         * tools/dbus-names-model.c: new file for a tree model listing the
6892         services on a bus
6893
6894         * tools/dbus-tree-view.c (model_new): use proper typing on the
6895         model rows
6896
6897 2005-01-30  Havoc Pennington  <hp@redhat.com>
6898
6899         * glib/dbus-gmain.c: add a custom GSource back that just checks
6900         whether the message queue has anything in it; otherwise, there are 
6901         cases where we won't see messages in the queue since there was no 
6902         IO visible to the glib main loop
6903
6904         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6905         increase default message timeout to 25 seconds
6906
6907 2005-01-30  Havoc Pennington  <hp@redhat.com>
6908
6909         * test/glib/test-profile.c (no_bus_stop_server): remove the
6910         warning about the g_warning that I just fixed
6911
6912         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6913         custom source, seems to be a lot easier to understand and work
6914         better.
6915
6916 2005-01-30  Havoc Pennington  <hp@redhat.com>
6917
6918         I think this main loop thing is conceptually broken, but here are 
6919         some band aids. I'll maybe rewrite it in a minute.
6920         
6921         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6922         custom GSource, so don't pass it in; confusing
6923         (gsource_server_finalize, gsource_connection_finalize): add
6924         finalize handlers that remove all the watches.  
6925
6926 2005-01-30  Havoc Pennington  <hp@redhat.com>
6927
6928         * glib/dbus-gobject.c (introspect_properties): fix the XML
6929         generated
6930
6931         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6932         which effectively detects the use of freed messages
6933
6934         * glib/dbus-gobject.c (handle_introspect): modify and return the
6935         reply message instead of the incoming message
6936
6937         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6938         gee, maybe it should SEND THE XML instead of just making a string
6939         and freeing it again ;-)
6940
6941         * tools/dbus-print-message.c (print_message): improve printing of
6942         messages
6943
6944         * configure.in: add debug-glib.service to the output
6945
6946 2005-01-30  Havoc Pennington  <hp@redhat.com>
6947
6948         dbus-viewer introspected and displayed the bus driver
6949         
6950         * dbus/dbus-object-tree.c 
6951         (object_tree_test_iteration): add tests for a handler registered on "/"
6952
6953         * dbus/dbus-object-tree.c
6954         (_dbus_decompose_path): fix to handle path "/" properly
6955         (run_decompose_tests): add tests for path decomposition
6956         
6957         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6958         properly
6959
6960         * glib/dbus-gobject.c (handle_introspect): fix quotes
6961
6962         * test/glib/run-test.sh: support launching the bus, then running
6963         dbus-viewer
6964
6965         * test/glib/test-service-glib.c (main): put in a trivial gobject
6966         subclass and register it on the connection
6967
6968         * bus/driver.c (bus_driver_handle_introspect): implement
6969         introspection of the bus driver service
6970
6971         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6972         identifiers, doctype decl
6973
6974         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6975         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6976         returning the service unchanged.
6977         (bus_driver_handle_message): remove old check for reply_serial in
6978         method calls, now the message type deals with that
6979         (bus_driver_handle_message): handle NULL interface
6980
6981         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6982
6983         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6984         -1 for len
6985
6986         * tools/dbus-viewer.c: add support for introspecting a service on
6987         a bus
6988
6989         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6990         (dbus_g_pending_call_unref): add
6991
6992 2005-01-29  Havoc Pennington  <hp@redhat.com>
6993
6994         * tools/dbus-tree-view.c: add support for displaying properties.
6995         (run dbus-viewer with an introspect xml file as arg, then resize
6996         the window so the tree elements show up, not sure what that is)
6997
6998         * glib/dbus-gobject.c (handle_introspect): return
6999         org.freedesktop.Properties and org.freedesktop.Introspectable
7000         interfaces when we are introspected.
7001
7002         * doc/dbus-specification.xml: allow empty interface name when 
7003         Get/Set a property
7004
7005 2005-01-29  Havoc Pennington  <hp@redhat.com>
7006
7007         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
7008         though it uses glib, it could be extended for any binding in
7009         principle
7010
7011         * glib/dbus-gobject.c (gobject_message_function): change to the
7012         new way properties work
7013
7014         * dbus/dbus-protocol.h: add the new interfaces
7015
7016         * doc/dbus-specification.xml: document the introspection format,
7017         Introspectable interface, and add an org.freedesktop.Properties
7018         interface.
7019
7020         * glib/dbus-gparser.c: add support for a <property> element
7021
7022         * glib/dbus-gidl.c: add PropertyInfo
7023
7024         * glib/dbus-gobject.c (handle_introspect): put the outermost
7025         <node> outside the signal and property descriptions.
7026         (introspect_properties): export properties as <property> rather
7027         than as method calls
7028
7029 2005-01-28  Havoc Pennington  <hp@redhat.com>
7030
7031         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
7032         related to authentication protocol
7033
7034 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
7035
7036         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
7037                 - BUS_ACTIVATION -> BUS_STARTER
7038                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
7039                 - class MessageIter (__init__): Added recursion checking 
7040                 so we throw a nice error instead of just disconnecting from the
7041                 bus.
7042                 (get): Added arg_type parameter for recursion.
7043                 Removed the nil type
7044                 Added signiture type placeholder (not implemented)
7045                 Added struct type placeholder (not implemented)
7046                 Added varient type placeholder (not implemented)
7047                 Commented out dict type for now     
7048                 (get_element_type): renamed from get_array_type
7049                 (get_*): changed to use the dbus_message_iter_get_basic API
7050                 (get_*_array): removed in favor of recursive get_array method
7051                 (get_array): new recursive method which calls get to marshal
7052                 the elements of the array
7053                 (value_to_dbus_sig): New method returns the corrasponding
7054                 dbus signiture to a python value
7055                 (append): Comment out dict handling for now
7056                 Handle lists with the new recursive API
7057                 Comment out None handling for now
7058                 (append_nil): removed
7059                 (append_*): changed to use dbus_message_iter_append_basic API
7060                 (append_*_array): removed in favor of recursive append_array 
7061                 method
7062                 (__str__): Make it easier to print out recursive iterators
7063                 for debugging
7064                 - class Message (__str__): moved type inspection to the
7065                 MessageIter class' __str__ method
7066                 (get_iter): Added an append parameter wich defaults to False
7067                 If True use the new API's to create an append iterator
7068
7069         * python/dbus.py: Update to use new bindings API
7070                 - TYPE_ACTIVATION -> TYPE_STARTER
7071                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
7072                 - class ActivationBus -> class StarterBus
7073                 - class RemoteObject (__call__): get an append iterator
7074                 - (_dispatch_dbus_method_call): get an append iterator
7075                 - class Object (emit_signal): get an append iterator
7076
7077         * python/examples/: Fixed up the examples to work with the new API
7078                 
7079 2005-01-28  Joe Shaw  <joeshaw@novell.com>
7080
7081         * configure.in: Bump version up to 0.30.
7082
7083         * HACKING: Add a release item to bump the version number up after 
7084         a release.
7085
7086 2005-01-28  Havoc Pennington  <hp@redhat.com>
7087
7088         * doc/dbus-specification.xml: update to describe 16-bit types and
7089         dict entries
7090
7091         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
7092         assertion
7093
7094         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
7095         type
7096
7097         * dbus/dbus-marshal-recursive.c: implement
7098
7099 2005-01-27  Havoc Pennington  <hp@redhat.com>
7100
7101         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
7102
7103         * configure.in: find the right type for 16 and 32 bit ints as well
7104         as 64
7105
7106         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
7107         the 16-bit types so people don't have to stuff them in 32-bit or
7108         byte arrays.
7109
7110 2005-01-27  Havoc Pennington  <hp@redhat.com>
7111
7112         * dbus/dbus-message.c: byteswap the message if you init an
7113         iterator to read/write from it
7114         
7115         * dbus/dbus-marshal-byteswap.c: new file implementing 
7116         _dbus_marshal_byteswap()
7117
7118         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
7119
7120 2005-01-26  Havoc Pennington  <hp@redhat.com>
7121         
7122         * dbus/dbus-marshal-validate-util.c: break this out (and fix
7123         build, apparently - nobody noticed?)
7124         
7125 2005-01-26  Havoc Pennington  <hp@redhat.com>
7126
7127         * dbus/dbus-marshal-recursive.h: remove todo comment
7128
7129 2005-01-25  Joe Shaw  <joeshaw@novell.com>
7130
7131         * Land the mono binding changes to conform to the new APIs.
7132
7133         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
7134         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
7135
7136         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
7137         type code as a string.
7138         (InitAppending): Rename dbus_message_append_iter_init() to
7139         dbus_message_iter_init_append().
7140
7141         * mono/BusDriver.cs: Rename ServiceEventHandler to
7142         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
7143         Rename ServiceOwnerChanged to NameOwnerChanged.
7144
7145         * mono/Connection.cs: Rename BaseService to UniqueName, and the
7146         underlying C call.
7147
7148         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
7149
7150         * mono/Service.cs: Rename Exists to HasOwner, internally rename
7151         dbus_bus_acquire_service() to dbus_bus_request_name().
7152
7153         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
7154         of Type.UnderlyingSystemType to get the correct element type for
7155         the array.
7156         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
7157         dbus_message_get_{element|arg}_type() instead of
7158         dbus_message_iter_init_array_iterator().
7159         (Append): Replace dbus_message_iter_append_array() with
7160         dbus_message_iter_open_container() and
7161         dbus_message_iter_close_container().
7162
7163         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
7164         types have been removed.
7165         
7166         * mono/DBusType/*.cs: Replace calls of
7167         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
7168         but specify the type in the DllImport extern declaration.  Ditto
7169         for dbus_message_iter_append_[type]() ->
7170         dbus_message_iter_append_basic().
7171
7172         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
7173         NameOwnerChangedHandler.
7174
7175 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
7176
7177         * python/dbus_bindings.pyx.in: Rename of methods and bindings
7178                 - get_base_service -> get_unique_name
7179                 - bus_get_base_service -> bus_get_unique_name
7180                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
7181                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
7182                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
7183                 - bus_activate_service -> bus_start_service_by_name
7184                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
7185                 - bus_acquire_service -> bus_request_name
7186                 - dbus_bus_acquire_service -> dbus_bus_request_name
7187                 - bus_service_exists -> bus_name_has_owner
7188                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
7189
7190         * python/dbus.py: Rename of methods
7191                 - activate_service -> start_service_by_name
7192                 - bus_acquire_service -> bus_request_name
7193                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
7194                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
7195
7196         
7197 2005-01-24  Joe Shaw  <joeshaw@novell.com>
7198
7199         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
7200         signature for the method that can't be found.
7201
7202         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
7203         the message has any arguments, we need to call
7204         _dbus_type_reader_get_current_type(), not
7205         _dbus_type_reader_has_next().
7206
7207 2005-01-24  Havoc Pennington  <hp@redhat.com>
7208
7209         * dbus/dbus-message-factory.c: more testing of message validation
7210
7211         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
7212         header
7213
7214 2005-01-23  Havoc Pennington  <hp@redhat.com>
7215
7216         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
7217         get this all working, not many tests in the framework yet though
7218
7219 2005-01-22  Havoc Pennington  <hp@redhat.com>
7220
7221         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
7222         tutorial, based on work from David Wheeler.
7223
7224 2005-01-21  Havoc Pennington  <hp@redhat.com>
7225
7226         * dbus/dbus-bus.c: add more return_if_fail checks
7227
7228         * dbus/dbus-message.c (load_message): have the "no validation"
7229         mode (have to edit the code to toggle the mode for now though)
7230
7231         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
7232         skips all validation; I want to use this at least for benchmark
7233         baseline, I'm not sure if it should be a publicly-available switch.
7234
7235 2005-01-21  Havoc Pennington  <hp@redhat.com>
7236
7237         * glib/dbus-gmain.c: don't put the GLib bindings in the same
7238         toplevel doxygen group as the low-level API stuff
7239
7240         * dbus/dbus.h: note that libdbus is the low-level API
7241
7242 2005-01-20  Havoc Pennington  <hp@redhat.com>
7243
7244         * update-dbus-docs.sh: script to update docs on the web site, only
7245         works for me though. neener.
7246
7247 2005-01-20  Havoc Pennington  <hp@redhat.com>
7248
7249         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
7250         code can reveal bugs in it
7251
7252 2005-01-20  Havoc Pennington  <hp@redhat.com>
7253
7254         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
7255         select() version, patches from Tor Lillqvist
7256
7257 2005-01-20  Havoc Pennington  <hp@redhat.com>
7258
7259         * doc/dbus-tutorial.xml: replace > with &gt;
7260
7261         * bus/services.c (bus_registry_acquire_service): validate the name
7262         and return a better error if it's no good.
7263
7264         * doc/dbus-specification.xml: note NO_AUTO_START change
7265
7266         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
7267         from AUTO_START, we're toggling the default
7268
7269         * bus/dispatch.c: adapt the tests to change of auto-start default
7270
7271 2005-01-18  Havoc Pennington  <hp@redhat.com>
7272
7273         * rename dbus-daemon-1 to dbus-daemon throughout
7274
7275 2005-01-18  Havoc Pennington  <hp@redhat.com>
7276
7277         * Throughout, grand renaming to strip out the use of "service",
7278         just say "name" instead (or "bus name" when ambiguous).  Did not
7279         change the internal code of the message bus itself, only the
7280         programmer-facing API and messages.
7281         
7282         * doc/dbus-specification.xml: further update the message bus section
7283         
7284         * bus/config-parser.c (all_are_equiv): fix bug using freed string
7285         in error case
7286
7287 2005-01-17  Havoc Pennington  <hp@redhat.com>
7288
7289         * dbus/dbus-types.h: remove 16-bit types since we don't use them
7290         ever
7291
7292         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7293         "invalid name character" not only non-ASCII
7294
7295         * doc/dbus-specification.xml: further update spec, message bus 
7296         parts are still out-of-date but the marshaling etc. stuff is now
7297         accurate-ish
7298
7299 2005-01-17  Havoc Pennington  <hp@redhat.com>
7300
7301         * doc/dbus-specification.xml: partially update spec
7302
7303 2005-01-17  Havoc Pennington  <hp@redhat.com>
7304
7305         * Throughout, align variant bodies according to the contained
7306         type, rather than always to 8. Should save a fair bit of space in
7307         message headers.
7308         
7309         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7310         fix handling of case where p == end
7311
7312         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7313
7314 2005-01-17  Havoc Pennington  <hp@redhat.com>
7315
7316         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7317
7318         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7319         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7320         are marshaling/unmarshaling a boolean.
7321
7322 2005-01-16  Havoc Pennington  <hp@redhat.com>
7323
7324         This is about it on what can be disabled/deleted from libdbus
7325         easily, back below 150K anyhow. Deeper cuts are more work than 
7326         just turning the code off as I've done here.
7327         
7328         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7329         signed int convenience funcs
7330
7331         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7332         verbose mode
7333
7334         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7335         things out of libdbus
7336
7337         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7338         
7339         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7340         tests-enabled-only, though it should probably be deleted)
7341
7342         * dbus/dbus-message-util.c: same stuff
7343
7344         * dbus/dbus-auth-util.c: same stuff
7345
7346 2005-01-16  Havoc Pennington  <hp@redhat.com>
7347
7348         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7349
7350         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7351         way for stripping down dbus-userdb.c stuff included in libdbus.
7352         Rename _dbus_parse_uid for consistency.
7353
7354 2005-01-16  Havoc Pennington  <hp@redhat.com>
7355
7356         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7357         name the assertion failed in
7358
7359         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7360         (_dbus_return_val_if_fail): assert that the name of the function
7361         containing the check doesn't start with '_', since we only want to 
7362         use checks on public functions
7363         
7364         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7365         checks to assertions
7366
7367         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7368         change checks to asserts for private function
7369
7370         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7371         to asserts for private function
7372
7373         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7374         broken assertion that was breaking make check
7375         (_dbus_type_reader_array_is_empty): remove this rather than fix
7376         it, was only used in assertions
7377
7378 2005-01-16  Havoc Pennington  <hp@redhat.com>
7379
7380         * test/unused-code-gc.py: hacky script to find code that's used
7381         only by the bus (not libdbus) or used only by tests or not used at
7382         all. It has some false alarms, but looks like we can clean up a
7383         lot of size from libdbus.
7384
7385         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7386         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7387         
7388 2005-01-16  Havoc Pennington  <hp@redhat.com>
7389
7390         * Add and fix docs according to Doxygen warnings throughout
7391         source.
7392         
7393         * dbus/dbus-marshal-recursive.c
7394         (_dbus_type_reader_array_is_empty): change this to just call
7395         array_reader_get_array_len() and make it static
7396
7397         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7398         from get_array_type
7399         (dbus_message_iter_init_append): rename from append_iter_init
7400
7401         * dbus/dbus-marshal-recursive.c
7402         (_dbus_type_reader_get_element_type): rename from
7403         _dbus_type_reader_get_array_type
7404
7405 2005-01-15  Havoc Pennington  <hp@redhat.com>
7406
7407         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7408
7409         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7410         when DBUS_DISABLE_ASSERT
7411         (_dbus_marshal_set_basic): be sure we align for the string length
7412
7413         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7414         this look faster
7415
7416         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7417         inline macro version
7418         (_dbus_string_set_byte): provide inline macro version
7419
7420 2005-01-15  Havoc Pennington  <hp@redhat.com>
7421
7422         * Land the new message args API and type system.
7423
7424         This patch is huge, but the public API change is not 
7425         really large. The set of D-BUS types has changed somewhat, 
7426         and the arg "getters" are more geared toward language bindings;
7427         they don't make a copy, etc.
7428
7429         There are also some known issues. See these emails for details
7430         on this huge patch:
7431         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7432         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7433         
7434         * dbus/dbus-marshal-*: all the new stuff
7435
7436         * dbus/dbus-message.c: basically rewritten
7437
7438         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7439         freed blocks to be all non-nul bytes so using freed memory is less
7440         likely to work right
7441
7442         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7443         DBUS_FAIL_MALLOC=N environment variable, so you can do
7444         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7445         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7446         thorough.
7447
7448         * qt/message.cpp: port to the new message args API
7449         (operator<<): use str.utf8() rather than str.unicode()
7450         (pretty sure this is right from the Qt docs?)
7451
7452         * glib/dbus-gvalue.c: port to the new message args API
7453
7454         * bus/dispatch.c, bus/driver.c: port to the new message args API
7455
7456         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7457         "locked" flag to TRUE and align_offset to 0; I guess we never
7458         looked at these anyhow, but seems cleaner.
7459
7460         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7461         move allocation padding macro to this header; use it to implement
7462         (_DBUS_STRING_STATIC): ability to declare a static string.
7463
7464         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7465         change to return TRUE if the interface is not set.
7466
7467         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7468         to dbus-marshal-validate.[hc]
7469
7470         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7471         dbus-internals.c
7472
7473         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7474         to dbus-marshal-*.[hc]
7475
7476         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7477         function here from dbus-marshal.c
7478
7479 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7480
7481         * NEWS: Update for 0.23.
7482
7483         * configure.in: Release 0.23.
7484
7485 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7486
7487         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7488         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7489         behind.
7490
7491         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7492         uninstall"
7493
7494         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7495         is an enum, get the enum's underlying type.  Another mono
7496         1.1.3 fix.
7497
7498 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7499
7500         Patch from Sjoerd Simons <sjoerd@luon.net>
7501
7502         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7503         DESTDIR.  It breaks stuff.
7504
7505 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7506
7507         Patch from Tambet Ingo <tambet@ximian.com>
7508
7509         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7510         calling type.GetElementType().  The code previously depended on
7511         broken Mono behavior, which was fixed in Mono 1.1.3.
7512
7513         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7514         Activator.CreateInstance() so that the class's constructor is
7515         called with the right parameters.
7516
7517 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7518
7519         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7520
7521         * dbus/dbus-connection.c
7522         (_dbus_connection_queue_received_message_link): Call
7523         _dbus_connection_remove_timeout() instead of the _locked()
7524         variant, since it's always called from
7525         _dbus_connection_handle_watch(), which handles the locking.
7526         Removed the _locked() variant since it's no longer used.
7527
7528 2005-01-03  Havoc Pennington  <hp@redhat.com>
7529
7530         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7531         return
7532         
7533 2004-12-26  Havoc Pennington  <hp@redhat.com>
7534
7535         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7536
7537 2005-01-03  Havoc Pennington  <hp@redhat.com>
7538
7539         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7540         floating point
7541
7542         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7543
7544 2005-01-02  Havoc Pennington  <hp@redhat.com>
7545
7546         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7547
7548 2005-01-01  Havoc Pennington  <hp@redhat.com>
7549
7550         * configure.in: add -Wfloat-equal
7551
7552 2005-01-01  Havoc Pennington  <hp@redhat.com>
7553
7554         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7555         for a variety of reasons '==' doesn't do this.
7556
7557 2004-12-31  Havoc Pennington  <hp@redhat.com>
7558
7559         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7560         I keep wishing I had
7561
7562 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7563
7564         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7565
7566 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7567
7568         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7569         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7570         dbus-protocol.h.  Because they are defines and not enums they are not
7571         autogenerated.
7572
7573 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7574
7575         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7576         dbus_bus_activate_service
7577
7578         * python/dbus.py (Bus.activate_service): activate a service on the
7579         bus.
7580
7581 2004-12-24  Havoc Pennington  <hp@redhat.com>
7582
7583         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7584         file format has also changed and I haven't adapted to that yet
7585         
7586         * Makefile.am: load .gcno files from latest gcc
7587
7588 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7589         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7590
7591         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7592         lowlevel binding
7593
7594         * python/dbus.py (get_unix_user): Added binding to 
7595         call dbus_bindings.bus_get_unix_user
7596
7597         * python/extract.py: Modified the proto_pat regex to
7598         handle unsigned long
7599
7600 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7601
7602         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7603         better POSIX compliance.
7604
7605 2004-12-19  Havoc Pennington  <hp@redhat.com>
7606
7607         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7608         (_dbus_string_insert_8_aligned): new functions
7609
7610         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7611
7612 2004-12-18  Havoc Pennington  <hp@redhat.com>
7613
7614         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7615         macro
7616
7617         * dbus/dbus-message.c: fix a comment, and add a still-unused
7618         not-implemented function
7619
7620         * dbus/dbus-marshal.h: fix comment
7621
7622         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7623
7624 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7625
7626         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7627         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7628         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7629         Type.UnderlyingSystemType to get the actual system type
7630         underneath.  This code previously depended on the broken Mono
7631         behavior, which was fixed in 1.1.3.
7632
7633 2004-11-27  Havoc Pennington  <hp@redhat.com>
7634
7635         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7636         are disabled
7637         (_dbus_string_get_const_data): inline when asserts are disabled
7638
7639         * dbus/dbus-message.c: record the _dbus_current_generation of
7640         creation so we can complain if dbus_shutdown() is used improperly.
7641         Do this only if checks are enabled.
7642
7643         * dbus/dbus-connection.c: ditto
7644         
7645 2004-11-26  Havoc Pennington  <hp@redhat.com>
7646
7647         * test/glib/test-profile.c: add with_bus mode to profile echoes
7648         that go through the bus.
7649
7650         * test/glib/run-test.sh: add ability to run test-profile
7651
7652         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7653         config file reload.
7654
7655 2004-11-26  Havoc Pennington  <hp@redhat.com>
7656
7657         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7658         thing was implemented
7659
7660 2004-11-26  Havoc Pennington  <hp@redhat.com>
7661
7662         * test/glib/test-profile.c: tweak a bit, add support for some
7663         made-up minimal malloc overhead with plain sockets, since in 
7664         real life some sort of buffers are unavoidable thus we could 
7665         count them in the theoretical best case
7666
7667 2004-11-26  Havoc Pennington  <hp@redhat.com>
7668
7669         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7670         where I was trying to cache one too many messages
7671
7672 2004-11-26  Havoc Pennington  <hp@redhat.com>
7673
7674         * dbus/dbus-message.c: reimplement message cache as an array which 
7675         makes the cache about twice as fast and saves maybe 1.5% overall
7676
7677 2004-11-26  Havoc Pennington  <hp@redhat.com>
7678
7679         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7680         message cache lock here
7681
7682 2004-11-26  Havoc Pennington  <hp@redhat.com>
7683
7684         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7685         the "char byte_order" next to each other to save 4 bytes
7686         (dbus_message_new_empty_header): reduce preallocation, since the
7687         message cache should achieve a similar effect
7688         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7689         message cache that keeps a few DBusMessage around in a pool,
7690         another 8% speedup or so.
7691
7692         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7693
7694 2004-11-25  Havoc Pennington  <hp@redhat.com>
7695
7696         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7697         to write, without reading or blocking, try it before the poll()
7698         and skip the poll() if nothing remains to write. This is about a
7699         3% speedup in the echo client/server
7700
7701 2004-11-25  Havoc Pennington  <hp@redhat.com>
7702
7703         The primary change here is to always write() once before adding
7704         the write watch, which gives us about a 10% performance increase.
7705         
7706         * dbus/dbus-transport-unix.c: a number of modifications to cope
7707         with removing messages_pending
7708         (check_write_watch): properly handle
7709         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7710         messages_pending stuff
7711         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7712         AUTHENTICATED cases
7713         (unix_handle_watch): after writing, see if the write watch can be
7714         removed
7715         (unix_do_iteration): assert that write_watch/read_watch are
7716         non-NULL rather than testing that they aren't, since they 
7717         aren't allowed to be NULL. check_write_watch() at the end so 
7718         we add the watch if we did not finish writing (e.g. got EAGAIN)
7719
7720         * dbus/dbus-transport-protected.h: remove messages_pending call,
7721         since it resulted in too much inefficient watch adding/removing; 
7722         instead we now require that the transport user does an iteration 
7723         after queueing outgoing messages, and after trying the first
7724         write() we add a write watch if we got EAGAIN or exceeded our 
7725         max bytes to write per iteration setting
7726
7727         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7728         function
7729
7730         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7731         freed and then accessed, valgrind flagged this bug, fix it
7732
7733         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7734         as the last valid field plus 1, where really it is equal to the
7735         last valid field. Corrects some message corruption issues.
7736
7737         * dbus/dbus-mainloop.c: verbosity changes
7738
7739         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7740         instead of aborting in one of the test codepaths
7741
7742         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7743         caused not printing the pid ever again if a verbose was missing
7744         the newline at the end
7745         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7746
7747         * dbus/dbus-connection.c: verbosity changes; 
7748         (dbus_connection_has_messages_to_send): new function
7749         (_dbus_connection_message_sent): no longer call transport->messages_pending
7750         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7751         try to write() immediately, so we can avoid the write watch. This
7752         is the core purpose of this patchset
7753         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7754         dump the outgoing message queue, so nobody will get confused
7755         trying to send them or thinking stuff is pending to be sent
7756
7757         * bus/test.c: verbosity changes
7758
7759         * bus/driver.c: verbosity/assertion changes
7760
7761         * bus/dispatch.c: a bunch of little tweaks to get it working again
7762         because this patchset changes when/where you need to block.
7763
7764 2004-11-23  Havoc Pennington  <hp@redhat.com>
7765
7766         * test/glib/test-profile.c: modify to accept a plain_sockets
7767         argument in which case it will bench plain sockets instead of
7768         libdbus, for comparison purposes.
7769
7770 2004-11-22  Havoc Pennington  <hp@redhat.com>
7771
7772         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7773         threads for more time, so sysprof can get a grip on it.
7774
7775         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7776         pointless variable
7777
7778 2004-11-13  Havoc Pennington  <hp@redhat.com>
7779
7780         * test/glib/test-profile.c: fix this thing up a bit
7781
7782         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7783         preallocation sizes by a fair bit; not sure if this will be an
7784         overall performance win or not, but it does reduce reallocs.
7785
7786         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7787         the test hack that forced constant realloc if asserts are
7788         disabled, so we can profile sanely. Sprinkle in some
7789         _DBUS_UNLIKELY() which are probably pointless, but before I
7790         noticed the real performance problem I put them in.
7791         (_dbus_string_validate_utf8): micro-optimize this thing a little
7792         bit, though callgrind says it didn't help; then special-case
7793         ascii, which did help a lot; then be sure we detect nul bytes as
7794         invalid, which is a bugfix.
7795         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7796         superstition; use memset to nul the padding instead of a manual
7797         loop.
7798         (_dbus_string_get_length): inline this as a
7799         macro; it showed up in the profile because it's used for loop
7800         tests and so forth
7801
7802 2004-11-10  Colin Walters  <walters@verbum.org>
7803
7804         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7805         for extra paranoia.
7806
7807 2004-11-09  Colin Walters  <walters@verbum.org>
7808
7809         * dbus/dbus-string.c (_dbus_string_get_length): New
7810         function, writes DBusString to C buffer.
7811
7812         * dbus/dbus-string.h: Prototype it.
7813
7814         * dbus/dbus-message.c (dbus_message_type_to_string): New
7815         function, converts message type into C string.
7816
7817         * dbus/dbus-message.h: Prototype it.
7818
7819         * bus/selinux.c (bus_selinux_check): Take source pid,
7820         target pid, and audit data.  Pass audit data to
7821         avc_has_perm.
7822         (log_audit_callback): New function, appends extra
7823         audit information.
7824         (bus_selinux_allows_acquire_service): Also take
7825         service name, add it to audit data.
7826         (bus_selinux_allows_send): Also take message
7827         type, interface, method member, error name,
7828         and destination, and add them to audit data.
7829         (log_cb): Initialize func_audit.
7830         
7831         * bus/selinux.h (bus_selinux_allows_acquire_service)
7832         (bus_selinux_allows_send): Update prototypes 
7833
7834         * bus/services.c (bus_registry_acquire_service): Pass
7835         service name to bus_selinux_allows_acquire_service.
7836
7837         * bus/bus.c (bus_context_check_security_policy): Pass
7838         additional audit data.  Move assignment of dest
7839         to its own line.
7840
7841 2004-11-07  Colin Walters  <walters@verbum.org>
7842
7843         * dbus/dbus-transport-unix.c (do_authentication): Always
7844         initialize auth_completed.
7845         
7846 2004-11-07  Colin Walters  <walters@verbum.org>
7847
7848         * bus/bus.c (load_config): Break into three
7849         separate functions: process_config_first_time_only,
7850         process_config_every_time, and process_config_postinit.
7851         (process_config_every_time): Move call of
7852         bus_registry_set_service_context_table into
7853         process_config_postinit.
7854         (process_config_postinit): New function, does
7855         any processing that needs to happen late
7856         in initialization (and also on reload).
7857         (bus_context_new): Instead of calling load_config,
7858         open config parser here and call process_config_first_time_only
7859         and process_config_every_time directly.  Later, after
7860         we have forked but before changing UID,
7861         invoke bus_selinux_full_init, and then call
7862         process_config_postinit.
7863         (bus_context_reload_config): As in bus_context_new,
7864         load parse file inside here, and call process_config_every_time
7865         and process_config_postinit.
7866
7867         * bus/services.h, bus/services.c
7868         (bus_registry_set_service_context_table): Rename
7869         from bus_registry_set_sid_table.  Take string hash from config
7870         parser, and convert them here into SIDs.
7871
7872         * bus/config-parser.c (struct BusConfigParser): Have
7873         config parser only store a mapping of service->context
7874         string.
7875         (merge_service_context_hash): New function.
7876         (merge_included): Merge context string hashes instead
7877         of using bus_selinux_id_table_union.
7878         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7879         simply create a new string hash.
7880         (bus_config_parser_unref): Unref it.
7881         (start_selinux_child): Simply insert strings into hash,
7882         don't call bus_selinux_id_table_copy_over.
7883
7884         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7885         (bus_selinux_id_table_copy_over): Delete.
7886
7887 2004-11-03  Colin Walters  <walters@verbum.org>
7888
7889         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7890         variables.
7891         
7892 2004-11-03  Colin Walters  <walters@verbum.org>
7893
7894         * bus/test-main.c (test_pre_hook): Fix test logic,
7895         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7896
7897 2004-11-02  Colin Walters  <walters@redhat.com>
7898
7899         * bus/selinux.c (bus_selinux_init): Split into two functions,
7900         bus_selinux_pre_init and bus_selinux_post_init.
7901         (bus_selinux_pre_init): Just determine whether SELinux is
7902         enabled.
7903         (bus_selinux_post_init): Do everything else.
7904
7905         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7906         config file, and bus_selinux_post_init after.  This ensures that
7907         we don't lose the policyreload notification thread that
7908         bus_selinux_init created before forking previously.
7909         
7910         * bus/test-main.c (test_pre_hook): Update for split.
7911
7912 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7913
7914         Patch from Johan Fischer <linux@fischaz.com>
7915         
7916         * mono/doc/Makefile.am (install-data-local): Added directory
7917         install for DESTDIR
7918
7919 2004-10-29  Colin Walters  <walters@redhat.com>
7920
7921         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7922         parameter for fd to write pid to.       
7923
7924         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7925         
7926         * bus/bus.c (bus_context_new): Pass print_pid_fd
7927         to _dbus_become_daemon (bug #1720)
7928
7929 2004-10-29  Colin Walters  <walters@redhat.com>
7930
7931         Patch from Ed Catmur <ed@catmur.co.uk>
7932
7933         * mono/doc/Makefile.am (install-data-local): Handle
7934         DESTDIR.
7935
7936 2004-10-29  Colin Walters  <walters@redhat.com>
7937
7938         * bus/.cvsignore, qt/.cvsignore: Update.
7939
7940 2004-10-29  Colin Walters  <walters@redhat.com>
7941
7942         Patch from Kristof Vansant <de_lupus@pandora.be>
7943
7944         * configure.in: Detect Slackware.
7945         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7946         * bus/rc.messagebus.in: New file.
7947
7948 2004-10-29  Colin Walters  <walters@redhat.com>
7949
7950         * tools/dbus-monitor.c (filter_func): Return
7951         DBUS_HANDLER_RESULT_HANDLED in filter function
7952         for now.  See:
7953         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7954
7955 2004-10-29  Colin Walters  <walters@redhat.com>
7956
7957         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7958
7959         * bus/services.c (bus_registry_acquire_service): 
7960         Correctly retrieve service name from DBusString
7961         for printing.
7962
7963 2004-10-29  Colin Walters  <walters@redhat.com>
7964
7965         * dbus/dbus-glib.h: Update documentation to not
7966         refer to internal APIs.
7967
7968 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7969
7970         * mono/Arguments.cs (GetDBusTypeConstructor):
7971         type.UnderlyingSystemType will return "System.Byte" if you do it
7972         on "byte[]", which is not what we want.  So check the type.IsArray
7973         property and use System.Array instead.
7974
7975 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7976
7977         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7978         the DBusUserInfo structure since this is passed into the function.
7979         This would cause a double free when the function that allocated
7980         the structure would try to free it when an error occured.
7981
7982         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7983         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7984         for service activation to avoid 32bit/64bit parallel install issues
7985
7986 2004-10-21  Colin Walters  <walters@verbum.org>
7987
7988         * AUTHORS: Fix my email address, the @gnu.org one
7989         has been bouncing for some time.  Also add J5.
7990         
7991 2004-10-21  Colin Walters  <walters@verbum.org>
7992
7993         * dbus/dbus-transport-unix.c (do_authentication): Return
7994         authentication status to callers.
7995         (unix_handle_watch): If we completed authentication this round,
7996         don't do another read.  Instead wait until the next iteration,
7997         after we've read any pending data in the auth buffer.
7998         (unix_do_iteration): Ditto.
7999         (unix_handle_watch): Updated for new do_authentication prototype.
8000
8001 2004-10-18  Colin Walters  <walters@verbum.org>
8002
8003         * bus/selinux.c (bus_selinux_enabled): Handle
8004         --disable-selinux case.
8005         
8006 2004-10-18  Colin Walters  <walters@verbum.org>
8007
8008         * bus/selinux.h: Add bus_selinux_enabled.
8009         
8010         * bus/selinux.c (bus_selinux_enabled): Implement it.
8011         
8012         * bus/config-parser.c (struct include): Add
8013         if_selinux_enabled member.
8014         (start_busconfig_child): Parse if_selinux_enabled
8015         attribute for include.
8016         (bus_config_parser_content): Handle it.
8017
8018         * bus/session.conf.in, bus/system.conf.in: Add
8019         inclusion of context mapping to default config files;
8020         conditional on SELinux being enabled.
8021         
8022         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
8023         
8024         * test/data/invalid-config-files/badselinux-1.conf, 
8025         test/data/invalid-config-files/badselinux-2.conf:
8026         Test files for bad syntax.
8027         
8028 2004-10-17  Colin Walters  <walters@verbum.org>
8029
8030         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
8031         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
8032         format specifier mismatches.
8033
8034 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8035
8036         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
8037         format string.
8038
8039         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
8040         pointer (bug #1540, Leonardo Boiko).
8041
8042 2004-09-28  Jon Trowbridge  <trow@ximian.com>
8043
8044         * mono/BusDriver.cs: Changed BusDriver struct to remove
8045         the ServiceCreated and ServiceDeleted events and replace them
8046         with the new ServiceOwnerChanged event.
8047
8048         * mono/example/BusListener.cs: Added a new example program,
8049         which listens for and reports any ServiceOwnerChanged events
8050         on the bus driver.
8051
8052         * mono/example/Makefile.am (DESTDIR): Build changes for the
8053         new BusListener.cs example.
8054
8055 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8056
8057         * bus/signals.c (bus_match_rule_parse): validate the components of
8058         match rules (bug #1439).
8059
8060         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
8061
8062 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8063
8064         * doc/dbus-specification.xml: document ServiceOwnerChanged
8065         signal.
8066         
8067         * bus/driver.c, bus/driver.h, bus/services.c: Use
8068         ServiceOwnerChanged signal instead of ServiceCreated and
8069         ServiceDeleted.
8070         
8071         * bus/dispatch.c: update testcase for the new signal.
8072
8073 2004-09-20  Jon Trowbridge  <trow@ximian.com>
8074
8075         Patch from Nat Friedman <nat@novell.com>
8076
8077         * mono/Makefile.am: A number of small build fixes to allow "make
8078         distcheck" to succeed.
8079
8080         * mono/example/Makefile.am: "make distcheck" fixes.
8081
8082         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
8083         key in @srcdir@.
8084
8085         * test/Makefile.am: "make distcheck" fixes.
8086
8087 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8088
8089         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
8090
8091         * doc/busconfig.dtd: update the DTD for the at_console attribute.
8092
8093         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
8094         messages after the first one (bug #1389).
8095         
8096         * bus/dispatch.c (check_double_hello_message): add a test case for
8097         the double hello message bug.
8098         (check_existent_service_activation): fix check of spawning error.
8099         
8100 2004-09-16  David Zeuthen  <david@fubar.dk>
8101
8102         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
8103
8104 2004-09-12  David Zeuthen  <david@fubar.dk>
8105
8106         Patch from Kay Sievers <kay.sievers@vrfy.org>
8107
8108         * bus/bus.c (bus_context_new):
8109         * bus/bus.h:
8110         * bus/main.c (usage)
8111         (main):
8112         Add commandline option --nofork to override configuration file
8113         setting.
8114
8115 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8116
8117         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
8118         compilers don't like it (bug #974).
8119
8120 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
8121
8122         * qt/connection.*: Applied patch by Jérôme Lodewyck
8123         <lodewyck@clipper.ens.fr> to integrate an existing
8124         connection into the Qt eventloop
8125
8126 2004-08-30  Jon Trowbridge  <trow@ximian.com>
8127
8128         * mono/BusDriver.cs: Added.  This is a class for interacting with
8129         the org.freedesktop.DBus service.
8130
8131         * mono/Message.cs: Added a mechanism to expose the message that is
8132         currently being dispatched via the static Message.Current
8133         property.  Added Message.Sender and Message.Destination
8134         properties.
8135
8136         * mono/Handler.cs: Expose the dispatched message via
8137         Message.Current when handling method calls.
8138
8139         * mono/Service.cs: Expose the dispatched message via
8140         Message.Current when handling signal emissions.
8141         
8142         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
8143         Connection.BaseService property.
8144
8145 2004-08-28  Havoc Pennington  <hp@redhat.com>
8146
8147         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
8148
8149         More fixes from Steve Grubb
8150         
8151         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
8152         (_dbus_listen_tcp_socket): fix fd leak
8153
8154         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
8155         EINTR to a bit lower in the code
8156
8157 2004-08-26  Jon Trowbridge  <trow@ximian.com>
8158
8159         * bus/driver.c (bus_driver_handle_service_exists): Respond with
8160         TRUE if we are inquiring about the existence of the built-in
8161         org.freedesktop.DBus service.
8162
8163 2004-08-25  John Palmieri  <johnp@redhat.com>
8164         * bus/config-parser.c:
8165         (struct PolicyType): Add POLICY_CONSOLE
8166         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
8167         (start_busconfig_child): Sets up console element when
8168         <policy at_console=""> is encountered in a policy file
8169         (append_rule_from_element): Convert console elements to console
8170         rules.
8171
8172         * bus/policy.c: 
8173         (bus_policy_create_client_policy): Add console rules to the client
8174         policy based on if the client is at the console
8175         (bus_policy_append_console_rule): New function for adding a
8176         console rule to a policy
8177         (bus_policy_merge): Handle console rule merging
8178
8179         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
8180         where we check for console user files
8181         
8182         * dbus/dbus-sysdeps.c:
8183         (_dbus_file_exists): New function which checks if the given
8184         file exists
8185         (_dbus_user_at_console): New function which does the system
8186         specific process of checking if the user is at the console
8187
8188         * dbus/dbus-userdb.c:
8189         (_dbus_is_console_user): New function converts a UID to user name
8190         and then calls the system specific _dbus_user_at_console to 
8191         see if the user is at the console and therefor a console user
8192
8193 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8194
8195         * bus/config-parser.c (set_limit):
8196         * bus/dbus-daemon-1.1.in:
8197         * test/data/valid-config-files/many-rules.conf: set the
8198         max_match_rules_per_connection limt from the config file. 
8199
8200         * doc/busconfig.dtd: update the DTD.
8201
8202         * bus/driver.c: remove some unused variables.
8203
8204 2004-08-24  Mikael Hallendal  <micke@imendio.com>
8205
8206         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
8207         it's been replaced by dbus_g_bus_get
8208
8209 2004-08-23  Colin Walters  <walters@redhat.com>
8210
8211         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8212
8213         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
8214
8215         * bus/selinux.c: Create a thread for policy reload notification.
8216         (bus_selinux_get_policy_root): Implement.
8217
8218         * bus/config-parser.c (start_busconfig_child)
8219         (bus_config_parser_content): Support SELinux-root relative
8220         inclusion.
8221
8222         * configure.in <HAVE_SELINUX>: Add -lpthread.
8223         
8224         * bus/test-main.c (test_pre_hook, test_post_hook): New.
8225         (test_post_hook): Move memory checking into here.
8226         (test_pre_hook, test_post_hook): Move SELinux checks in
8227         here, but conditional on a DBUS_TEST_SELINUX environment
8228         variable.  Unfortunately we can't run the SELinux checks
8229         as a normal user, since they won't have any permissions
8230         for /selinux.  So this will have to be tested manually
8231         for now, until we have virtualization for most of
8232         libselinux.
8233         
8234 2004-08-23  Havoc Pennington  <hp@redhat.com>
8235
8236         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
8237         drop supplementary groups, suggested by Steve Grubb
8238
8239 2004-08-20  Colin Walters  <walters@redhat.com>
8240
8241         * bus/config-parser.c (start_busconfig_child): Remove some unused
8242         variables.
8243         
8244         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
8245         warning.
8246
8247 2004-08-17  Joe Shaw  <joeshaw@novell.com>
8248
8249         * configure.in: If --enable-mono is passed in, if we can't find
8250         mono error out.
8251
8252         * mono/Makefile.am: Use /gacutil to install assemblies into the
8253         GAC and not /root.
8254
8255 2004-08-12  Havoc Pennington  <hp@redhat.com>
8256
8257         * NEWS: update for 0.22
8258
8259         * configure.in: release 0.22
8260
8261 2004-08-11  Colin Walters  <walters@redhat.com>
8262
8263         * tools/dbus-send.c (main, usage): Add --reply-timeout
8264         argument.
8265
8266 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8267
8268         * bus/bus.c (process_config_first_time_only): get rid of an unused
8269         DBusError that was causing a memoy leak (bug #989).
8270
8271         * dbus/dbus-keyring.c, dbus/dbus-message.c:
8272         fix compilation on Solaris/Forte C (bug #974)
8273
8274         * bus/main.c (main): plug two minuscule memleaks.
8275
8276 2004-08-10  Havoc Pennington  <hp@redhat.com>
8277
8278         * doc/dbus-tutorial.xml: add some more info on GLib bindings
8279
8280 2004-08-09  Havoc Pennington  <hp@redhat.com>
8281
8282         * COPYING: switch to Academic Free License version 2.1 instead of
8283         2.0, to resolve complaints about patent termination clause.
8284
8285 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
8286
8287         * README: added documentation for the --enable-python 
8288         configure switch.
8289
8290 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8291
8292         * bus/config-parser.c (bus_config_parser_new): fix an invalid
8293         _unref in the SELinux support.
8294
8295         * doc/busconfig.dtd: update DTD for SELinux support.
8296
8297         * bus/config-loader-libxml.c: fix error handler and parser
8298         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8299
8300         * configure.in: remove the warning about libxml2.
8301
8302         * dbus/dbus-bus.c: silence doxygen warning.
8303
8304 2004-07-31  Colin Walters  <walters@redhat.com>
8305
8306         * configure.in: Move #error in SELinux check to its own line.
8307
8308 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8309
8310         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8311         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8312         dbus_error_set.
8313
8314         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8315         broken by the change in the _SET_OOM macros.
8316
8317 2004-07-31  Colin Walters  <walters@redhat.com>
8318
8319         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8320         BUS_SET_OOM.
8321
8322 2004-07-31  Colin Walters  <walters@redhat.com>
8323
8324         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8325         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8326         AC_MSG_CHECKING.
8327
8328 2004-07-24  Havoc Pennington  <hp@redhat.com>
8329
8330         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8331
8332         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8333         functionality
8334
8335         * configure.in: add --enable-selinux
8336         
8337         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8338
8339         * bus/main.c (main): initialize and shut down selinux
8340
8341         * bus/connection.c: store SELinux ID on each connection, to avoid 
8342         repeated getting of the string context and converting it into 
8343         an ID
8344
8345         * bus/bus.c (bus_context_get_policy): new accessor, though it
8346         isn't used
8347         (bus_context_check_security_policy): check whether the security
8348         context of sender connection can send to the security context of
8349         recipient connection
8350
8351         * bus/config-parser.c: add parsing for <selinux> and <associate>
8352         
8353         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8354         implement dbus_connection_get_unix_fd()
8355
8356         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8357         function, used by the selinux stuff
8358         
8359 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8360
8361         * bus/config-loader-libxml.c: complete the implementation of
8362         libxml backend for config file loader. Doesn't work with full OOM
8363         test yet. 
8364         
8365         * configure.in: change error when selecting libxml into a warning.
8366         
8367         * test/data/invalid-config-files: add two non-well-formed XML
8368         files. 
8369         
8370         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8371         
8372         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8373         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8374         be necessary to read all the buffer. (bug #894)
8375
8376         * bus/activation.c (bus_activation_activate_service): fix a
8377         potential assertion failure (bug #896). Small optimization in the
8378         case of auto-activation messages.
8379
8380         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8381         add test case for byte-through-vararg bug (#901). patch by Kimmo
8382         Hämäläinen. 
8383
8384 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8385
8386         * python/dbus.py:
8387         * python/dbus_bindings.pyx.in:
8388         Add dbus.init_gthreads (), allow emit_signal to pass
8389         arguments to the signal.
8390         
8391 2004-07-24  Havoc Pennington  <hp@redhat.com>
8392
8393         * AUTHORS: add some people, not really comprehensively, let me
8394         know if I missed you
8395
8396 2004-07-24  Havoc Pennington  <hp@redhat.com>
8397
8398         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8399         Owen
8400
8401         * test/Makefile.am (DIST_SUBDIRS): here also
8402
8403 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8404
8405         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8406         breaking build on Solaris, reported by Farhad Saberi on the ML.
8407
8408         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8409         va_arg invocation to account for integer promotion in the case of
8410         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8411
8412         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8413         _dbus_list_get_first_link, not _dbus_list_get_first.
8414
8415         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8416
8417         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8418         handler functions so that the asserts in _dbus_object_subtree_unref
8419         do not fail.
8420
8421         * dbus/dbus-transport-unix.c (do_reading):
8422         _dbus_transport_queue_messages return value is of type
8423         dbus_bool_t, not DBusDispatchStatus.
8424         
8425 2004-07-19  David Zeuthen  <david@fubar.dk>
8426
8427         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8428
8429         * bus/dispatch.c:
8430         (check_get_connection_unix_user): Debug says GetProperty; but the
8431         method is called GetConnectionUnixUser
8432         (check_get_connection_unix_process_id): New function
8433         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8434         also call check_get_connection_unix_process_id()
8435         
8436         * bus/driver.c:
8437         (bus_driver_handle_get_connection_unix_process_id): New function,
8438         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8439         interface
8440         
8441         * dbus/dbus-auth.c:
8442         (handle_server_data_external_mech): Set pid from the credentials
8443         obtained from the socket
8444         
8445         * dbus/dbus-connection.c:
8446         (dbus_connection_get_unix_process_id): New function
8447         
8448         * dbus/dbus-connection.h: 
8449         Add prototype for dbus_connection_get_unix_process_id
8450         
8451         * dbus/dbus-transport.c:
8452         (_dbus_transport_get_unix_process_id): New function
8453         
8454         * dbus/dbus-transport.h:
8455         Add prototype for _dbus_transport_get_unix_process_id
8456         
8457 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8458
8459         * dbus/dbus-message.c: Message counter fix, patch by Christian
8460         Hammond <chipx86@gnupdate.org>
8461
8462 2004-07-18  Seth Nickell  <seth@gnome.org>
8463
8464         * python/dbus.py:
8465         * python/dbus_bindings.pyx.in:
8466         * python/tests/test-client.py:
8467
8468         Add dbus.ByteArray and dbus_bindings.ByteArray
8469         types so that byte streams can be passed back.
8470
8471         Give jdahlin the heaps of credit that are so
8472         rightfully his.
8473         
8474 2004-07-12  Seth Nickell  <seth@gnome.org>
8475
8476         * python/dbus.py:
8477
8478         Add message argument to the default object_method_handler
8479         function.
8480         
8481         * python/dbus_bindings.pyx.in:
8482
8483         Automatically return NIL when passed an empty list
8484         (we can't pass back a list since lists are typed
8485         and we don't have any idea what type the the client
8486         intended the list to be... :-( )
8487         
8488 2004-07-10  Seth Nickell  <seth@gnome.org>
8489
8490         * python/examples/Makefile.am:
8491
8492         Fix distcheck breakage caused by new examples.
8493
8494 2004-07-10  Seth Nickell  <seth@gnome.org>
8495
8496         * python/dbus.py:
8497
8498         Add "message" argument to service-side dbus.Object
8499         methods. This will break existing services written
8500         using the python bindings, but will allow extraction
8501         of all the message information (e.g. who its from).
8502
8503         Add improved "object oriented" signal handling/emission.
8504         
8505         * python/examples/example-service.py:
8506
8507         Nix this example.
8508         
8509         * python/examples/example-signal-emitter.py:
8510         * python/examples/example-signal-recipient.py:
8511
8512         Two new examples that show how to emit and receive
8513         signals using the new APIs.
8514         
8515         * python/examples/example-signals.py:
8516         * python/examples/gconf-proxy-service.py:
8517         * python/examples/gconf-proxy-service2.py:
8518
8519         Add "message" argument to service methods.
8520
8521 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8522
8523         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8524         * dbus/bus.c (dbus_bus_get_unix_user)
8525         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8526         method of org.freedesktop.DBus interface.
8527
8528         * bus/dispatch.c: test case
8529
8530 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8531
8532         * python/Makefile.am: switched include directory from glib/ to dbus/
8533         since dbus-glib.h moved
8534  
8535 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8536
8537         * configure.in: prevent building the gcj stuff and libxml loader
8538         since they are broken.
8539
8540 2004-06-20  Havoc Pennington  <hp@redhat.com>
8541
8542         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8543         codes from the dbus error names
8544         
8545         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8546         as dbus/dbus-glib.h and that breakage is now visible due to 
8547         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8548         
8549         * glib/dbus-glib.h: s/gproxy/g_proxy/
8550
8551         * dbus/dbus-shared.h: new header to hold stuff shared with
8552         binding APIs
8553         
8554         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8555         than dbus-errors.h
8556
8557         * glib/dbus-glib.h (dbus_set_g_error): move to
8558         dbus-glib-lowlevel.h
8559
8560         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8561         of stuff to enable this
8562
8563         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8564
8565         * a bunch of other changes with the same basic "separate glib 
8566         bindings from dbus.h" theme
8567         
8568 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8569
8570         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8571
8572         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8573
8574 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8575
8576         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8577         the reply value of the ServiceExists message.
8578
8579 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8580
8581         * python/dbus_bindings.pyx.in: No longer need to parse path
8582         elements and pass them as arrays of strings.  The C API now
8583         accepts plain path strings.
8584         (_build_parsed_path): removed 
8585
8586 2004-06-07  Havoc Pennington  <hp@redhat.com>
8587
8588         * doc/TODO: remove auto-activation item since it's done; sort
8589         items by importance/milestone
8590
8591 2004-06-07  Havoc Pennington  <hp@redhat.com>
8592
8593         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8594         random signature when using REQUIRED_FIELDS (this hack won't work
8595         in the long term)
8596
8597         * dbus/dbus-message.c: change the signature to be a header field,
8598         instead of message->signature special-case string. Incremental
8599         step forward. Then we can fix up code to send the signature in the
8600         message, then fix up code to validate said signature, then fix up
8601         code to not put the typecodes inline, etc.
8602         (load_one_message): don't make up the signature after the fact
8603         (decode_header_data): require signature field for the known
8604         message types
8605
8606         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8607
8608         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8609
8610 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8611
8612         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8613
8614         * mono/Handler.cs: Updated to follow new path argument for
8615         (un-)registering objects.
8616
8617         * mono/example/Makefile.am:
8618         * mono/Makefile.am:
8619         * configure.in: Bumped required version for mono and use new -pkg
8620         syntax for deps
8621
8622 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8623
8624         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8625         registration functions take the path argument as char* instead of
8626         char**.
8627
8628         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8629         split off the path decompostion part of
8630         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8631         warnings. 
8632
8633         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8634         
8635 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8636  
8637         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8638         machine approach.  A state is implemented as a function that
8639         handles incoming events as specified for that state.
8640         
8641         * doc/dbus-specification.xml: Update auth protocol state machine
8642         specification to match implementation.  Remove some leftover
8643         base64 examples.
8644
8645 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8646
8647         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8648         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8649         quiet doxygen.
8650
8651         * Doxyfile.in: remove deprecated options.
8652
8653         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8654         glib/test-thread.h, glib/test-thread-client.c,
8655         glib/test-thread-server.c, glib/test-profile.c,
8656         glib/test-dbus-glib.c: remove these unused files.
8657
8658 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8659
8660         * dbus/dbus-object-tree.c
8661         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8662         non-fallback handlers (bug #684).
8663         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8664         (find_subtree_recurse): report wether the returned subtree is an
8665         exact match or a "fallback" match higher up in the tree.
8666         (object_tree_test_iteration): update test case.
8667
8668 2004-06-01  Seth Nickell  <seth@gnome.org>
8669
8670         * python/dbus_bindings.pyx.in:
8671         * python/tests/test-client.py:
8672
8673         Round off basic type support. Add dicts (yay!), and 
8674         remaining array types.
8675
8676         Make MessageIter more general so it works for dicts too.
8677
8678         Mark all loop variables as C integers.
8679         
8680 2004-05-31  Havoc Pennington  <hp@redhat.com>
8681
8682         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8683         "in" before "out"
8684
8685         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8686
8687         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8688         option that runs the tests, and start filling in some code
8689         including for starters just dumping the interfaces to stdout
8690
8691         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8692
8693         * test/data/valid-introspection-files/lots-of-types.xml: test of
8694         an example introspection file
8695
8696         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8697         "node" (I think...)
8698
8699 2004-05-31  Seth Nickell  <seth@gnome.org>
8700
8701         * python/dbus_bindings.pyx.in:
8702         * python/tests/test-client.py:
8703
8704         Test Suite: 1
8705         Python Bindings: 0
8706
8707         Fix string array memory trashing bug... oops...
8708
8709 2004-05-30  Seth Nickell  <seth@gnome.org>
8710
8711         * python/dbus.py:
8712
8713         Add a nicer-but-less-flexible alternate API for handling 
8714         calls to virtual objects in dbus.ObjectTree.
8715
8716         Screw up the argument order to the dbus.Object constructor
8717         for consistency with dbus.ObjectTree (and to make dbus_methods
8718         optional for future extension)
8719         
8720         * python/examples/Makefile.am:
8721         * python/examples/gconf-proxy-service.py:
8722         * python/examples/gconf-proxy-service2.py:
8723
8724         Alternate implementation of gconf-proxy-service using the
8725         nicer dbus.ObjectTree API.
8726         
8727         * python/examples/example-service.py:
8728         * python/tests/test-server.py
8729
8730         Reverse the argument order to deal with dbus.Object constructor
8731         changes.
8732         
8733 2004-05-30  Seth Nickell  <seth@gnome.org>
8734
8735         * python/examples/example-client.py:
8736         * python/examples/example-service.py:
8737
8738         Take it back. Lists seem to work but they're broken
8739         in the test suite. Make the base examples use
8740         lists (works fine).
8741
8742 2004-05-30  Seth Nickell  <seth@gnome.org>
8743
8744         * python/dbus_bindings.pyx.in:
8745         * python/tests/test-client.py:
8746
8747         Add some more tests and fix errors that crop up.
8748         Unfortunately, currently it seems like marshalling
8749         and unmarshalling of lists is completely broken :-(
8750
8751 2004-05-30  Seth Nickell  <seth@gnome.org>
8752
8753         * python/dbus_bindings.pyx.in:
8754
8755         Add support for ObjectPath type.
8756
8757         * python/dbus.py:
8758
8759         Refactor message handling code to a common function.
8760         
8761         * python/tests/test-client.py:
8762         * python/tests/test-server.py:
8763
8764         Add tests that check to make sure values of all types
8765         can be echoed from a service w/o mangling.
8766         
8767 2004-05-29  Seth Nickell  <seth@gnome.org>
8768
8769         * python/dbus.py:
8770
8771         Add ObjectTree class which allows implementation
8772         of trees of "virtual" objects. Basically the python
8773         wrapper for "register_fallback".
8774         
8775         * python/examples/Makefile.am
8776         * python/examples/gconf-proxy-client.py:
8777         * python/examples/gconf-proxy-service.py:
8778
8779         Implement a simple GConf proxy service that supports
8780         get/set on string and int GConf keys using the ObjectTree.
8781         
8782 2004-05-29  Seth Nickell  <seth@gnome.org>
8783
8784         * python/dbus.py:
8785         * python/examples/example-client.py:
8786         * python/examples/example-service.py:
8787         * python/examples/list-system-services.py:
8788
8789         Add SessionBus, SystemBus and ActivationBus classes
8790         so you don't need to know the special little BUS_TYPE
8791         flag.
8792         
8793 2004-05-29  Havoc Pennington  <hp@redhat.com>
8794
8795         * bus/config-parser.c (process_test_valid_subdir): temporarily
8796         stop testing config parser OOM handling, since expat has issues
8797         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8798
8799         * bus/dbus-daemon-1.1.in: change requested_reply to
8800         send_requested_reply/receive_requested_reply so we can send the
8801         replies, not just receive them.
8802
8803         * bus/config-parser.c: parse the new
8804         send_requested_reply/receive_requested_reply
8805
8806         * bus/policy.c (bus_client_policy_check_can_send): add
8807         requested_reply argument and use it
8808
8809         * bus/bus.c (bus_context_check_security_policy): pass through
8810         requested_reply status to message send check
8811
8812         * bus/system.conf.in: adapt to requested_reply change
8813         
8814 2004-05-28  Havoc Pennington  <hp@redhat.com>
8815
8816         * test/glib/test-service-glib.c (main): remove unused variable
8817
8818         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8819
8820         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8821         from the enum, no longer in use.
8822
8823         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8824         works right.
8825
8826         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8827         whether error_name passed in is a valid error name.
8828
8829 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8830
8831         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8832         OBJECT_PATH and OBJECT_PATH_ARRAY
8833
8834 2004-05-28  Seth Nickell  <seth@gnome.org>
8835
8836         * python/examples/Makefile.am:
8837
8838         Forget to add Makefile.am. Do not pass go.
8839
8840 2004-05-28  Michael Meeks  <michael@ximian.com>
8841
8842         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8843         fix no int64 case.
8844
8845         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8846
8847         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8848         (_dbus_message_iter_get_basic_type_array): impl.
8849         drastically simplify ~all relevant _get methods to use these.
8850         (_dbus_message_iter_append_basic_array),
8851         (dbus_message_iter_append_basic): impl
8852         drastically simplify ~all relevant _append methods to use these.
8853
8854         * dbus/dbus-message-builder.c (parse_basic_type) 
8855         (parse_basic_array, lookup_basic_type): impl.
8856         (_dbus_message_data_load): prune scads of duplicate /
8857         cut & paste coding.
8858
8859         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8860         (_dbus_demarshal_basic_type): implement,
8861         (demarshal_and_validate_len/arg): beef up debug.
8862         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8863
8864 2004-05-27  Seth Nickell  <seth@gnome.org>
8865
8866         * configure.in:
8867         * python/Makefile.am:
8868
8869         Include the example python apps in the tarball.
8870         
8871         * python/examples/list-system-services.py
8872
8873         Add a python new example that fetches the list of services
8874         from the system bus.
8875         
8876 2004-05-27  Seth Nickell  <seth@gnome.org>
8877
8878         * python/dbus.py:
8879         * python/dbus_bindings.pyx.in:
8880
8881         Fix failure to notify that a signal was not handled,
8882         resulted in hung functions.
8883         
8884 2004-05-25  Colin Walters  <walters@redhat.com>
8885
8886         * tools/dbus-monitor.c (main): Monitor all types of messages.
8887
8888 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8889
8890         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8891         which unregisters the object path and disposes the handler.
8892
8893 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8894  
8895         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8896          
8897         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8898         operands to && so we call dbus_message_iter_next () for the last
8899         argument also.
8900
8901 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8902
8903         * dbus/dbus-object-tree.c
8904         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8905         children even if the requested path isn't registered.
8906         (object_tree_test_iteration): test object_tree_list_registered.
8907
8908         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8909         it to 0.
8910         
8911 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8912
8913         * doc/TODO: Remove resolved items.
8914
8915         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8916         field.
8917         
8918         * bus/connection.c (bus_connections_expect_reply): Enforce the
8919         per-connection limit on pending replies.
8920         
8921         Patch from Jon Trowbridge <trow@ximian.com>:
8922  
8923         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8924         up a watch that triggers a config reload when one end of the pipe
8925         becomes readable.
8926         (signal_handler): Instead of doing the config reload in our SIGHUP
8927         handler, just write to the reload pipe and let the associated
8928         watch handle the reload when control returns to the main loop.
8929  
8930         * bus/driver.c (bus_driver_handle_reload_config): Added.
8931         Implements a ReloadConfig method for requesting a configuration
8932         file reload via the bus driver.
8933  
8934 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8935
8936         * HACKING: Updated release instructions concerning the wiki page.
8937
8938 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8939
8940         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8941         filter against auth->allowed_mechs; we only add allowed mechs in
8942         record_mechanisms().
8943  
8944         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8945         ALLOWED_MECHS to auth-script format so we can set the list of
8946         allowed mechanisms.
8947  
8948         * data/auth/client-out-of-mechanisms.auth-script: New test to
8949         check client disconnects when it is out of mechanisms to try.
8950  
8951         * dbus/dbus-auth.c (process_command): Remove check for lines
8952         longer that 1 MB; we only buffer up maximum 16 kB.
8953  
8954         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8955         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8956         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8957         assume there might be unused bytes.
8958  
8959         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8960         client-out-of-mechs, it is handled in process_reject(). Move check
8961         for max failures to send_rejected(), as it's a server-only thing.
8962
8963         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8964         send_auth(), send_data(), send_rejected(), send_error(),
8965         send_ok(), send_begin() and send_cancel().
8966
8967 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8968
8969         Remove base64 encoding, replace with hex encoding. Original patch
8970         from trow@ximian.com, added error handling.
8971
8972         * dbus/dbus-string.c (_dbus_string_base64_encode)
8973         (_dbus_string_base64_decode): Remove.
8974         (_dbus_string_hex_decode): Add end_return argument so we can
8975         distinguish between OOM and invalid hex encoding.
8976         (_dbus_string_test): Remove base64 tests and add test case for
8977         invalid hex.
8978
8979         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8980         Replace base64 with hex.
8981
8982         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8983         for invalid hex encoded data in auth protocol.
8984
8985 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8986
8987         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8988         leak.
8989
8990 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8991
8992         * mono/dbus-sharp.dll.config.in: Added for GAC
8993         * mono/dbus-sharp.snk: Added for GAC
8994         * mono/Assembly.cs.in: Added for GAC
8995         * mono/Makefile.am: Changes for GAC installation        
8996         * configure.in: Added refs for dbus-sharp.dll.config.in and
8997         Assembly.cs.in. More fixes for mono testing
8998         * mono/example/Makefile.am: Changed var to CSC
8999         * Makefile.am: Changed flag name to DBUS_USE_CSC
9000
9001 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
9002
9003         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
9004         * mono/doc/*: Added documentation framework
9005         * configure.in: Added monodoc check
9006         * README: Added description of mono configure flags
9007
9008 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
9009
9010         * doc/dbus-specification.xml: Added a "Required" column to the 
9011         header fields table and changed the "zero or more" verbage in
9012         the above paragraph to read "The header must contain the required 
9013         named header fields and zero or more of the optional named header 
9014         fields".
9015         * test/data/invalid-messages/*.message: Added the required PATH 
9016         named header field to the tests so that they don't fail on 
9017         'Missing path field'
9018
9019 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
9020
9021         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
9022         the stack by implicitly defining variable and parameter types and
9023         removing the hack of defining C pointers as python objects and later
9024         casting them.
9025
9026 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
9027
9028         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
9029
9030 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
9031
9032         * mono/DBusType/Dict.cs: Handle empty dicts
9033         * mono/DBusType/Array.cs: Handle empty arrays
9034         * mono/Arguments.cs: Handle empty arguments
9035
9036 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
9037
9038         * dbus-sharp.pc.in: Modified to include include Libs and Requires
9039         field
9040
9041 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
9042
9043         * test/data/valid-messages/standard-*.message: Update message
9044         test scripts to new header field names.
9045
9046 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
9047
9048         * test/break-loader.c (randomly_do_n_things): tracked down buffer
9049         overflow to times_we_did_each_thing array which would chop off the
9050         first character of the failure_dir string. Increased the size of
9051         the array to 7 to reflect the number of random mutation functions
9052         we have.
9053
9054 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
9055
9056         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
9057         unix_server->watch here, it is unreffed in disconnect.
9058         (_dbus_server_new_for_tcp_socket): convert NULL host to
9059         "localhost" here so we don't append NULL to address.
9060         
9061         * dbus/dbus-server.c (_dbus_server_test): Add test case for
9062         various addresses, including tcp with no explicit host.
9063
9064 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9065
9066         * dbus/dbus-message.c (decode_header_data, decode_string_field):
9067         fix incorrect setting of .name_offset in the HeaderField (it was
9068         off by two bytes, positioned right after the name and typecode)
9069
9070         * bus/bus.c (bus_context_new, bus_context_unref): test before
9071         calling dbus_server_free_data_slot and _dbus_user_database_unref
9072         in case of an error.
9073
9074         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
9075         by libdbus-gtool.
9076
9077 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
9078
9079         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
9080         _dbus_poll() instead of select().
9081
9082 2004-04-15  Jon Trowbridge  <trow@ximian.com>
9083
9084         * bus/main.c (signal_handler): Reload the configuration files
9085         on SIGHUP.
9086         (main): Set up our SIGHUP handler.
9087
9088         * bus/bus.c (struct BusContext): Store the config file, user and
9089         fork flag in the BusContext.
9090         (process_config_first_time_only): Added.  Contains the code
9091         (previously in bus_context_new) for setting up the BusContext from
9092         the BusConfigParser that should only be run the first time the
9093         config files are read.
9094         (process_config_every_time): Added.  Contains the code (previously
9095         in bus_context_new) for setting up the BusContext from the
9096         BusConfigParser that should be run every time the config files are
9097         read.
9098         (load_config): Added.  Builds a BusConfigParser from the config
9099         files and passes the resulting structure off to
9100         process_config_first_time_only (assuming this is the first time)
9101         and process_config_every_time.
9102         (bus_context_new): All of the config-related code has been moved
9103         to process_config_first_time_only and process_config_every_time.
9104         Now this function just does the non-config-related initializations
9105         and calls load_config.
9106         (bus_context_reload_config): Added.
9107
9108 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9109
9110         * bus/driver.c (bus_driver_handle_get_service_owner):
9111         implement a GetServiceOwner method.
9112         * doc/dbus-specification.xml: document it.
9113         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
9114         
9115         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
9116         implement, using the bus GetServiceOwner method.
9117
9118         * test/glib/test-dbus-glib.c:
9119         use dbus_gproxy_new_for_service_owner so that we can receive the
9120         signal. 
9121
9122 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
9123
9124         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9125         dbus/dbus-message.c, dbus/dbus-protocol.h
9126         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
9127
9128         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9129         dbus/dbus-message.c, dbus/dbus-protocol.h
9130         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
9131
9132         * dbus/dbus-internals.c (_dbus_header_field_to_string):
9133         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
9134         DBUS_HEADER_FIELD_SENDER resolves to "sender"
9135
9136         * doc/dbus-specification.xml (Header Fields Table):
9137         s/SERVICE/DESTINATION
9138         s/SENDER_SERVICE/SENDER
9139
9140
9141 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9142
9143         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
9144         a few seconds.
9145
9146 2004-04-13  Michael Meeks  <michael@ximian.com>
9147
9148         * glib/dbus-gobject.c (handle_introspect): split out
9149         (introspect_properties): this.
9150         (handle_introspect): implement this.
9151
9152         * test/glib/Makefile.am: use the absolute path so the bus
9153         daemon's chdir ("/") doesn't kill us dead.
9154
9155         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
9156
9157 2004-04-12  Jon Trowbridge  <trow@ximian.com>
9158
9159         * bus/config-parser.c (struct BusConfigParser): Added
9160         included_files field.
9161         (seen_include): Added.  Checks whether or not a file has already
9162         been included by any parent BusConfigParser.
9163         (bus_config_parser_new): Copy the parent's included_files.
9164         (include_file): Track which files have been included, and fail on
9165         circular inclusions.
9166         (process_test_valid_subdir): Changed printf to report if we are
9167         testing valid or invalid conf files.
9168         (all_are_equiv): Changed printf to be a bit clearer about
9169         what we are actually doing.
9170         (bus_config_parser_test): Test invalid configuration files.
9171
9172 2004-04-09  Jon Trowbridge  <trow@ximian.com>
9173
9174         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
9175         argument.  If non-null, the newly-constructed BusConfigParser will
9176         be initialized with the parent's BusLimits instead of the default
9177         values.
9178         (include_file): When including a config file, pass in
9179         the current parser as the parent and then copy the BusLimits
9180         from the included BusConfigParser pack to the current parser.
9181         (process_test_valid_subdir): Renamed from process_test_subdir.
9182         (process_test_equiv_subdir): Added.  Walks through a directory,
9183         descending into each subdirectory and loading the config files
9184         it finds there.  If any subdirectory contains two config files
9185         that don't produce identical BusConfigParser structs, fail.
9186         For now, the BusConfigParser's BusPolicies are not compared.
9187         (bus_config_parser_test): Call both process_test_valid_subdir and
9188         process_test_equiv_subdir.
9189
9190         * bus/config-loader-libxml.c (bus_config_load): Take a parent
9191         argument and pass it along to the call to bus_config_parser_new.
9192         Also made a few small changes to allow this code to compile.
9193
9194         * bus/config-loader-expat.c (bus_config_load): Take a parent
9195         argument and pass it along to the call to bus_config_parser_new.
9196
9197         * bus/bus.c (bus_context_new): Load the config file
9198         with a NULL parent argument.
9199
9200 2004-03-29  Michael Meeks  <michael@ximian.com>
9201
9202         * glib/dbus-gobject.c (introspect_properties): split
9203         out, fix mangled 'while' flow control.
9204         (introspect_signals): implement.
9205         (handle_introspect): update.
9206
9207 2004-03-29  Michael Meeks  <michael@ximian.com>
9208
9209         * glib/dbus-gobject.c (set_object_property): split out / 
9210         re-work, use the property type, and not the message type(!)
9211         (get_object_property): ditto.
9212
9213         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
9214         (dbus_gvalue_marshal): make this code re-usable, needed
9215         for signals too, also on both proxy and server side.
9216         Re-write for more efficiency / readability.
9217
9218 2004-03-29  Michael Meeks  <michael@ximian.com>
9219
9220         * dbus/dbus-message.c
9221         (dbus_message_new_error_printf): impl.
9222
9223         * dbus/dbus-connection.c
9224         (dbus_connection_unregister_object_path): fix warning.
9225
9226         * configure.in: fix no-mono-installed situation.
9227
9228 2004-03-27  Havoc Pennington  <hp@redhat.com>
9229
9230         Patch from Timo Teräs:
9231         
9232         * tools/dbus-send.c (main): if --print-reply, assume type is
9233         method call; support boolean type args
9234         
9235         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
9236         bunch of memleak and logic bugs
9237         
9238 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9239
9240         * mono/Arguments.cs:
9241         * mono/Introspector.cs:
9242         * mono/Handler.cs:
9243         * mono/InterfaceProxy.cs:
9244         * mono/Message.cs
9245         * mono/ProxyBuilder.cs:
9246         * mono/Service.cs:
9247         Added InterfaceProxy class to avoid building proxies for every
9248         object.
9249
9250         * dbus-message.h:
9251         * dbus-message.c (dbus_message_append_args_valist)
9252         (dbus_message_iter_get_object_path)
9253         (dbus_message_iter_get_object_path_array)
9254         (dbus_message_iter_append_object_path)
9255         (dbus_message_iter_append_object_path_array):
9256         Added object_path iter functions to handle OBJECT_PATH arguments
9257         
9258 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9259
9260         First checkin of mono bindings.
9261         * configure.in:
9262         * Makefile.am:
9263         Build stuff for the bindings
9264         * dbus-sharp.pc.in: Added for pkgconfig
9265         
9266 2004-03-21  Havoc Pennington  <hp@redhat.com>
9267
9268         * test/test-service.c (main): remove debug spew
9269
9270 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9271
9272         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
9273         arrays
9274
9275         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
9276         (dbus_message_iter_init_array_iterator)
9277         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
9278         indicate whether the iterator is empty
9279
9280         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
9281         warnings
9282
9283 2004-03-19  Havoc Pennington  <hp@redhat.com>
9284
9285         * NEWS: 0.21 updates
9286
9287         * configure.in: 0.21
9288
9289         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
9290         
9291         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
9292         you don't need pyrex to make dist
9293
9294         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
9295         sources; run moc
9296         
9297 2004-03-18  Richard Hult  <richard@imendio.com>
9298
9299         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9300         (dbus_message_set_auto_activation): Add doxygen docs.
9301
9302 2004-03-16  Richard Hult  <richard@imendio.com>
9303
9304         * bus/activation.c: (bus_activation_service_created),
9305         (bus_activation_send_pending_auto_activation_messages),
9306         (bus_activation_activate_service):
9307         * bus/activation.h:
9308         * bus/dispatch.c: (bus_dispatch),
9309         (check_nonexistent_service_auto_activation),
9310         (check_service_auto_activated),
9311         (check_segfault_service_auto_activation),
9312         (check_existent_service_auto_activation), (bus_dispatch_test):
9313         * bus/driver.c: (bus_driver_handle_activate_service):
9314         * bus/services.c: (bus_registry_acquire_service):
9315         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9316         (dbus_message_get_auto_activation):
9317         * dbus/dbus-message.h:
9318         * dbus/dbus-protocol.h: Implement auto-activation.
9319         
9320         * doc/dbus-specification.xml: Add auto-activation to the spec.
9321
9322 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9323
9324         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9325         fix a bug with CUSTOM types.
9326
9327         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9328         a unit test for this bug (used to fail).
9329
9330 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9331
9332         * bus/activation.c:
9333         (babysitter_watch_callback): notify all pending activations waiting for
9334           the same exec that the activation failed.
9335         (bus_activation_activate_service): shortcut the activation if we 
9336           already waiting for the same executable to start up.
9337
9338 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9339
9340         * bus/activation.c: 
9341         - Added service file reloading. 
9342           Each service files directory is kept in an hash table in 
9343           BusActivation and each BusActivationEntry knows what .service-file it
9344           was read from. So when you try to activate a service the bus will 
9345           check if it's been updated, removed or if new .service-files has 
9346           been installed.
9347         - Test code at the bottom for the service file reloading.
9348         * bus/test-main.c: (main):
9349         * bus/test.h:
9350         - added service reloading test.
9351         * dbus/dbus-sysdeps.c: 
9352         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9353
9354 2004-03-08  Michael Meeks  <michael@ximian.com>
9355
9356         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9357         bail immediately if disconnected, to avoid busy loop.
9358
9359         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9360         cleanup cut/paste/inefficiency.
9361
9362 2004-03-01  David Zeuthen  <david@fubar.dk>
9363
9364         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9365         bug where args were used twice. This bug resulted in a segfault
9366         on a Debian/PPC system when starting the messagebus daemon. Include
9367         dbus-sysdeps.h for DBUS_VA_COPY
9368
9369         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9370
9371         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9372         appropriate va_copy implementation. From GLib
9373         
9374 2004-02-24  Joe Shaw  <joe@ximian.com>
9375
9376         * bus/services.c (bus_registry_acquire_service): We need to pass
9377         in the service name to dbus_set_error() to prevent a crash.
9378
9379 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9380
9381         * AUTHORS: Reveal my True identity.
9382
9383 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9384
9385         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9386         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9387
9388 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9389
9390         * doc/TODO: Added not about better error check of configuration files.
9391
9392 2003-12-02  Richard Hult  <richard@imendio.com>
9393
9394         * Update AFL version to 2.0 throughout the source files to reflect
9395         the update that was done a while ago.
9396
9397 2003-12-02  Richard Hult  <richard@imendio.com>
9398
9399         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9400         wrote_dict_key to FALSE on the iter that the dict is appended to,
9401         just like when appending other types. Fixes a bug where a dict
9402         couldn't be put inside a dict.
9403         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9404         (message_iter_test, _dbus_message_test): Add test case for dict
9405         inside dict.
9406
9407 2003-12-01  David Zeuthen  <david@fubar.dk>
9408
9409         * python/dbus.py: Add the actual message when calling the reciever
9410         of a signal such that parameters can be inspected. Add the method
9411         remove_signal_receiver
9412         
9413 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9414
9415         * bus/*.[ch]:
9416         * dbus/*.[ch]:
9417         * glib/*.[ch]: Made ref functions return the pointer
9418
9419 2003-11-25  Zack Rusin  <zack@kde.org>
9420
9421         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9422
9423         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9424         wrappers,
9425
9426         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9427         the Integrator and to better fit with the server,
9428
9429 2003-11-24  Zack Rusin  <zack@kde.org>
9430
9431         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9432         the integrator handles it now
9433
9434         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9435         since QTimer wasn't really meant to be used the way DBusTimeout is
9436
9437 2003-11-24  Zack Rusin  <zack@kde.org>
9438
9439         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9440         Integrator class which integrates D-BUS with the Qt event loop,
9441
9442         * qt/connection.h, qt/connection.cpp: Move all the code which
9443         was dealing with D-BUS integration to the Integrator class,
9444         and start using Integrator,
9445
9446 2003-11-23  Zack Rusin  <zack@kde.org>
9447
9448         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9449         wrapper
9450
9451         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9452         switching namespaces to DBusQt, reworking the class,
9453
9454         * Makefile.cvs: switching dependencies so that it matches KDE 
9455         schematics,
9456         
9457         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9458         the library
9459
9460 2003-11-19  Havoc Pennington  <hp@redhat.com>
9461
9462         * NEWS: update
9463
9464         * configure.in: bump version to 0.20
9465
9466         * configure.in (have_qt): add yet another place to look for qt
9467         (someone hand trolltech a .pc file...)
9468
9469 2003-11-01  Havoc Pennington  <hp@redhat.com>
9470
9471         * doc/dbus-specification.xml: add state machine docs on the auth
9472         protocol; just a first draft, I'm sure it's wrong.      
9473
9474 2003-10-28  David Zeuthen  <david@fubar.dk>
9475
9476         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9477         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9478         
9479 2003-10-28  Havoc Pennington  <hp@redhat.com>
9480
9481         * dbus/dbus-message.c (get_next_field): delete unused function
9482
9483 2003-10-28  Havoc Pennington  <hp@redhat.com>
9484
9485         * bus/expirelist.c (do_expiration_with_current_time): detect
9486         failure of the expire_func due to OOM
9487
9488         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9489
9490         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9491         NoReply error that's now created by the bus when the service exits
9492
9493 2003-10-28  Havoc Pennington  <hp@redhat.com>
9494
9495         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9496         tests for set_path, set_interface, set_member, etc.
9497
9498         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9499
9500         * dbus/dbus-message.c (set_string_field): always just delete and
9501         re-append the field; accept NULL for deletion
9502         (re_align_fields_recurse): reimplement
9503         
9504 2003-10-26  Havoc Pennington  <hp@redhat.com>
9505
9506         * dbus/dbus-connection.c: fix docs to properly describe the
9507         disconnected message
9508         (_dbus_connection_notify_disconnected): remove this function; 
9509         we can't synchronously add the disconnected message, we have to 
9510         do it after we've queued any remaining real messages
9511         (_dbus_connection_get_dispatch_status_unlocked): queue the
9512         disconnect message only if the transport has finished queueing all
9513         its real messages and is disconnected.
9514         (dbus_connection_disconnect): update the dispatch status here
9515
9516 2003-10-22  Havoc Pennington  <hp@redhat.com>
9517
9518         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9519
9520         * bus/connection.c (bus_transaction_send_from_driver): set the
9521         destination to the connection's base service
9522
9523 2003-10-20  Havoc Pennington  <hp@redhat.com>
9524
9525         hmm, make check is currently not passing.
9526         
9527         * doc/dbus-specification.xml: add requirement that custom type
9528         names follow the same rules as interface names.
9529
9530         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9531         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9532         'map'
9533
9534         * doc/dbus-specification.xml: update type codes to match
9535         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9536         CUSTOM. Add type OBJECT_PATH to the spec.
9537
9538 2003-10-17  Havoc Pennington  <hp@redhat.com>
9539
9540         * bus/driver.c (create_unique_client_name): use "." as separator
9541         in base service names instead of '-'
9542
9543         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9544         byte at the end of the string
9545
9546         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9547         optimization macros since string validation seems to be a slow
9548         point.
9549         
9550         * doc/dbus-specification.xml: restrict valid
9551         service/interface/member/error names. Add test suite code for the
9552         name validation.
9553
9554         * dbus/dbus-string.c: limit service/interface/member/error names 
9555         to [0-9][A-Z][a-z]_
9556
9557         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9558         format arg to verbose spew
9559
9560         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9561         memory, return instead of g_error
9562
9563         * test/test-service.c (path_message_func): support emitting a
9564         signal on request
9565
9566         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9567         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9568         assuming the activation bus was the session bus so that services
9569         started manually will still register.
9570         (init_connections_unlocked): fix so that in OOM situation we get
9571         the same semantics when retrying the function
9572         
9573         * test/test-service.c (main): change to use path registration, to
9574         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9575         than DBUS_BUS_SESSION
9576
9577 2003-10-16  Havoc Pennington  <hp@redhat.com>
9578
9579         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9580
9581         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9582         coverage of the tests
9583         (coverage-report.txt): don't move the .da and .bbg files around
9584
9585 2003-10-16  Havoc Pennington  <hp@redhat.com>
9586
9587         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9588         to put there
9589
9590 2003-10-16  Havoc Pennington  <hp@redhat.com>
9591
9592         * bus/connection.c (bus_pending_reply_expired): either cancel or
9593         execute, not both
9594         (bus_connections_check_reply): use unlink, not remove_link, as we
9595         don't want to free the link; fixes double free mess
9596
9597         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9598         where no reply was received
9599
9600         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9601         fix a refcount leak
9602
9603         * bus/signals.c (match_rule_matches): add special cases for the
9604         bus driver, so you can match on sender/destination for it.
9605
9606         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9607         DBUS_PRINT_BACKTRACE is set
9608
9609         * dbus/dbus-internals.c: add pid to assertion failure messages
9610
9611         * dbus/dbus-connection.c: add message type code to the debug spew
9612
9613         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9614         sender=foo not service=foo
9615
9616         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9617         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9618         DBUS_ACTIVATION_ADDRESS instead
9619
9620         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9621         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9622
9623         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9624         context struct
9625
9626         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9627         (dbus_message_iter_get_object_path_array): new function (half
9628         finished, disabled for the moment)
9629         
9630         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9631         DBUS_MESSAGE_TYPE_ERROR
9632
9633         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9634         avoid redirecting stderr to /dev/null
9635         (babysit): close stdin if not doing the "exit_with_session" thing
9636
9637         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9638         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9639         stdout/stdin, so things don't get confused
9640         
9641         * bus/system.conf.in: fix to allow replies, I modified .conf
9642         instead of .conf.in again.
9643
9644 2003-10-14  David Zeuthen  <david@fubar.dk>
9645
9646         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9647         argtype to arg_type when raising unknown arg type exception.
9648         Changed type list to reflect the changes in dbus-protocol.h so 
9649         the bindings actually work.
9650
9651 2003-10-14  Havoc Pennington  <hp@redhat.com>
9652
9653         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9654         to have a bug keeping it from outputting the .da files sometimes
9655         (string_get_string): don't append garbage nul bytes to the string.
9656
9657 2003-10-15  Seth Nickell  <seth@gnome.org>
9658
9659         * python/Makefile.am:
9660
9661         Include dbus_h_wrapper.h in the dist tarball.
9662
9663 2003-10-14  Havoc Pennington  <hp@redhat.com>
9664
9665         * bus/bus.c (bus_context_check_security_policy): revamp this to
9666         work more sanely with new policy-based requested reply setup
9667
9668         * bus/connection.c (bus_transaction_send_from_driver): set bus
9669         driver messages as no reply
9670
9671         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9672         requested_reply attribute on allow/deny rules
9673
9674         * bus/system.conf: add <allow requested_reply="true"/>
9675
9676         * bus/driver.c (bus_driver_handle_message): fix check for replies
9677         sent to the bus driver, which was backward. How did this ever work
9678         at all though? I think I'm missing something.
9679
9680         * dbus/dbus-message.c (decode_header_data): require error and
9681         method return messages to have a reply serial field to be valid
9682         (_dbus_message_loader_queue_messages): break up this function;
9683         validate that reply serial and plain serial are nonzero; 
9684         clean up the OOM/error handling.
9685         (get_uint_field): don't return -1 from this
9686         (dbus_message_create_header): fix signed/unsigned bug
9687
9688         * bus/connection.c (bus_connections_expect_reply): save serial of
9689         the incoming message, not reply serial
9690
9691 2003-10-14  Havoc Pennington  <hp@redhat.com>
9692
9693         * bus/connection.c: implement pending reply tracking using
9694         BusExpireList
9695
9696         * bus/bus.c (bus_context_check_security_policy): verify that a
9697         reply is pending in order to allow a reply to be sent. Deny 
9698         messages of unknown type.
9699
9700         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9701
9702         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9703         (bus_context_get_reply_timeout): new
9704
9705 2003-10-13  Seth Nickell  <seth@gnome.org>
9706
9707         * python/Makefile.am:
9708
9709         Pass "make distcheck": remove a couple files from DIST_FILES
9710         that weren't included in the final version.
9711
9712 2003-10-12  Havoc Pennington  <hp@pobox.com>
9713
9714         Added test code that 1) starts an actual bus daemon and 2) uses
9715         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9716         more testing possible, but this is the basic framework.
9717         
9718         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9719         empty proxy lists from the proxy list hash
9720
9721         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9722         couple of return_if_fail checks
9723
9724         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9725         to allocate, so everything is cleared to NULL as it should be.
9726
9727         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9728         source as data to dbus_connection_set_timeout_functions() as the 
9729         timeout functions expected
9730
9731         * test/glib/run-test.sh: add a little script to start up a message
9732         bus and run tests using it
9733
9734         * tools/dbus-launch.1: updates
9735
9736         * tools/dbus-launch.c (main): add --config-file option
9737
9738         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9739         that could never be reached.
9740
9741         * dbus/dbus-message.c (dbus_message_new_method_return) 
9742         (dbus_message_new_error, dbus_message_new_signal): set the
9743         no-reply-expected flag on all these. Redundant, but may
9744         as well be consistent.
9745
9746 2003-10-11  Havoc Pennington  <hp@pobox.com>
9747
9748         * test/decode-gcov.c (function_solve_graph): make broken block
9749         graph a nonfatal error since it seems to be broken. Need to debug
9750         this.
9751
9752         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9753         can't just check type > INVALID < LAST anymore
9754
9755         * dbus/dbus-message.c (dbus_message_get_signature): new function
9756         (dbus_message_has_signature): new function
9757         (struct DBusMessage): add signature field (right now it isn't sent
9758         over the wire, just generated on the fly)
9759         (dbus_message_copy): copy the signature, and init strings to
9760         proper length to avoid some reallocs
9761         (dbus_message_iter_init_array_iterator): return void, since it
9762         can't fail
9763         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9764         (_dbus_message_loader_queue_messages): add silly temporary hack to
9765         fill in message->signature on load
9766
9767         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9768         characters, so they are relatively human-readable.
9769
9770 2003-10-11  Havoc Pennington  <hp@pobox.com>
9771
9772         * dbus/dbus-message.c (_dbus_message_test): add more test
9773         coverage, but #if 0 for now since they uncover a bug 
9774         not fixed yet; I think in re_align_field_recurse()
9775         (re_align_field_recurse): add FIXME about broken assertion
9776
9777         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9778
9779         * bus/connection.c: share a couple code bits with expirelist.c
9780
9781         * bus/expirelist.h, bus/expirelist.c: implement a generic
9782         expire-items-after-N-seconds facility, was going to share between
9783         expiring connections and replies, decided not to use for expiring
9784         connections for now.
9785
9786         * COPYING: include AFL 2.0 (still need to change all the file headers)
9787
9788 2003-10-09  Havoc Pennington  <hp@redhat.com>
9789
9790         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9791         gcc 3.3. Not that we do anything about it yet.
9792
9793         * bus/signals.c (bus_match_rule_parse): impose max length on the
9794         match rule text
9795
9796         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9797
9798 2003-10-09  Havoc Pennington  <hp@redhat.com>
9799
9800         Make matching rules theoretically work (add parser).
9801         
9802         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9803         the case where destination is explicitly specified as bus driver
9804         and someone else is eavesdropping.
9805         
9806         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9807         definition of eavesdropping and assertion
9808
9809         * tools/dbus-send.c (main): use dbus_message_type_from_string
9810
9811         * bus/signals.c (bus_match_rule_parse): implement
9812
9813         * dbus/dbus-message.c (dbus_message_type_from_string): new
9814
9815         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9816
9817 2003-10-02  Havoc Pennington  <hp@pobox.com>
9818
9819         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9820         dbus_gproxy_oneway_call
9821
9822         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9823         (dbus_server_setup_with_g_main): fix to allow calling them more
9824         than once on the same args
9825         (dbus_bus_get_with_g_main): new function
9826
9827 2003-10-02  Havoc Pennington  <hp@redhat.com>
9828
9829         * doc/dbus-tutorial.xml: write some stuff
9830
9831 2003-09-29  Havoc Pennington  <hp@pobox.com>
9832
9833         * configure.in: split checks for Doxygen from XML docs, check for
9834         xmlto
9835
9836         * doc/Makefile.am: XML-ify all the docs, and add a blank
9837         dbus-tutorial.xml
9838
9839 2003-09-29  Havoc Pennington  <hp@pobox.com>
9840
9841         * Merge dbus-object-names branch. To see the entire patch 
9842         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9843         it's huuuuge though.
9844         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9845         
9846 2003-09-28  Havoc Pennington  <hp@pobox.com>
9847
9848         * HACKING: update to reflect new server
9849
9850 2003-09-26  Seth Nickell  <seth@gnome.org>
9851
9852         * python/dbus.py:
9853         * python/examples/example-signals.py:
9854
9855         Start implementing some notions of signals. The API
9856         is really terrible, but they sort of work (with the
9857         exception of being able to filter by service, and to
9858         transmit signals *as* a particular service). Need to
9859         figure out how to make messages come from the service
9860         we registered :-(
9861         
9862         * python/dbus_bindings.pyx.in:
9863
9864         Removed duplicate message_handler callbacks.
9865         
9866 2003-09-25  Havoc Pennington  <hp@redhat.com>
9867
9868         * bus/session.conf.in: fix my mess
9869
9870 2003-09-25  Havoc Pennington  <hp@pobox.com>
9871
9872         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9873
9874 2003-09-25  Seth Nickell  <seth@gnome.org>
9875
9876         * python/examples/example-service.py:
9877
9878         Johan notices complete wrong code in example-service, but
9879         completely wrong in a way that works exactly the same (!).
9880         Johan is confused, how could this possibly work? Example
9881         code fails to serve purpose of making things clear.
9882         Seth fixes.
9883
9884 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9885
9886         * doc/dbus-specification.sgml: don't require header fields
9887         to be 4-byte aligned and specify that fields should be
9888         distinguished from padding by the fact that zero is not
9889         a valid field name.
9890         
9891         * doc/TODO: remove re-alignment item and add item to doc
9892         the OBJECT_PATH type.
9893         
9894         * dbus/dbus-message.c:
9895         (HeaderField): rename the original member to value_offset
9896         and introduce a name_offset member to keep track of where
9897         the field actually begins.
9898         (adjust_field_offsets): remove.
9899         (append_int_field), (append_uint_field),
9900         (append_string_field): don't align the start of the header
9901         field to a 4-byte boundary.
9902         (get_next_field): impl finding the next marhsalled field
9903         after a given field.
9904         (re_align_field_recurse): impl re-aligning a number of
9905         already marshalled fields.
9906         (delete_field): impl deleting a field of any type and
9907         re-aligning any following fields.
9908         (delete_int_or_uint_field), (delete_string_field): remove.
9909         (set_int_field), (set_uint_field): no need to re-check
9910         that we have the correct type for the field.
9911         (set_string_field): ditto and impl re-aligning any
9912         following fields.
9913         (decode_header_data): update to take into account that
9914         the fields aren't 4-byte aligned any more and the new
9915         way to distinguish padding from header fields. Also,
9916         don't exit when there is too much header padding.
9917         (process_test_subdir): print the directory.
9918         (_dbus_message_test): add test to make sure a following
9919         field is re-aligned correctly after field deletion.
9920         
9921         * dbus/dbus-string.[ch]:
9922         (_dbus_string_insert_bytes): rename from insert_byte and
9923         allow the insert of multiple bytes.
9924         (_dbus_string_test): test inserting multiple bytes.
9925
9926         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9927         warning note to docs about having to re-align any
9928         marshalled values following the string.
9929         
9930         * dbus/dbus-message-builder.c:
9931         (append_string_field), (_dbus_message_data_load):
9932         don't align the header field.
9933         
9934         * dbus/dbus-auth.c: (process_test_subdir): print the
9935         directory.
9936         
9937         * test/break-loader.c: (randomly_add_one_byte): upd. for
9938         insert_byte change.
9939         
9940         * test/data/invalid-messages/bad-header-field-alignment.message:
9941         new test case.
9942         
9943         * test/data/valid-messages/unknown-header-field.message: shove
9944         a dict in the unknown field.
9945
9946 2003-09-25  Seth Nickell  <seth@gnome.org>
9947
9948         * python/dbus.py:
9949         * python/dbus_bindings.pyx.in:
9950
9951         Handle return values.
9952         
9953         * python/examples/example-client.py:
9954         * python/examples/example-service.py:
9955
9956         Pass back return values from the service to the client.
9957         
9958 2003-09-24  Seth Nickell  <seth@gnome.org>
9959
9960         * python/dbus.py:
9961
9962         Connect Object methods (when you are sharing an object) up... pass
9963         in a list of methods to be shared. Sharing all the methods just
9964         worked out too weird. You can now create nice Services over the
9965         DBus in Python. :-)
9966         
9967         * python/dbus_bindings.pyx.in:
9968
9969         Keep references to user_data tuples passed into C functions so 
9970         Python doesn't garbage collect on us.
9971
9972         Implement MethodReturn and Error subclasses of Message for creating
9973         DBusMessage's of those types.
9974         
9975         * python/examples/example-client.py:
9976         * python/examples/example-service.py:
9977
9978         Simple example code showing both how create DBus services and objects,
9979         and how to use them.
9980
9981 2003-09-23  Havoc Pennington  <hp@pobox.com>
9982
9983         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9984
9985 2003-09-23  Havoc Pennington  <hp@redhat.com>
9986
9987         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9988         (dbus_gproxy_disconnect_signal): implement
9989         (dbus_gproxy_manager_remove_signal_match): implement
9990         (dbus_gproxy_manager_add_signal_match): implement
9991         (dbus_gproxy_oneway_call): implement
9992
9993 2003-09-23  Havoc Pennington  <hp@pobox.com>
9994
9995         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9996         subclass. This means dropping the transparent thread safety of the
9997         proxy; you now need a separate proxy per-thread, or your own
9998         locking on the proxy. Probably right anyway.
9999         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
10000
10001 2003-09-22  Havoc Pennington  <hp@redhat.com>
10002
10003         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
10004
10005 2003-09-21  Seth Nickell  <seth@gnome.org>
10006
10007         First checkin of the Python bindings.
10008         
10009         * python/.cvsignore:
10010         * python/Makefile.am:
10011         * python/dbus_bindings.pyx.in:
10012         * python/dbus_h_wrapper.h:
10013
10014         Pieces for Pyrex to operate on, building a dbus_bindings.so
10015         python module for low-level access to the DBus APIs.
10016         
10017         * python/dbus.py:
10018
10019         High-level Python module for accessing DBus objects.
10020
10021         * configure.in:
10022         * Makefile.am:
10023
10024         Build stuff for the python bindings.
10025
10026         * acinclude.m4:
10027
10028         Extra macro needed for finding the Python C header files.
10029
10030 2003-09-21  Havoc Pennington  <hp@pobox.com>
10031
10032         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
10033         implementing the proxy manager, didn't get very far.
10034
10035         * dbus/dbus-bus.c (dbus_bus_add_match): new
10036         (dbus_bus_remove_match): new
10037
10038         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
10039         path_name argument; adjust the other not-yet-implemented 
10040         gproxy constructors to be what I think they should be.
10041
10042 2003-09-21  Havoc Pennington  <hp@pobox.com>
10043
10044         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
10045         by default for message bus connections.
10046
10047         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
10048         exit_on_disconnect flag is set and we process the disconnected
10049         signal.
10050         (dbus_connection_set_exit_on_disconnect): new function
10051
10052 2003-09-21  Havoc Pennington  <hp@pobox.com>
10053
10054         Get matching rules mostly working in the bus; only actually
10055         parsing the rule text remains. However, the client side of
10056         "signal connections" hasn't been started, this patch is only the
10057         bus side.
10058         
10059         * dbus/dispatch.c: fix for the matching rules changes
10060         
10061         * bus/driver.c (bus_driver_handle_remove_match)
10062         (bus_driver_handle_add_match): send an ack reply from these
10063         method calls
10064
10065         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
10066         arguments, reported by Seth Nickell
10067
10068         * bus/config-parser.c (append_rule_from_element): support
10069         eavesdrop=true|false attribute on policies so match rules 
10070         can be prevented from snooping on the system bus.
10071
10072         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
10073         and "destination" in attribute names; fix some docs bugs; 
10074         add eavesdrop=true|false attribute
10075
10076         * bus/driver.c (bus_driver_handle_add_match)
10077         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
10078         messages
10079
10080         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
10081         rid of broadcast service concept, signals are just always broadcast
10082
10083         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
10084         mostly implement matching rules stuff (currently only exposed as signal
10085         connections)
10086
10087 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
10088
10089         * doc/dbus-specification.sgml: Change the header field name
10090         to be an enum and update the rest of the spec to reference
10091         the fields using the conventinal name.
10092
10093         * dbus/dbus-protocol.h: update to reflect the spec.
10094
10095         * doc/TODO: add item to remove the 4 byte alignment requirement.
10096         
10097         * dbus/dbus-message.c: Remove the code to generalise the
10098         header/body length and serial number header fields as named
10099         header fields so we can reference field names using the 
10100         protocol values.
10101         (append_int_field), (append_uint_field), (append_string_field):
10102         Append the field name as a byte rather than four chars.
10103         (delete_int_or_uint_field), (delete_string_field): reflect the
10104         fact that the field name and typecode now occupy 4 bytes instead
10105         of 8.
10106         (decode_string_field), (decode_header_data): update to reflect
10107         protocol changes and move the field specific encoding from
10108         decode_string_field() back into decode_header_data().
10109         
10110         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
10111         Add utility to aid debugging.
10112         
10113         * dbus/dbus-message-builder.c:
10114         (append_string_field), (_dbus_message_data_load): Update to
10115         reflect protocol changes; Change the FIELD_NAME directive
10116         to HEADER_FIELD and allow it to take the field's conventional
10117         name rather than the actual value.
10118         
10119         * test/data/*/*.message: Update to use HEADER_FIELD instead
10120         of FIELD_NAME; Always align the header on an 8 byte boundary
10121         *before* updating the header length.
10122
10123 2003-09-15  Havoc Pennington  <hp@pobox.com>
10124
10125         * dbus/dbus-pending-call.c: add the get/set object data
10126         boilerplate as for DBusConnection, etc. Use generic object data
10127         for the notify callback.
10128
10129         * glib/dbus-gparser.c (parse_node): parse child nodes
10130
10131         * tools/dbus-viewer.c: more hacking on the dbus-viewer
10132         
10133         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
10134         contain functions shared between the convenience lib and the
10135         installed lib
10136
10137         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
10138         -export-symbols-regex to the GLib library
10139
10140         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
10141         fix the locking in here, and add a default handler for
10142         Introspect() that just returns sub-nodes.
10143
10144 2003-09-14  Havoc Pennington  <hp@pobox.com>
10145
10146         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
10147         rather than gfoo consistent
10148
10149         * glib/dbus-gproxy.h: delete for now, move contents to
10150         dbus-glib.h, because the include files don't work right since we
10151         aren't in the dbus/ subdir.
10152         
10153         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
10154         (dbus_gproxy_end_call): finish
10155         (dbus_gproxy_begin_call): finish
10156
10157         * glib/dbus-gmain.c (dbus_set_g_error): new
10158
10159         * glib/dbus-gobject.c (handle_introspect): include information
10160         about child nodes in the introspection
10161
10162         * dbus/dbus-connection.c (dbus_connection_list_registered): new
10163         function to help in implementation of introspection
10164
10165         * dbus/dbus-object-tree.c
10166         (_dbus_object_tree_list_registered_and_unlock): new function
10167
10168 2003-09-12  Havoc Pennington  <hp@pobox.com>
10169
10170         * glib/dbus-gidl.h: add common base class for all the foo_info
10171         types
10172
10173         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
10174         similar to kdcop
10175
10176         * test/Makefile.am: try test srcdir -ef . in addition to test
10177         srcdir = ., one of them should work (yeah lame)
10178         
10179         * glib/Makefile.am: build the "idl" parser stuff as a convenience
10180         library
10181         
10182         * glib/dbus-gparser.h: make description_load routines return
10183         NodeInfo* not Parser*
10184
10185         * Makefile.am (SUBDIRS): build test dir after all library dirs
10186
10187         * configure.in: add GTK+ detection
10188
10189 2003-09-07  Havoc Pennington  <hp@pobox.com>
10190
10191         * Make Doxygen contented.
10192
10193 2003-09-07  Havoc Pennington  <hp@pobox.com>
10194
10195         * doc/dbus-specification.sgml: more updates
10196
10197 2003-09-06  Havoc Pennington  <hp@pobox.com>
10198
10199         * doc/dbus-specification.sgml: partial updates
10200
10201         * bus/dbus-daemon-1.1.in: fix the config file docs for the
10202         zillionth time; hopefully I edited the right file this time.
10203
10204         * bus/config-parser.c (append_rule_from_element): support
10205         send_type, send_path, receive_type, receive_path
10206
10207         * bus/policy.c: add message type and path to the list of things
10208         that can be "firewalled"
10209
10210 2003-09-06  Havoc Pennington  <hp@pobox.com>
10211
10212         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
10213         (dbus_connection_register_object_path): make this not handle
10214         messages to paths below the given path
10215
10216 2003-09-03  Havoc Pennington  <hp@pobox.com>
10217
10218         * test/glib/Makefile.am: add this with random glib-linked test
10219         programs
10220
10221         * glib/Makefile.am: remove the random test programs from here,
10222         leave only the unit tests
10223
10224         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
10225         uscore/javacaps conversion, and fix     
10226         (get_object_property, set_object_property): change to .NET
10227         convention for mapping props to methods, set_FooBar/get_FooBar, 
10228         since one language has such a convention we may as well copy it. 
10229         Plus real methods in either getFooBar or get_foo_bar style won't 
10230         collide with this convention.
10231
10232 2003-09-01  Havoc Pennington  <hp@pobox.com>
10233
10234         * glib/dbus-gparser.c: implement
10235
10236         * glib/dbus-gobject.c: start implementing skeletons support
10237
10238         * configure.in: when disabling checks/assert, also define
10239         G_DISABLE_ASSERT and G_DISABLE_CHECKS
10240
10241 2003-09-01  Havoc Pennington  <hp@pobox.com>
10242
10243         * glib/Makefile.am: rearrange a bunch of files and get "make
10244         check" framework set up
10245
10246 2003-08-31  Havoc Pennington  <hp@pobox.com>
10247
10248         * fix build with --disable-tests
10249
10250 2003-08-30  Havoc Pennington  <hp@pobox.com>
10251
10252         * dbus/dbus-connection.c: purge DBusMessageHandler
10253
10254         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
10255         use callbacks everywhere
10256
10257 2003-08-30  Havoc Pennington  <hp@pobox.com>
10258
10259         * test/data/valid-config-files/system.d/test.conf: change to 
10260         root for the user so warnings don't get printed
10261
10262         * dbus/dbus-message.c: add dbus_message_get_path,
10263         dbus_message_set_path
10264         
10265         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
10266         dispatching to a path
10267
10268         * dbus/dbus-string.c (_dbus_string_validate_path): add
10269
10270         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
10271         (_dbus_marshal_object_path): implement
10272
10273         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
10274         to contain the path to the target object
10275         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
10276         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
10277
10278 2003-08-30  Havoc Pennington  <hp@pobox.com>
10279
10280         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
10281
10282 2003-08-29  Havoc Pennington  <hp@pobox.com>
10283
10284         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
10285         registered
10286         (struct DBusObjectSubtree): shrink this
10287         a lot, since we may have a lot of them
10288         (_dbus_object_tree_free_all_unlocked): implement
10289         (_dbus_object_tree_dispatch_and_unlock): implement
10290
10291 2003-08-29  Havoc Pennington  <hp@pobox.com>
10292
10293         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
10294
10295 2003-08-28  Havoc Pennington  <hp@pobox.com>
10296
10297         purge DBusObjectID
10298         
10299         * dbus/dbus-connection.c: port to no ObjectID, create a
10300         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10301
10302         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10303         everything except UnregisterFunction and MessageFunction
10304         
10305         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10306         add DBUS_TYPE_OBJECT_PATH
10307         
10308         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10309         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10310         path-based object IDs
10311
10312 2003-08-25  Havoc Pennington  <hp@pobox.com>
10313
10314         Just noticed that dbus_message_test is hosed, I wonder when I
10315         broke that. I thought make check was passing earlier...
10316         
10317         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10318         container tree, will replace most of dbus-object-registry
10319
10320         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10321         screwup
10322
10323 2003-08-19  Havoc Pennington  <hp@pobox.com>
10324
10325         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10326         (dbus_message_is_error): fix this function
10327
10328         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10329         match
10330
10331         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10332         reflect clarified man page
10333         (bus_client_policy_check_can_send): ditto
10334         
10335         * bus/session.conf.in: fixup
10336
10337         * bus/system.conf.in: fixup
10338
10339 2003-08-18  Havoc Pennington  <hp@redhat.com>
10340
10341         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10342
10343         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10344         dumb bug created earlier (wrong order of args to
10345         decode_header_data())
10346         
10347         * tools/dbus-send.c: port
10348
10349         * tools/dbus-print-message.c (print_message): port
10350
10351         * test/data/*messages: port all messages over
10352         
10353         * dbus/dbus-message-builder.c: support including 
10354         message type
10355         
10356         * bus/driver.c: port over
10357         
10358         * bus/dispatch.c: port over to new stuff
10359
10360         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10361         rename disconnect signal to "Disconnected"
10362
10363 2003-08-17  Havoc Pennington  <hp@pobox.com>
10364
10365         This doesn't compile yet, but syncing up so I can hack on it from
10366         work. What are branches for if not broken code? ;-)
10367         
10368         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10369         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10370         DBUS_HEADER_FIELD_ERROR_NAME
10371         
10372         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10373         for the interface+member pairs
10374         (string_hash): change to use g_str_hash algorithm
10375         (find_direct_function, find_string_function): refactor these to
10376         share most code.
10377         
10378         * dbus/dbus-message.c: port all of this over to support 
10379         interface/member fields instead of name field
10380
10381         * dbus/dbus-object-registry.c: port over
10382         
10383         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10384         from _dbus_string_validate_name
10385
10386         * bus/dbus-daemon-1.1: change file format for the 
10387         <deny>/<allow> stuff to match new message naming scheme
10388
10389         * bus/policy.c: port over
10390
10391         * bus/config-parser.c: parse new format
10392         
10393 2003-08-16  Havoc Pennington  <hp@pobox.com>
10394
10395         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10396         broken assertion
10397
10398         * glib/dbus-gproxy.c: some hacking
10399
10400 2003-08-15  Havoc Pennington  <hp@redhat.com>
10401
10402         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10403
10404         * dbus/dbus-connection.c
10405         (dbus_connection_send_with_reply_and_block): factor out internals;
10406         change to convert any error replies to DBusError instead of 
10407         returning them as a message
10408
10409 2003-08-15  Havoc Pennington  <hp@pobox.com>
10410
10411         * dbus/dbus-connection.c, 
10412         dbus/dbus-pending-call.c: Finish the pending call stuff
10413
10414 2003-08-14  Havoc Pennington  <hp@redhat.com>
10415
10416         * dbus/dbus-pending-call.c: start on new object that will replace
10417         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10418         replies
10419
10420         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10421         with remote interfaces
10422
10423         * dbus/dbus-gidl.c: do the boring boilerplate in here
10424         
10425 2003-08-12  Havoc Pennington  <hp@pobox.com>
10426
10427         * bus/dispatch.c (bus_dispatch): make this return proper 
10428         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10429
10430         * dbus/dbus-errors.c (dbus_set_error): use
10431         _dbus_string_append_printf_valist
10432
10433         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10434         (_dbus_string_append_printf): new
10435
10436         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10437         UNKNOWN_METHOD
10438
10439         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10440         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10441         message is unhandled.
10442
10443 2003-08-11  Havoc Pennington  <hp@pobox.com>
10444
10445         * bus/test.c (client_disconnect_handler): change to return
10446         HANDLED (would have been REMOVE_MESSAGE)
10447
10448         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10449         HANDLED/NOT_YET_HANDLED instead of
10450         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10451         should be used.
10452
10453 2003-08-10  Havoc Pennington  <hp@pobox.com>
10454
10455         * tools/dbus-send.c (main): add --type argument, for now
10456         supporting only method_call and signal types.
10457
10458         * tools/dbus-print-message.c: print message type
10459
10460         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10461         init connection->objects
10462
10463         * doc/dbus-specification.sgml: fix sgml
10464
10465         * bus/*.c: port over to object-instance API changes
10466
10467         * test/test-service.c: ditto
10468         
10469         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10470         name, we will have to fix up the rest of the code to also handle
10471         this
10472         (dbus_message_new): generic message-creation call
10473         (set_string_field): allow appending name field
10474
10475 2003-08-06  Havoc Pennington  <hp@pobox.com>
10476
10477         * dbus/dbus-object-registry.c: implement signal connection 
10478         and dispatch
10479
10480         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10481
10482         * dbus/dbus-internals.c (_dbus_memdup): new function
10483
10484 2003-08-02  Havoc Pennington  <hp@pobox.com>
10485
10486         * dbus/dbus-message.c (dbus_message_get_no_reply)
10487         (dbus_message_set_no_reply): add these and remove
10488         set_is_error/get_is_error
10489
10490         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10491         remove the ERROR flag, since there's now an ERROR type
10492
10493 2003-08-01  Havoc Pennington  <hp@pobox.com>
10494
10495         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10496         implement
10497
10498         * dbus/dbus-message.c (dbus_message_get_type): new function
10499
10500         * doc/dbus-specification.sgml: add "type" byte to messages
10501
10502 2003-08-01  Havoc Pennington  <hp@pobox.com>
10503
10504         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10505         a message type enum to distinguish kinds of message
10506         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10507         that need not be replied to
10508
10509 2003-08-01  Havoc Pennington  <hp@pobox.com>
10510
10511         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10512         (unpack_8_octets): fix no-64-bit-int bug
10513
10514         * dbus/dbus-object-registry.c (validate_id): validate the 
10515         connection ID bits, not just the instance ID.
10516
10517         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10518         the connection-global 33 bits of the object ID
10519
10520         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10521         object ID in the new way
10522
10523         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10524         define server/client/instance bits.
10525
10526 2003-07-30  Havoc Pennington  <hp@pobox.com>
10527
10528         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10529         build
10530
10531 2003-07-13  Havoc Pennington  <hp@pobox.com>
10532
10533         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10534         fields to DBusObjectVTable and DBusObjectInfo
10535
10536 2003-07-12  Havoc Pennington  <hp@pobox.com>
10537
10538         * dbus/dbus-object-registry.c: implement unit test,
10539         fix bugs discovered in process
10540
10541         * dbus/dbus-connection.c: remove handler_table and
10542         register_handler(), add DBusObjectRegistry usage
10543
10544         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10545         (dbus_object_id_set_null): new functions
10546
10547 2003-07-08  Havoc Pennington  <hp@pobox.com>
10548
10549         * dbus/dbus-object.c: implement some of this
10550
10551         * dbus/dbus-object-registry.c
10552         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10553         param
10554         (_dbus_object_registry_new): handle OOM
10555
10556 2003-07-08  Havoc Pennington  <hp@pobox.com>
10557
10558         * dbus/dbus-object.h: sketch out an API for registering objects
10559         with a connection, that allows us to use as little as 24 bytes
10560         per object and lets application code represent an object in 
10561         any conceivable way.
10562
10563         * dbus/dbus-object-registry.c: implement the hard bits of the
10564         DBusConnection aspect of object API. Not yet wired up.
10565         
10566 2003-07-06  Havoc Pennington  <hp@pobox.com>
10567
10568         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10569         (_dbus_marshal_object_id): new
10570         (_dbus_demarshal_object_id): new
10571         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10572         consolidate identical switch cases. Don't conditionalize handling
10573         of DBUS_TYPE_UINT64, need to handle the type always.
10574         (_dbus_marshal_validate_arg): consolidate identical cases, and
10575         handle DBUS_TYPE_OBJECT_ID
10576
10577         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10578
10579         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10580
10581 2003-09-28  Havoc Pennington  <hp@pobox.com>
10582
10583         * real 0.13 release
10584
10585 2003-09-28  Havoc Pennington  <hp@pobox.com>
10586
10587         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10588         to work with Debian db2html
10589
10590 2003-09-28  Havoc Pennington  <hp@pobox.com>
10591
10592         * configure.in: 0.13
10593
10594         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10595         stylesheet-images for benefit of Debian
10596         
10597         Change back to using filesystem-linked sockets for the system
10598         bus, so only root can create the default system bus address.
10599         
10600         * bus/system.conf.in: change to use
10601         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10602
10603         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10604         from here.
10605
10606         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10607         here, and AC_DEFINE DBUS_SYSTEM_PATH
10608
10609 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10610
10611         * doc/TODO:
10612         * doc/busconfig.dtd:
10613         Add busconfig DTD.
10614         
10615 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10616
10617         * doc/dbus-specification.sgml:
10618         Add activation reply values.
10619         
10620 2003-08-05  Havoc Pennington  <hp@redhat.com>
10621
10622         * configure.in: 0.12
10623
10624 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10625
10626         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10627         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10628         (add_watch), (remove_watch), (create_source):
10629         Refcount fds, fixes some reentrancy issues.
10630         
10631 2003-07-30  Havoc Pennington  <hp@redhat.com>
10632
10633         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10634         bus address to be abstract if we have abstract sockets
10635
10636         * NEWS: update
10637
10638 2003-07-28  Havoc Pennington  <hp@redhat.com>
10639
10640         * bus/messagebus.in: fix to avoid processname/servicename 
10641         confusion, from Michael Kearey
10642         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10643         
10644 2003-07-23  Havoc Pennington  <hp@pobox.com>
10645
10646         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10647         fix from Andy Hanton to remove broken "+1"
10648
10649 2003-07-16  Havoc Pennington  <hp@pobox.com>
10650
10651         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10652         babysitter process, as suggested by Thomas Leonard, so 
10653         an "eval `dbus-launch --exit-with-session`" will actually 
10654         return
10655
10656 2003-07-16  Havoc Pennington  <hp@pobox.com>
10657
10658         * configure.in: print out EXPANDED_* variables in the summary at
10659         the end; clean up the code that computes EXPANDED_ variables and
10660         get the ones using exec_prefix right. Should make things work
10661         when you build without --prefix
10662
10663 2003-06-29  Havoc Pennington  <hp@pobox.com>
10664
10665         * mono/Test.cs (class Test): fire up a main loop and run it
10666
10667         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10668         done once, the app has to do it
10669
10670 2003-06-26  Havoc Pennington  <hp@pobox.com>
10671
10672         * mono/Connection.cs: set up connection with the glib main loop
10673
10674 2003-07-01  Havoc Pennington  <hp@redhat.com>
10675
10676         * doc/dbus-specification.sgml: clarify the format of a type code,
10677         change suggested by Jim Blandy
10678
10679 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10680
10681         * doc/Makefile.am:
10682         * tools/Makefile.am: Don't assume srcdir == builddir.
10683
10684         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10685         the allocated block.
10686         (_dbus_memory_test): New function.
10687         * dbus/dbus-test.h: Add _dbus_memory_test ().
10688         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10689
10690         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10691         of %c%c%c%c.
10692         (dbus_message_new): Remove obsolete @todo.
10693
10694         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10695         (_dbus_marshal_set_uint64): Fix comment.
10696
10697         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10698         hardcode FIELD_REPLY_SERIAL.
10699
10700         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10701         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10702
10703         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10704         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10705
10706 2003-06-24  Havoc Pennington  <hp@pobox.com>
10707
10708         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10709
10710 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10711
10712         * configure.in:
10713         * gcj/.cvsignore:
10714         * gcj/Hello.java:
10715         * gcj/Makefile.am:
10716         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10717         * gcj/org/.cvsignore:
10718         * gcj/org/Makefile.am:
10719         * gcj/org/freedesktop/.cvsignore:
10720         * gcj/org/freedesktop/Makefile.am:
10721         * gcj/org/freedesktop/dbus/.cvsignore:
10722         * gcj/org/freedesktop/dbus/Makefile.am:
10723         * gcj/org/freedesktop/dbus/Message.java: (Message),
10724         (Message.Message):
10725         * gcj/org/freedesktop/dbus/natMessage.cc:
10726         Fix the build system.
10727
10728 2003-06-22  Havoc Pennington  <hp@pobox.com>
10729
10730         * mono/Connection.cs: add more bindings
10731
10732         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10733         more than once.
10734
10735 2003-06-22  Havoc Pennington  <hp@pobox.com>
10736
10737         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10738         Start wrapping more stuff.
10739
10740 2003-06-22  Havoc Pennington  <hp@pobox.com>
10741
10742         * mono/Message.cs: implement Message.Wrap() that ensures we only
10743         have a single C# wrapper per DBusMessage, assuming it works which
10744         it probably doesn't.
10745
10746         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10747         (dbus_message_free_data_slot): new
10748         (dbus_message_set_data): new
10749         (dbus_message_get_data): new
10750
10751 2003-06-22  Havoc Pennington  <hp@pobox.com>
10752
10753         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10754         (_dbus_data_slot_allocator_alloc): rework these to keep a
10755         reference count on each slot and automatically manage a global
10756         slot ID variable passed in by address
10757
10758         * bus/bus.c: convert to new dataslot API
10759
10760         * dbus/dbus-bus.c: convert to new dataslot API
10761
10762         * dbus/dbus-connection.c: convert to new dataslot API
10763
10764         * dbus/dbus-server.c: convert to new dataslot API
10765
10766         * glib/dbus-gmain.c: ditto
10767
10768         * bus/test.c: ditto
10769
10770         * bus/connection.c: ditto
10771
10772 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10773
10774         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10775         after the gcj checks so that the correct configuration tags
10776         will be added to libtool.
10777
10778         * dbus-glib-1.pc.in: No need to specify any includes since
10779         dbus-1.pc.in has those.
10780
10781 2003-06-22  Havoc Pennington  <hp@pobox.com>
10782
10783         * mono/*, gcj/*, configure.in, Makefile.am:
10784         Check in makefiles and subdirs for mono and gcj bindings.
10785         Neither binding actually exists, just trying to get through
10786         all the build and other boring bits.
10787
10788 2003-06-21  Philip Blundell  <philb@gnu.org>
10789
10790         * tools/dbus-monitor.1: Updated.
10791
10792         * tools/dbus-send.1: Likewise.
10793
10794 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10795
10796         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10797         for hangup and error after checking read so we won't discard
10798         pending data if both hangup and read are set.
10799
10800 2003-06-19  Philip Blundell  <philb@gnu.org>
10801
10802         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10803
10804         * tools/dbus-send.c: Accept both --system and --session.
10805
10806         * tools/dbus-monitor.c: Same here.
10807
10808 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10809
10810         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10811         from C++ (Patch by Miloslav Trmac).
10812
10813 2003-06-15  Joe Shaw  <joe@assbarn.com>
10814
10815         * configure.in: Check for socklen_t.
10816
10817         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10818
10819         * test/test-segfault.c: Add #include <sys/time.h>
10820
10821         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10822         dbus-launch needs it.
10823
10824 2003-06-09  Havoc Pennington  <hp@redhat.com>
10825
10826         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10827         SUN_LEN, it breaks abstract socket usage
10828
10829         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10830         starts of lines.
10831
10832 2003-06-04  Havoc Pennington  <hp@pobox.com>
10833
10834         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10835         using unix:abstract=/foo, and when listening in a tmpdir
10836         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10837
10838         * dbus/dbus-transport.c (_dbus_transport_open): support
10839         unix:abstract=/foo
10840
10841         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10842         support abstract sockets
10843
10844         * dbus/dbus-transport-unix.c
10845         (_dbus_transport_new_for_domain_socket): support abstract sockets
10846
10847         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10848         toggle as an argument, implement abstract namespace support
10849         (_dbus_listen_unix_socket): ditto
10850
10851         * configure.in: add --enable-abstract-sockets and implement
10852         a configure check for autodetection of the right value.
10853
10854 2003-06-01  Havoc Pennington  <hp@pobox.com>
10855
10856         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10857         in /tmp (though on Linux this will end up being useless,
10858         when we add abstract namespace support)
10859
10860         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10861         subst'ing it
10862
10863 2003-05-28  Colin Walters  <walters@verbum.org>
10864
10865         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10866
10867 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10868
10869         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10870
10871 2003-05-17  Colin Walters  <walters@gnu.org>
10872
10873         * tools/dbus-send.c: Don't exit with an error code if --help was
10874         passed.  Default to using the session bus instead of the system
10875         one.
10876
10877         * tools/dbus-launch.c: Ditto.
10878
10879         * tools/dbus-monitor.c: Ditto.
10880
10881         * tools/dbus-send.1: Update with new arguments.
10882
10883         * tools/dbus-launch.c: Emit code to export variables.  New
10884         arguments -s and -c to specify shell syntax, and a bit of code to
10885         autodetect syntax.  Also, allow specifying a program to run.
10886
10887         * tools/dbus-launch.1: Update with new arguments.
10888
10889         * tools/dbus-send.1: Ditto.
10890
10891         * tools/dbus-monitor.1: Ditto.
10892
10893 2003-05-17  Havoc Pennington  <hp@pobox.com>
10894
10895         * bus/config-parser.c (merge_included): merge in policies from
10896         child configuration file.
10897
10898         * bus/policy.c (bus_policy_merge): function to merge two policies
10899         together
10900
10901 2003-05-16  Havoc Pennington  <hp@redhat.com>
10902
10903         * dbus/dbus-connection.c: disable verbose lock spew
10904
10905         * tools/dbus-send.c: add --print-reply command line option
10906
10907         * tools/dbus-print-message.h (print_message): new util function
10908         shared by dbus-send and dbus-monitor
10909
10910         * tools/dbus-monitor.c (handler_func): exit on disconnect
10911
10912         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10913         disconnected, don't try to use the read_watch
10914
10915         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10916         so we can find this bug more easily
10917
10918 2003-05-16  Havoc Pennington  <hp@redhat.com>
10919
10920         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10921         NULL as DBusHashTable is annoyingly likely to do.
10922
10923 2003-05-16  Colin Walters  <walters@verbum.org>
10924
10925         * tools/dbus-monitor.c: Add --session argument and usage()
10926         function.
10927
10928         * tools/dbus-monitor.1: Update with new --session arg.
10929
10930         * bus/Makefile.am (install-data-hook): Create
10931         $(libdir)/dbus-1.0/services so that the session bus is happy.
10932
10933 2003-05-15  Havoc Pennington  <hp@redhat.com>
10934
10935         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10936         on non-x86. ifdef's are evil.
10937
10938 2003-05-15  Havoc Pennington  <hp@redhat.com>
10939
10940         * configure.in: 0.11
10941
10942         * NEWS: update
10943
10944         * bus/Makefile.am (initddir): apparently we are supposed to put
10945         init scripts in /etc/rc.d/init.d not /etc/init.d
10946
10947         * bus/Makefile.am: remove the "you must --enable-tests to make
10948         check" as it broke distcheck
10949
10950         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10951
10952 2003-05-13  James Willcox  <jwillcox@gnome.org>
10953
10954         * configure.in:
10955         * bus/activation.c: (bus_activation_service_created),
10956         (bus_activation_activate_service):
10957         * bus/driver.c: (bus_driver_send_service_deleted),
10958         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10959         (bus_driver_send_service_acquired),
10960         (bus_driver_send_welcome_message),
10961         (bus_driver_handle_list_services):
10962         * bus/session.conf.in:
10963         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10964         (dbus_bus_service_exists), (dbus_bus_activate_service):
10965         * dbus/dbus-bus.h:
10966
10967         Add some convenience API which lets you activate a service, and did a
10968         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10969         and dbus_message_get_args()
10970
10971 2003-05-11  Havoc Pennington  <hp@pobox.com>
10972
10973         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10974         calling _dbus_marshal_validate_arg() for every byte in a byte
10975         array, etc.
10976
10977         * dbus/dbus-message-handler.c: use atomic reference counting to
10978         reduce number of locks slightly; the global lock in here sucks
10979
10980         * dbus/dbus-connection.c
10981         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10982         update_dispatch_status that can be called with lock held; then use
10983         in a couple places to reduce locking/unlocking
10984         (dbus_connection_send): hold the lock over the whole function
10985         instead of acquiring it twice.
10986
10987         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10988
10989         * bus/connection.c (bus_connections_setup_connection): fix access
10990         to already-freed memory.
10991
10992         * dbus/dbus-connection.c: keep a little cache of linked list
10993         nodes, to avoid using the global linked list alloc lock in the
10994         normal send-message case. Instead we just use the connection lock
10995         that we already have to take.
10996
10997         * dbus/dbus-list.c (_dbus_list_find_last): new function
10998
10999         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
11000         change to use a struct for the atomic type; fix docs,
11001         they return value before increment, not after increment.
11002
11003         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
11004         (_dbus_string_append_8_aligned): new functions to try to
11005         microoptimize this operation.
11006         (reallocate_for_length): break this out of set_length(), to
11007         improve profile info, and also so we can consider inlining the
11008         set_length() part.
11009
11010         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
11011         strings with some preallocation, cuts down on our calls to realloc
11012         a fair bit. Though if we can get the "move entire string to empty
11013         string" optimization below to kick in here, it would be better.
11014
11015         * dbus/dbus-string.c (_dbus_string_move): just call
11016         _dbus_string_move_len
11017         (_dbus_string_move_len): add a special case for moving
11018         an entire string into an empty string; we can just
11019         swap the string data instead of doing any reallocs.
11020         (_dbus_string_init_preallocated): new function
11021
11022 2003-05-11  Havoc Pennington  <hp@pobox.com>
11023
11024         Write a "test-profile" that does echo client-server with threads;
11025         profile reveals lock contention, memcpy/realloc of buffers, and
11026         UTF-8 validation as hot spots. 20% of lock contention eliminated
11027         with dbus_atomic_inc/dec implementation on x86.  Much remaining
11028         contention is global mempool locks for GList and DBusList.
11029
11030         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
11031         x86 implementation
11032
11033         * dbus/dbus-connection.c (struct DBusConnection): use
11034         dbus_atomic_t for the reference count
11035
11036         * dbus/dbus-message.c (struct DBusMessage): declare
11037         dbus_atomic_t values as volatile
11038
11039         * configure.in: code to detect ability to use atomic integer
11040         operations in assembly, from GLib patch
11041
11042         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
11043         time, tired of it being wrong in threads and forked processes
11044
11045         * glib/test-profile.c: a little program to bounce messages back
11046         and forth between threads and eat CPU
11047
11048         * dbus/dbus-connection.c: add debug spew macros for debugging
11049         thread locks; include config.h at top; fix deadlock in
11050         dbus_connection_flush()
11051
11052 2003-05-08  Havoc Pennington  <hp@pobox.com>
11053
11054         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
11055         data from getting written, and there wasn't a good reason to
11056         use _exit really.
11057
11058         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
11059         dbus_verbose lines in test coverage
11060         (main): add list of functions sorted by # of untested blocks
11061         to the coverage report
11062
11063         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
11064
11065         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
11066
11067         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
11068         extend test coverage
11069
11070         * test/data/auth/cancel.auth-script: test canceling an
11071         authentication
11072
11073         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
11074         aren't used. in CVS history if we end up needing them.
11075
11076 2003-05-04  Havoc Pennington  <hp@pobox.com>
11077
11078         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
11079         unit test
11080
11081         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
11082         function, which assumed length was in # of strings, not bytes
11083
11084         * dbus/dbus-message.c (_dbus_message_test): add tests for some
11085         missing coverage
11086
11087         * dbus/dbus-connection.c
11088         (_dbus_connection_queue_received_message): disable function for
11089         now, we are only using it in test mode
11090
11091         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11092         remove a mistaken FIXME
11093
11094 2003-05-04  Havoc Pennington  <hp@pobox.com>
11095
11096         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
11097         unlock mutex on successful return, patch from Anders Gustafsson
11098
11099 2003-05-04  Havoc Pennington  <hp@pobox.com>
11100
11101         * dbus-glib-1.pc.in (Requires): fix dependencies, from
11102         Anders Gustafsson
11103
11104 2003-05-04  Havoc Pennington  <hp@pobox.com>
11105
11106         * tools/dbus-launch.c: implement
11107
11108         * bus/main.c (main), bus/bus.c (bus_context_new):
11109         implement --print-pid and --fork
11110
11111 2003-05-03  Havoc Pennington  <hp@redhat.com>
11112
11113         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
11114         the address had no value, and add to test suite. Fix and
11115         regression test from Miloslav Trmac
11116
11117 2003-05-03  Havoc Pennington  <hp@pobox.com>
11118
11119         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
11120         watch is invalid when handled
11121
11122         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
11123         dbus-launch utility to launch the bus from a shell script.  Didn't
11124         actually implement dbus-launch yet, it's just a placeholder still.
11125
11126 2003-05-03  Havoc Pennington  <hp@pobox.com>
11127
11128         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
11129         daemon; also documents daemon config file, so replaces
11130         doc/config-file.txt. Corrected some stuff from config-file.txt in
11131         the process of moving it.
11132
11133 2003-05-03  Havoc Pennington  <hp@pobox.com>
11134
11135         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
11136         add some man pages
11137
11138 2003-05-03  Colin Walters  <walters@verbum.org>
11139
11140         * dbus/dbus-sysdeps.c (fill_user_info): Test against
11141         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
11142
11143         * Makefile.am: Update to use new .pc versioning scheme.
11144
11145 2003-05-02  Havoc Pennington  <hp@redhat.com>
11146
11147         * bus/system.conf.in: allow send/receive to/from message bus
11148         service
11149
11150 2003-04-30  Havoc Pennington  <hp@redhat.com>
11151
11152         * configure.in: print a note when building with unit tests and
11153         without assertions
11154
11155 2003-04-30  Havoc Pennington  <hp@redhat.com>
11156
11157         * Makefile.am: add a check-local that complains if you didn't
11158         configure with --enable-tests
11159
11160 2003-04-29  Havoc Pennington  <hp@redhat.com>
11161
11162         * glib/dbus-gmain.c: docs cleanups
11163
11164         * dbus/dbus-types.h: add docs on int64 types
11165
11166         * dbus/dbus-memory.c: fix docs to avoid putting private API in
11167         public API docs section
11168
11169 2003-04-29  Havoc Pennington  <hp@redhat.com>
11170
11171         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
11172         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
11173         parallel install API version, not with the D-BUS package version.
11174
11175         * HACKING: move some of README over here
11176
11177         * README: updates, and document API/ABI policy
11178
11179         * configure.in: reindentation
11180
11181 2003-04-29  Havoc Pennington  <hp@redhat.com>
11182
11183         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
11184         to use this library" to be sure people have the right
11185         expectations.
11186
11187 2003-04-28  Havoc Pennington  <hp@redhat.com>
11188
11189         * configure.in: add --enable-docs which by default is auto yes if
11190         doxygen and db2html found, no otherwise; but can be forced on/off
11191
11192         * doc/Makefile.am: conditionalize whether to build docs on
11193         --enable-docs
11194
11195 2003-04-28  Havoc Pennington  <hp@redhat.com>
11196
11197         * configure.in: 0.10
11198
11199         * NEWS: update
11200
11201         * bus/system.conf.in: add <includedir>system.d</includedir>
11202
11203         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
11204         username was provided but not uid
11205
11206         * bus/config-parser.c (struct BusConfigParser): keep track of
11207         whether the parser is toplevel or was included; change some
11208         of the error handling if it's included.
11209
11210 2003-04-27  Havoc Pennington  <hp@pobox.com>
11211
11212         Unbreak my code...
11213
11214         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11215         report correct status if we finish processing authentication
11216         inside this function.
11217
11218         * bus/activation.c (try_send_activation_failure): use
11219         bus_transaction_send_error_reply
11220
11221         * bus/connection.c (bus_connection_get_groups): return an error
11222         explaining the problem
11223
11224         * bus/bus.c (bus_context_check_security_policy): implement
11225         restriction here that inactive connections can only send the
11226         hello message. Also, allow bus driver to send anything to
11227         any recipient.
11228
11229         * bus/connection.c (bus_connection_complete): create the
11230         BusClientPolicy here instead of on-demand.
11231         (bus_connection_get_policy): don't return an error
11232
11233         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
11234         sender field in message being replied to
11235
11236         * bus/bus.c (bus_context_check_security_policy): fix silly typo
11237         causing it to return FALSE always
11238
11239         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
11240         we checked sender rather than destination
11241
11242 2003-04-25  Havoc Pennington  <hp@redhat.com>
11243
11244         test suite is slightly hosed at the moment, will fix soon
11245
11246         * bus/connection.c (bus_connections_expire_incomplete): fix to
11247         properly disable the timeout when required
11248         (bus_connection_set_name): check whether we can remove incomplete
11249         connections timeout after we complete each connection.
11250
11251         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
11252         probably still broken.
11253
11254         * bus/services.c (bus_registry_acquire_service): implement max
11255         number of services owned, and honor allow/deny rules on which
11256         services a connection can own.
11257
11258         * bus/connection.c (bus_connection_get_policy): report errors here
11259
11260         * bus/activation.c: implement limit on number of pending
11261         activations
11262
11263 2003-04-25  Havoc Pennington  <hp@redhat.com>
11264
11265         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
11266         where we used >= 0 instead of != DBUS_UID_UNSET.
11267
11268 2003-04-25  Havoc Pennington  <hp@redhat.com>
11269
11270         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
11271         were toggled without add/remove, fix from Anders Gustafsson
11272
11273 2003-04-24  Havoc Pennington  <hp@redhat.com>
11274
11275         * test/data/valid-config-files/basic.conf: add <limit> tags to
11276         this test
11277
11278         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
11279         <limit> tag in configuration file.
11280
11281 2003-04-24  Havoc Pennington  <hp@redhat.com>
11282
11283         * bus/dispatch.c: somehow missed some name_is
11284
11285         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
11286         (_dbus_timeout_set_interval): new
11287
11288         * bus/connection.c (bus_connections_setup_connection): record time
11289         when each connection is first set up, and expire them after the
11290         auth timeout passes.
11291
11292 2003-04-24  Havoc Pennington  <hp@redhat.com>
11293
11294         * dbus/dbus-message.c (dbus_message_name_is): rename
11295         (dbus_message_service_is): rename
11296         (dbus_message_sender_is): rename
11297         (dbus_message_get_service): rename
11298
11299 2003-04-24  Havoc Pennington  <hp@redhat.com>
11300
11301         * configure.in: add --enable-checks
11302
11303         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11304
11305         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11306         to use thread locks.
11307         (_dbus_connection_handler_destroyed_locked): move some private
11308         functions into proper docs group
11309
11310         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11311         _dbus_return_val_if_fail
11312
11313         Throughout: use dbus_return_if_fail
11314
11315 2003-04-23  James Willcox  <jwillcox@gnome.org>
11316
11317         * glib/dbus-glib.h:
11318         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11319         (dbus_connection_setup_with_g_main),
11320         (dbus_server_setup_with_g_main):
11321         * glib/test-dbus-glib.c: (main):
11322         * glib/test-thread-client.c: (main):
11323         * glib/test-thread-server.c: (new_connection_callback), (main):
11324         * tools/dbus-monitor.c: (main):
11325
11326         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11327         and dbus_server_setup_with_g_main().
11328
11329 2003-04-20  Havoc Pennington  <hp@pobox.com>
11330
11331         * doc/dbus-specification.sgml: document the restrictions on
11332         message and service names
11333
11334 2003-04-22  Havoc Pennington  <hp@redhat.com>
11335
11336         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11337         support, and do some code cleanups to share more code and
11338         speed up array marshal/demarshal.
11339
11340         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11341
11342         * configure.in: generate dbus-arch-deps.h
11343
11344         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11345         64-bit typecodes
11346
11347 2003-04-22  Havoc Pennington  <hp@redhat.com>
11348
11349         * test/data/valid-messages/opposite-endian.message: fix test
11350         to use proper type for rply field
11351
11352         * test/data/invalid-messages: add tests for below validation
11353
11354         * dbus/dbus-message.c (decode_header_data): validate field types,
11355         and validate that named fields are valid names
11356         (decode_name_field): consider messages in the
11357         org.freedesktop.Local. namespace to be invalid.
11358
11359         * dbus/dbus-string.c (_dbus_string_validate_name): new
11360
11361 2003-04-19  Havoc Pennington  <hp@pobox.com>
11362
11363         * bus/driver.c (bus_driver_handle_hello): check limits and
11364         return an error if they are exceeded.
11365
11366         * bus/connection.c: maintain separate lists of active and inactive
11367         connections, and a count of each. Maintain count of completed
11368         connections per user. Implement code to check connection limits.
11369
11370         * dbus/dbus-list.c (_dbus_list_unlink): export
11371
11372         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11373         number of bytes in the message queue for a connection
11374
11375 2003-04-18  Havoc Pennington  <hp@pobox.com>
11376
11377         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11378
11379         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11380         memleaks
11381
11382         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11383         on realloc be sure to update the pointer in the keyring
11384
11385         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11386         offset to avoid writing to unallocated memory
11387
11388         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11389         try the next mechanism, so we properly handle OOM
11390
11391         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11392         on OOM.
11393         (_dbus_keyring_new): fix OOM bug
11394         (_dbus_keyring_new_homedir): always set error; impose a maximum
11395         number of keys we'll load from the file, mostly to speed up the
11396         test suite and make its OOM checks more useful, but also for
11397         general sanity.
11398
11399         * dbus/dbus-auth.c (process_error_server): reject authentication
11400         if we get an error from the client
11401         (process_cancel): on cancel, send REJECTED, per the spec
11402         (process_error_client): send CANCEL if we get an error from the
11403         server.
11404
11405 2003-04-18  Havoc Pennington  <hp@pobox.com>
11406
11407         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11408         debug spew
11409
11410         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11411         handling problem
11412
11413         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11414         about DBUS_TEST_HOMEDIR once
11415
11416         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11417         the environment
11418
11419         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11420         config file so we test the right thing
11421
11422         Throughout: assorted docs improvements
11423
11424 2003-04-18  Havoc Pennington  <hp@pobox.com>
11425
11426         * glib/dbus-gmain.c: adapt to watch changes
11427
11428         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11429
11430         * dbus/dbus-server.h: remove dbus_server_handle_watch
11431
11432         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11433
11434         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11435         like DBusTimeout, so we don't need dbus_connection_handle_watch
11436         etc.
11437
11438 2003-04-17  Havoc Pennington  <hp@redhat.com>
11439
11440         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11441         database usage so it all goes via the DBusUserDatabase cache.
11442
11443 2003-04-17  Havoc Pennington  <hp@redhat.com>
11444
11445         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11446         there was an OOM watch we skipped, we always return TRUE so we
11447         iterate again to have a look at it again. Fixes test suite hang.
11448         Code rearrangement also lets us lose some memset and only iterate
11449         over callbacks once.
11450
11451         * bus/driver.c (bus_driver_handle_message): sense of test for
11452         reply was backward
11453
11454 2003-04-16  Havoc Pennington  <hp@pobox.com>
11455
11456         * doc/dbus-specification.sgml: make spec say serials are unsigned
11457
11458         * dbus/dbus-message.h: change message serials to unsigned
11459
11460         * dbus/dbus-connection.c: adapt to message serials being unsigned
11461
11462 2003-04-15  Havoc Pennington  <hp@pobox.com>
11463
11464         * bus/bus.c: create and keep around a shared DBusUserDatabase
11465         object.
11466
11467         * bus/connection.c (bus_connection_get_groups): don't cache
11468         groups for user in the connection object, since user database
11469         object now does that.
11470
11471 2003-04-16  Havoc Pennington  <hp@redhat.com>
11472
11473         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11474         list of size counters
11475         (_dbus_message_loader_putback_message_link): put back a popped link
11476
11477         * dbus/dbus-connection.c
11478         (dbus_connection_set_max_live_messages_size): rename
11479         max_received_size
11480         (dbus_connection_get_outgoing_size): get size of outgoing
11481         queue
11482         (_dbus_connection_set_connection_counter): remove this cruft
11483
11484 2003-04-14  Havoc Pennington  <hp@redhat.com>
11485
11486         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11487         caching, but at some point we might want to be able to use a
11488         different database.
11489
11490         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11491         SHA1 conf file to test the sha1 auth mechanism, since the regular
11492         test always uses EXTERNAL when available.
11493
11494         * configure.in,
11495         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11496         add conf file that requires use of sha1 auth
11497
11498 2003-04-13  Havoc Pennington  <hp@pobox.com>
11499
11500         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11501         from Philip Blundell to send messages and monitor them.
11502
11503 2003-04-13  Havoc Pennington  <hp@pobox.com>
11504
11505         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11506         callbacks
11507
11508         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11509         users
11510
11511         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11512         fix to only recover unused bytes if we're already authenticated
11513         (_dbus_transport_get_is_authenticated): fix to still mark us
11514         authenticated if there are unused bytes.
11515
11516         * bus/dispatch.c: implement security policy checking
11517
11518         * bus/connection.c (bus_transaction_send_from_driver): new
11519
11520         * bus/bus.c (bus_context_check_security_policy): new
11521
11522         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11523         now we just set the DBusError and it gets converted to an error
11524         reply.
11525
11526         * bus/connection.c (allow_user_function): enable code using actual
11527         data from the config file
11528
11529         * bus/policy.c (list_allows_user): handle wildcard rules for
11530         user/group connection perms
11531
11532 2003-04-13  Havoc Pennington  <hp@pobox.com>
11533
11534         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11535
11536         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11537
11538         * bus/policy.c (bus_policy_append_mandatory_rule)
11539         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11540         (bus_policy_append_group_rule): new functions
11541
11542 2003-04-12  Havoc Pennington  <hp@pobox.com>
11543
11544         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11545
11546         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11547         the pid/gid/uid, just for paranoia.
11548
11549         * test/break-loader.c (randomly_do_n_things): find a byte
11550         containing a type code, and randomly change it to a different
11551         type code.
11552
11553 2003-04-12  Havoc Pennington  <hp@pobox.com>
11554
11555         * bus/policy.h: change BusPolicy to be the thing from the config
11556         file, and rename old BusPolicy to BusClientPolicy
11557
11558         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11559         match change in how policy works
11560
11561         * dbus/dbus-internals.h: mark assert_not_reached as
11562         __attribute((noreturn))__
11563
11564 2003-04-11  Havoc Pennington  <hp@redhat.com>
11565
11566         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11567         the broadcast service. Use boolean return for ServiceExists.
11568
11569 2003-04-11  Havoc Pennington  <hp@redhat.com>
11570
11571         * configure.in: add another directory to look for qt in.
11572
11573 2003-04-11  Havoc Pennington  <hp@redhat.com>
11574
11575         * AUTHORS: add Colin Walters
11576
11577 2003-04-11  Havoc Pennington  <hp@redhat.com>
11578
11579         * NEWS: update
11580
11581         * configure.in: 0.9
11582
11583 2003-04-11  Havoc Pennington  <hp@redhat.com>
11584
11585         * bus/messagebus.in: remove pid file when stopping the
11586         message bus, since the bus won't have privileges to remove it
11587         itself.
11588
11589 2003-04-11  Havoc Pennington  <hp@redhat.com>
11590
11591         * bus/bus.c (bus_context_new): move credentials change after
11592         creating pidfile
11593
11594 2003-04-11  Havoc Pennington  <hp@pobox.com>
11595
11596         * test/decode-gcov.c: add "below average functions" to the
11597         coverage report, and change how some of the code works.
11598
11599         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11600         not in the coverage stats.
11601
11602         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11603         couple places so running the test suite doesn't result in megaspam.
11604
11605 2003-04-11  Havoc Pennington  <hp@pobox.com>
11606
11607         * bus/dispatch.c (check_existent_service_activation): accept a no
11608         memory error in a place we didn't before
11609
11610         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11611         in case the first one failed," since the test suite is less
11612         broken now.
11613
11614 2003-04-10  Havoc Pennington  <hp@pobox.com>
11615
11616         * bus/dispatch.c (check_segfault_service_activation): add test
11617         for launching an executable that just crashes.
11618
11619         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11620         don't leave a million cores. We'll see how portable this is.
11621
11622 2003-04-10  Havoc Pennington  <hp@pobox.com>
11623
11624         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11625         the possible parent failures before we fork, so that we don't
11626         fail to create a babysitter after creating the child.
11627
11628         * bus/activation.c (bus_activation_activate_service): kill child
11629         if we don't successfully complete the activation.
11630
11631 2003-04-10  Havoc Pennington  <hp@redhat.com>
11632
11633         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11634         the connection if it's disconnected
11635
11636         * bus/activation.c (bus_activation_service_created): use new
11637         transaction features to roll back removal of pending activation if
11638         we don't successfully create the service after all. Don't remove
11639         pending activation if the function fails.
11640
11641         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11642         (_dbus_list_insert_after_link): new code to facilitate
11643         services.c fixes
11644
11645         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11646         new functionality, so we can preallocate the ability to insert
11647         into a hash table.
11648
11649         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11650         allowing us to put custom hooks in a transaction to be used for
11651         cancelling said transaction
11652
11653         * doc/dbus-specification.sgml: add some discussion of secondary
11654         service owners, and disallow zero-length service names
11655
11656         * bus/services.c (bus_registry_acquire_service): new function,
11657         splits out part of bus_driver_handle_acquire_service() and fixes
11658         a bug where we didn't remove the service doing the acquiring
11659         from the secondary queue if we failed to remove the current owner
11660         from the front of the queue.
11661
11662 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11663
11664         * doc/dbus-specification.sgml:
11665         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11666
11667 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11668
11669         * bus/.cvsignore:
11670         * glib/.cvsignore:
11671         * test/.cvsignore:
11672         Added files to cvsignore
11673
11674         * dbus/dbus-message.h:
11675         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11676         Make get_named() take two out argument and return a boolean.
11677         (dbus_message_iter_get_args_valist):
11678         Update usage of get_named().
11679         (dbus_message_iter_append_byte):
11680         Fix typo
11681         (dbus_message_iter_append_named)
11682         Fix typo
11683         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11684         More tests.
11685
11686 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11687
11688         * dbus/dbus-marshal.[ch]:
11689         Add array_type_pos argument to _dbus_marshal_validate_arg.
11690         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11691
11692         * dbus/dbus-message.[ch]:
11693         Multi-dimensional arrays have full type specification in the
11694         outermost array. Iter code re-arranged to handle this.
11695         Added some more iter tests.
11696
11697         * doc/dbus-specification.sgml:
11698         Add me to authors.
11699         Remove old FIXME.
11700         Update new array encoding description.
11701         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11702
11703         * test/data/invalid-messages/array-with-mixed-types.message:
11704         * test/data/valid-messages/array-of-array-of-uint32.message:
11705         Change to the new array format.
11706
11707         * test/data/invalid-messages/too-short-dict.message:
11708         Fix bug in test.
11709
11710         * test/data/valid-messages/recursive-types.message:
11711         Fix up and extend test.
11712
11713 2003-04-10  Havoc Pennington  <hp@pobox.com>
11714
11715         * bus/dispatch.c: lots of fixes
11716
11717         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11718         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11719         that was crack, broke the test service.
11720
11721         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11722         handling to avoid piling up errors if we get a failure on the
11723         first address.
11724
11725         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11726         pid in assertion failures.
11727
11728         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11729         to some fixed size of file descriptor array. Don't return TRUE
11730         anytime a timeout exists, that led to lots of busy loop silliness
11731         in the tests.
11732
11733 2003-04-09  Havoc Pennington  <hp@redhat.com>
11734
11735         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11736         I'd checked this in earlier but hadn't.
11737
11738 2003-04-09  Havoc Pennington  <hp@redhat.com>
11739
11740         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11741         the activation test (man this is getting old!)
11742
11743 2003-04-09  Havoc Pennington  <hp@redhat.com>
11744
11745         * test/test-utils.c: use dispatch status function to fix this up
11746
11747         * bus/connection.c (connection_watch_callback): don't dispatch
11748         from here
11749         (connection_timeout_callback): don't dispatch from here
11750         (bus_connections_setup_connection): set the dispatch status function
11751         (bus_connection_disconnected): unset it
11752
11753         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11754         used to add a connection to be dispatched
11755         (_dbus_loop_iterate): do the dispatching at the end of each
11756         iteration
11757
11758         * dbus/dbus-connection.c
11759         (dbus_connection_set_dispatch_status_function): new function
11760         allowing us to fix up main loop usage
11761         (_dbus_connection_last_unref): free all the various function
11762         user data
11763         (dbus_connection_dispatch): call the DispatchStatusFunction
11764         whenever this function returns
11765         (dbus_connection_handle_watch): call DispatchStatusFunction
11766         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11767         (reply_handler_timeout): call DispatchStatusFunction
11768         (dbus_connection_flush): call DispatchStatusFunction
11769
11770 2003-04-09  Havoc Pennington  <hp@redhat.com>
11771
11772         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11773         a memory leak
11774
11775         * bus/dispatch.c (check_service_activated): fix bug in test
11776
11777         * dbus/dbus-mainloop.c (check_timeout): fix this up
11778
11779         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11780         verbose output so we can sort out output from different processes,
11781         e.g. in the activation case.
11782
11783 2003-04-08  Colin Walters  <walters@gnu.org>
11784
11785         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11786         the pid file.
11787         (bus_context_new): Set it.
11788         (bus_context_unref): Use it to delete the pid file.
11789
11790 2003-04-08  Havoc Pennington  <hp@redhat.com>
11791
11792         * test/data/invalid-messages/array-with-mixed-types.message:
11793         regression test that fails for the moment
11794
11795         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11796         tests for convenience
11797
11798         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11799         array of nil, it broke things.
11800
11801         * test/data/invalid-messages/array-of-nil.message: regression test
11802
11803         * test/data/valid-messages/array-of-array-of-uint32.message:
11804         happened to write this so added it to suite
11805
11806 2003-04-08  Havoc Pennington  <hp@redhat.com>
11807
11808         * bus/driver.c (bus_driver_handle_acquire_service): init
11809         retval/reply before checking name
11810
11811         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11812         recursion depth argument
11813
11814         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11815         in the public struct for future extension
11816
11817         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11818         typo
11819
11820         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11821         message
11822
11823         * doc/dbus-specification.sgml: fix typo
11824
11825 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11826
11827         Implemented recursive types, named types and new-style iters
11828
11829         * bus/driver.c:
11830         * glib/test-thread-client.c: (thread_func):
11831         * glib/test-thread-server.c: (handle_test_message):
11832         * test/test-service.c: (handle_echo):
11833         Update to new api
11834
11835         * dbus/Makefile.am:
11836         * dbus/dbus-dict.c:
11837         * dbus/dbus-dict.h:
11838         * dbus/dbus.h
11839         Remove DBusDict
11840
11841         * dbus/dbus-internals.c: (_dbus_type_to_string):
11842         Update for new types.
11843
11844         * dbus/dbus-marshal.[ch]:
11845         Implement recursive types and the new marshalling format.
11846         Remove hardcoded dict marshalling.
11847         Marshal named types.
11848
11849         * dbus/dbus-message-builder.c:
11850         Add BYTE_ARRAY.
11851         Remove references to old types
11852
11853         * dbus/dbus-message.[ch]:
11854         New non-refcounted iter API that supports recursive iters.
11855         Use iters for appending, including support for recursive
11856         iters.
11857         Add byte and named type support.
11858         Update everything to new marshalling formats.
11859         Add tests for new API.
11860
11861         * dbus/dbus-protocol.h:
11862         Remove old array types.
11863         Add types: BYTE, ARRAY, DICT, NAMED
11864
11865         * dbus/dbus-string.c:
11866         * dbus/dbus-sysdeps.c:
11867         Make parse_double locale safe.
11868
11869         * dbus/dbus-test-main.c:
11870         Call setlocale.
11871
11872         * dbus/dbus-test.c:
11873         Kill dict test
11874
11875         * doc/dbus-specification.sgml:
11876         Update spec
11877
11878         * test/data/incomplete-messages/missing-body.message:
11879         * test/data/invalid-messages/bad-boolean.message:
11880         * test/data/invalid-messages/bad-boolean-array.message:
11881         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11882         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11883         * test/data/invalid-messages/too-short-dict.message:
11884         * test/data/valid-messages/dict-simple.message:
11885         * test/data/valid-messages/dict.message:
11886         * test/data/valid-messages/emptiness.message:
11887         * test/data/valid-messages/lots-of-arguments.message:
11888         * test/data/valid-messages/no-padding.message:
11889         * test/data/valid-messages/recursive-types.message:
11890         Add missing NAME fields
11891         Fix up dicts & arrays
11892
11893         * test/data/invalid-messages/dict-with-nil-value.message:
11894         Removed, this is not invalid anymore.
11895
11896         * test/data/valid-messages/recursive-types.message:
11897         Add new test for deeply recursive types.
11898
11899 2003-04-07  Havoc Pennington  <hp@pobox.com>
11900
11901         * bus/driver.c (bus_driver_handle_acquire_service): return an
11902         error if you try to acquire a service that starts with ':'
11903
11904 2003-04-07  Havoc Pennington  <hp@redhat.com>
11905
11906         * doc/dbus-specification.sgml: require that base service names
11907         start with ':' and that the base service is created/deleted
11908         as first and last things a connection does on the bus
11909
11910         * bus/dispatch.c (check_existent_service_activation): lots more
11911         work on the activation test; it doesn't fully pass yet...
11912
11913         * test/test-service.c (main): fix so we don't memleak the
11914         connection to the message bus
11915         (filter_func): accept a message asking us to exit
11916
11917 2003-04-06  Havoc Pennington  <hp@pobox.com>
11918
11919         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11920         from Colin Walters
11921
11922         * configure.in: fixes to Qt detection from Colin Walters
11923
11924         * doc/Makefile.am: Only remove generated docbook dirs if they
11925         exist, from Colin Walters
11926
11927         * dbus/dbus-bus.c: change how we set well-known connections to
11928         NULL, so that it works if a single connection is stored in
11929         two well-known array slots.
11930
11931         * test/Makefile.am: remove a lot of stuff that isn't immediately
11932         useful, it's in CVS history if we want it.
11933
11934         * test/test-service.c: use dbus-mainloop instead of that
11935         watch.[hc] crack
11936
11937 2003-04-06  Havoc Pennington  <hp@pobox.com>
11938
11939         * dbus/Makefile.am: split lists of sources into stuff that goes in
11940         the library, util functions that go in the lib and are also used
11941         elsewhere, and util functions that are used in tests/daemon but
11942         don't go in the lib.
11943
11944         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11945         here so it can be used in test binaries also
11946
11947 2003-04-06  Havoc Pennington  <hp@pobox.com>
11948
11949         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11950         here in the parent process, so we can return an error if it
11951         fails. Also, move some of the code into the child so the parent
11952         is less hosed if we fail midway through.
11953
11954         * bus/bus.c (bus_context_new): move pidfile detection further up
11955         in the function, before we start overwriting sockets and such.
11956
11957         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11958
11959         * configure.in: add --with-system-pid-file and --with-system-socket
11960
11961 2003-04-06  Colin Walters  <walters@verbum.org>
11962
11963         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11964
11965         * bus/system.conf.in: Declare a pidfile.
11966
11967         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11968         create one (if appropriate).
11969
11970         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11971         (struct BusConfigParser) [pidfile]: New.
11972         (element_type_to_name, merge_included, start_busconfig_child)
11973         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11974         (bus_config_parser_unref): Free it.
11975         (bus_config_parser_get_pidfile): New function.
11976
11977         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11978
11979         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11980
11981         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11982
11983         * dbus/dbus-sysdeps.h: Prototype it.
11984
11985 2003-04-06  Havoc Pennington  <hp@pobox.com>
11986
11987         * bus/bus.c (bus_context_new): print the address in here, rather
11988         than in main(), because we need to do it before forking the daemon
11989
11990         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11991         on the service nonexistent error
11992
11993         * bus/driver.c (bus_driver_handle_acquire_service): set the
11994         sender on the AcquireService reply
11995
11996         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11997         server also listen on a UNIX socket so services can connect to it.
11998
11999 2003-04-06  Havoc Pennington  <hp@pobox.com>
12000
12001         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
12002         so it detects deadlocks and also we actually init threads when
12003         debugging.
12004
12005 2003-04-06  Havoc Pennington  <hp@pobox.com>
12006
12007         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
12008         save the domain socket name, and unlink it when we disconnect the
12009         server. Means that at least when we exit normally, we won't leave
12010         a bunch of junk in /tmp
12011
12012         * dbus/dbus-transport-unix.c
12013         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
12014         memory management). (I was making a real change here but then
12015         didn't)
12016
12017 2003-04-06  Havoc Pennington  <hp@pobox.com>
12018
12019         * bus/bus.c (bus_context_new): fix wrong handling of
12020         server_data_slot_unref() in the error case.
12021
12022         * dbus/dbus-internals.h (_dbus_assert): change so it passes
12023         "(condition) != 0" to _dbus_real_assert so that
12024         "_dbus_assert (pointer)" doesn't cause a warning
12025
12026         * bus/main.c (main): accept --print-address option to print out
12027         the message bus address
12028
12029         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
12030
12031         * dbus/dbus-transport.c (_dbus_transport_open): special error for
12032         "tmpdir" option to unix: address on client side
12033
12034         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
12035         to unix: address
12036
12037         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
12038         we can use to create sockets in the test suite.
12039
12040         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
12041         cleanly. To be used for testing.
12042
12043         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
12044
12045         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
12046
12047         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12048         handle trying to call this when there's no servers active
12049
12050 2003-04-05  Havoc Pennington  <hp@pobox.com>
12051
12052         * NEWS: update
12053
12054         * configure.in: 0.8
12055
12056 2003-04-05  Havoc Pennington  <hp@pobox.com>
12057
12058         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
12059         crash on startup. Need to get "try starting the daemon"
12060         in the test suite I guess. ;-)
12061
12062         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
12063         tracked the number of open connections; it's better done in
12064         application-specific code as you want it to span all servers etc.
12065
12066 2003-04-05  Havoc Pennington  <hp@pobox.com>
12067
12068         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
12069         patch from Colin Walters
12070
12071 2003-04-05  Havoc Pennington  <hp@pobox.com>
12072
12073         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
12074         reality; in fact multiple mechanisms are allowed.
12075
12076         * dbus/dbus-internals.c (_dbus_real_assert)
12077         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
12078         _dbus_assert_not_reached() into functions, so that they don't show
12079         up in basic block counts for test coverage, and don't use up as
12080         much disk space. Does mean slower execution speed though, so
12081         assumes --disable-asserts is the normal production case.
12082
12083 2003-04-05  Havoc Pennington  <hp@pobox.com>
12084
12085         * test/Makefile.am (dist-hook): also dist *.in files
12086
12087         * NEWS: update
12088
12089         * configure.in: 0.7
12090
12091 2003-04-05  Havoc Pennington  <hp@pobox.com>
12092
12093         * dbus/dbus-string.c: docs warning
12094
12095         * dbus/dbus-spawn.c: missing docs
12096
12097         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
12098
12099 2003-04-05  Havoc Pennington  <hp@pobox.com>
12100
12101         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
12102         magic from GLib
12103
12104         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
12105         to -1 once we've reaped the babysitter
12106         (_dbus_babysitter_handle_watch): do as much work as we can, not
12107         just one go of it
12108
12109         * bus/activation.c: add code using DBusBabysitter so that we
12110         handle it when a service fails to start up properly.
12111         (bus_activation_service_created): don't remove the activation
12112         entries as we go, just let them get removed when we free the pending
12113         activation. Unref reply messages after sending them.
12114
12115 2003-04-05  Havoc Pennington  <hp@pobox.com>
12116
12117         * test/decode-gcov.c (main): print per-directory stats in the report
12118
12119         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
12120
12121 2003-04-05  Havoc Pennington  <hp@pobox.com>
12122
12123         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
12124
12125         * test/decode-gcov.c: hack up a little program to suck data
12126         out of gcov files. Yes this is sort of silly.
12127
12128         * configure.in: define something in config.h and do an
12129         AM_CONDITIONAL when gcov is enabled
12130
12131 2003-04-04  Havoc Pennington  <hp@redhat.com>
12132
12133         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
12134         return a "babysitter" object that is used to monitor the status of
12135         the spawned process and reap it when required.
12136
12137         * test/test-segfault.c, test/test-exit.c,
12138         test/test-sleep-forever.c: binaries that do various lame things,
12139         used in the test suite.
12140
12141         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
12142
12143 2003-04-03  Havoc Pennington  <hp@pobox.com>
12144
12145         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
12146         in preparation for modifying it, dbus-sysdeps is getting
12147         a bit unmanageable.
12148
12149 2003-04-03  Havoc Pennington  <hp@redhat.com>
12150
12151         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
12152         have multiple ones
12153
12154         * bus/*.[hc]: adapt to mainloop change
12155
12156 2003-04-03  Havoc Pennington  <hp@redhat.com>
12157
12158         * bus/activation.c (load_directory): fix up memleaks
12159         (bus_activation_entry_free): free the entry
12160
12161         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
12162         we get one from the message bus; fix memleaks.
12163
12164         * dbus/dbus-message.c (dbus_set_error_from_message): new function
12165
12166 2003-04-03  Havoc Pennington  <hp@pobox.com>
12167
12168         * bus/config-parser.c (bus_config_parser_unref): free
12169         list of mechanisms, bug discovered by test suite enhancements
12170         (putting system.conf and session.conf into suite)
12171
12172         * test/Makefile.am, test/test-service.c: add placeholder for a
12173         test service that we'll activate as part of test suite. Doesn't
12174         do anything yet.
12175
12176         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
12177         setting NULL value, and use system malloc not dbus_malloc()
12178         when we have unavoidable memleakage.
12179
12180         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
12181         didn't work, and support DBUS_BUS_ACTIVATION.
12182
12183         * bus/activation.c (child_setup): pass our well-known bus type to
12184         the child
12185
12186         * bus/config-parser.c: support <type> to specify well-known type
12187
12188         * doc/dbus-specification.sgml: document the env variables to
12189         locate well-known buses and find service activator
12190
12191 2003-04-02  Havoc Pennington  <hp@redhat.com>
12192
12193         * test/Makefile.am (all-local): add a rule to copy tests to
12194         builddir, so we can have generated tests. Use this to remove the
12195         silly hack for testing system.conf and session.conf. Will use this
12196         shortly to generate .service files pointing to test binaries.
12197
12198 2003-04-02  Havoc Pennington  <hp@redhat.com>
12199
12200         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
12201         current alloc and needed new length, not max of the doubled
12202         allocation and needed new length. Also, when building tests,
12203         don't do the double-allocation stuff, just realloc every time.
12204
12205 2003-04-02  Havoc Pennington  <hp@redhat.com>
12206
12207         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
12208         in error messages
12209         (_dbus_string_get_dirname): new
12210         (_dbus_sysdeps_test): new
12211         (_dbus_directory_open): include dirnames in error messages
12212
12213         * bus/config-parser.c: interpret <include> and <includedir> and
12214         <servicedir> relative to config file location if the given
12215         filename is not absolute.
12216
12217         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
12218
12219 2003-04-02  Havoc Pennington  <hp@redhat.com>
12220
12221         * bus/connection.c (bus_transaction_send_error_reply): set sender
12222         service for the error, and unref the reply on success
12223
12224         * bus/activation.c: convert to use BusTransaction so OOM can be
12225         handled correctly
12226         (bus_activation_service_created): set sender of the message
12227
12228 2003-04-01  Havoc Pennington  <hp@redhat.com>
12229
12230         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
12231         <includedir> (at least mostly)
12232
12233         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
12234         first, then the user ID
12235
12236 2003-04-01  Havoc Pennington  <hp@pobox.com>
12237
12238         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
12239         function
12240
12241         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
12242
12243         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
12244
12245         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
12246         socket 0777, and unlink any existing socket.
12247
12248         * bus/bus.c (bus_context_new): change our UID/GID and fork if
12249         the configuration file so specifies; set up auth mechanism
12250         restrictions
12251
12252         * bus/config-parser.c (bus_config_parser_content): add support
12253         for <fork> option and fill in code for <auth>
12254
12255         * bus/system.conf.in: add <fork/> to default configuration,
12256         and limit auth mechanisms to EXTERNAL
12257
12258         * doc/config-file.txt (Elements): add <fork>
12259
12260         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
12261         (_dbus_change_identity): new function
12262
12263 2003-03-31  Havoc Pennington  <hp@redhat.com>
12264
12265         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
12266         (_dbus_listen_unix_socket): fix off-by-one error in null
12267         termination spotted by Nalin
12268
12269 2003-03-31  Havoc Pennington  <hp@redhat.com>
12270
12271         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
12272         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
12273         having a real home directory available.
12274
12275 2003-03-31  Havoc Pennington  <hp@redhat.com>
12276
12277         * bus/Makefile.am (install-data-hook): create /var/run/dbus
12278
12279         * bus/messagebus.in: add init script for Red Hat /etc/init.d
12280
12281         * configure.in: add support for specifying a style of init script
12282         to install
12283
12284 2003-03-31  Havoc Pennington  <hp@redhat.com>
12285
12286         Fix some annoying DBusString API and fix all affected code.
12287
12288         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
12289         max_length argument
12290         (_dbus_string_get_data): change to return string instead of using
12291         an out param
12292         (_dbus_string_get_const_data): ditto
12293         (_dbus_string_get_data_len): ditto
12294         (_dbus_string_get_const_data_len): ditto
12295
12296 2003-03-31  Havoc Pennington  <hp@redhat.com>
12297
12298         * bus/main.c (main): fix up the command line arguments to be nicer
12299
12300 2003-03-31  Havoc Pennington  <hp@redhat.com>
12301
12302         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12303         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12304         final location that lands in the config file
12305
12306         * bus/config-loader-expat.c (bus_config_load): fix type of
12307         XML_Parser variable
12308
12309         * doc/TODO: remove TODO item for dbus_bus_get()
12310
12311         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12312
12313 2003-03-31  Havoc Pennington  <hp@pobox.com>
12314
12315         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12316         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12317         argument since they are always client side
12318
12319         * dbus/dbus-server.c (dbus_server_get_address): new function
12320
12321         * bus/main.c (main): take the configuration file as an argument.
12322
12323         * test/data/valid-config-files/debug-allow-all.conf: new file to
12324         use with dispatch.c tests for example
12325
12326         * bus/test-main.c (main): require test data dir
12327
12328         * bus/bus.c (bus_context_new): change this to take a
12329         configuration file name as argument
12330
12331         * doc/config-file.txt (Elements): add <servicedir>
12332
12333         * bus/system.conf, bus/session.conf: new files
12334
12335         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12336         well-known socket if none set
12337
12338         * configure.in: create system.conf and session.conf
12339
12340 2003-03-30  Havoc Pennington  <hp@pobox.com>
12341
12342         * bus/config-parser.c: hacking
12343
12344         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12345         to shut down, since it could cause weirdness with the DBusList
12346         lock
12347
12348         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12349         link-oriented stack routines
12350         (alloc_link): free the mempool if the first alloc from it fails
12351
12352         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12353
12354         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12355         from GLib
12356         (_dbus_string_skip_white): new
12357
12358         * doc/config-file.txt (Elements): add <includedir>
12359
12360 2003-03-28  Havoc Pennington  <hp@pobox.com>
12361
12362         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12363         (_dbus_string_copy_data): new functions
12364
12365 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12366
12367         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12368         * dbus/dbus-bus.h:
12369         Add dbus_bus_get.
12370
12371         * dbus/dbus-memory.c:
12372         Fix a doc comment.
12373
12374 2003-03-28  Havoc Pennington  <hp@pobox.com>
12375
12376         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12377         I think it may have just been superstition. Not sure.
12378
12379         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12380         failures that were not being handled.
12381
12382         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12383
12384         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12385         row that will fail on out-of-memory.
12386
12387         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12388         function for testing out-of-memory handling.
12389
12390         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12391         allocation functions, they do map exactly to the expat ones.
12392
12393 2003-03-27  Havoc Pennington  <hp@redhat.com>
12394
12395         * bus/config-loader-libxml.c (bus_config_load): add another error
12396         check
12397
12398 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12399
12400         * doc/TODO:
12401         Add note about automatic service activation.
12402
12403         * doc/dbus-specification.sgml:
12404         Rename the specification and clarify a few things.
12405
12406 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12407
12408         * Doxyfile.in:
12409         * dbus/dbus-address.c:
12410         * dbus/dbus-dict.c:
12411         * dbus/dbus-marshal.c:
12412         * dbus/dbus-server-debug-pipe.c:
12413         * dbus/dbus-transport-unix.c:
12414         Fix documentation warnings.
12415
12416 2003-03-26  Havoc Pennington  <hp@pobox.com>
12417
12418         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12419         after every test so it's quick and easy to see which leaked, and
12420         so we test multiple dbus_shutdown() calls
12421
12422         * configure.in: change configure.in XML stuff to also support
12423         expat
12424
12425         * config-loader-libxml.c: some hacking
12426
12427         * config-loader-expat.c: some hacking
12428
12429         * config-parser.c: some hacking, plus tests
12430
12431 2003-03-25  Havoc Pennington  <hp@redhat.com>
12432
12433         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12434
12435         * configure.in: add --with-xml option to specify XML library,
12436         right now only libxml is supported.
12437
12438         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12439         nonworking code between home and work, still just stubs
12440
12441 2003-03-24  Havoc Pennington  <hp@redhat.com>
12442
12443         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12444         file
12445
12446         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12447         NULL argument for "message" if the error is a well-known one,
12448         fill in a generic message in this case.
12449
12450         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12451         favor of DBusError
12452
12453         * bus/test.c (bus_test_flush_bus): add
12454
12455         * bus/policy.c (bus_policy_test): test code stub
12456
12457 2003-03-24  Havoc Pennington  <hp@pobox.com>
12458
12459         * bus/connection.c (bus_connections_setup_connection): set up
12460         the "can this user connect" function, but it always returns
12461         TRUE until we have a config file parser so we can have a config
12462         file that allows connections.
12463
12464 2003-03-23  Havoc Pennington  <hp@pobox.com>
12465
12466         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12467         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12468         the mutex, so we can check for proper memory management
12469         and OOM handling.
12470
12471         * dbus/dbus-dataslot.c: remove the mutex from
12472         DBusDataSlotAllocator and lock it manually when using it,
12473         to simplify fitting it into the global slots framework.
12474
12475         * dbus/dbus-threads.c (init_static_locks): rework how we're
12476         handling global locks so they are easily shut down.
12477
12478         * bus/policy.c (bus_policy_append_rule): fix
12479
12480         * bus/test-main.c (main): check for memleaks
12481
12482         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12483         test suite check for memleaks
12484
12485         * dbus/dbus-memory.c: add support in test mode for tracking
12486         number of outstanding blocks
12487
12488 2003-03-23  Havoc Pennington  <hp@pobox.com>
12489
12490         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12491         policies code
12492
12493         * dbus/dbus-hash.h: add ULONG hash keys
12494
12495         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12496         (_dbus_get_group_id): new function
12497
12498 2003-03-20  Havoc Pennington  <hp@redhat.com>
12499
12500         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12501         new function
12502         (dbus_connection_get_unix_user): new function
12503
12504 2003-03-20  Havoc Pennington  <hp@pobox.com>
12505
12506         * bus/connection.c (bus_connection_send_oom_error): assert that
12507         message has a sender
12508         (connection_execute_transaction): ditto
12509         (bus_connection_preallocate_oom_error): fix to set the sender, and
12510         set recipient to the destination service, not the bus driver
12511
12512         * bus/policy.c: hacking
12513
12514         * dbus/dbus-message.c (dbus_message_service_is): new function
12515         (dbus_message_sender_is): new
12516
12517 2003-03-19  Havoc Pennington  <hp@redhat.com>
12518
12519         * bus/policy.c: start sketching code for policy restrictions on
12520         what connections can do.
12521
12522 2003-03-18  Havoc Pennington  <hp@redhat.com>
12523
12524         * doc/TODO: some notes on high-level todo items. Little nitpick
12525         stuff is all in @todo, so no need to add it here.
12526
12527         * doc/config-file.txt: some notes on how config file might look
12528
12529 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12530
12531         * configure.in: 0.6
12532
12533         * NEWS: Update.
12534
12535 2003-03-17  Havoc Pennington  <hp@redhat.com>
12536
12537         * dbus/dbus-internals.h: add gcc attributes so that
12538         our printf-style functions warn on bad arguments to
12539         format
12540
12541         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12542         format bug
12543
12544         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12545         printf format bug
12546
12547 2003-03-17  Havoc Pennington  <hp@redhat.com>
12548
12549         * bus/test-main.c (main): make it print something as it runs
12550         so make check doesn't look stuck
12551
12552         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12553         from CVS, now obsolete
12554
12555 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12556
12557         * bus/dispatch.c: (bus_dispatch):
12558         Refetch the service name since it may have been reallocated
12559         when dbus_message_set_sender was called.
12560
12561         * dbus/dbus-sysdeps.c: (_dbus_accept):
12562         Add address and address length variables and use them to stop
12563         valgrind from complaining.
12564
12565 2003-03-17  Havoc Pennington  <hp@pobox.com>
12566
12567         All tests pass, no memleaks, no valgrind complaints.
12568
12569         * bus/test.c: refcount handler_slot
12570
12571         * bus/connection.c (bus_connections_new): refcount
12572         connection_data_slot
12573
12574         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12575         bytes so that auth scripts pass.
12576
12577         * bus/dispatch.c: init message_handler_slot so it gets allocated
12578         properly
12579
12580         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12581
12582         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12583         dealloc server_pipe_hash when no longer used for benefit of
12584         leak checking
12585
12586         * dbus/dbus-auth.c (process_command): memleak fix
12587
12588         * bus/dispatch.c (check_hello_message): memleak fix
12589
12590 2003-03-16  Havoc Pennington  <hp@pobox.com>
12591
12592         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12593
12594 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12595
12596         * bus/activation.c (bus_activation_activate_service): Append
12597         the pending activation entry to the list of pending activations.
12598
12599 2003-03-16  Havoc Pennington  <hp@pobox.com>
12600
12601         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12602         connections
12603
12604         * dbus/dbus-address.c (create_entry): fix OOM handling when
12605         failing to alloc entry->method
12606
12607 2003-03-16  Havoc Pennington  <hp@pobox.com>
12608
12609         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12610         the watch
12611
12612         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12613         add some missing dbus_set_result
12614
12615         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12616         alloc the DBusMessageHandler
12617
12618         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12619         the transport here, since we call this from the finalizer; it
12620         resulted in a double-finalize.
12621
12622         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12623         where we tried to use transport->connection that was NULL,
12624         happened when transport was disconnected early on due to OOM
12625
12626         * bus/*.c: adapt to handle OOM for watches/timeouts
12627
12628         * dbus/dbus-transport-unix.c: port to handle OOM during
12629         watch handling
12630
12631         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12632         reference to unused bytes instead of a copy
12633
12634         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12635         out of memory
12636
12637         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12638         FALSE on OOM
12639
12640         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12641         of memory
12642
12643 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12644
12645         * doc/dbus-specification.sgml:
12646         Document reply message for ActivateService.
12647
12648 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12649
12650         * bus/activation.c: (bus_pending_activation_entry_free),
12651         (bus_pending_activation_free), (bus_activation_new),
12652         (bus_activation_unref), (bus_activation_service_created),
12653         (bus_activation_activate_service):
12654         * bus/activation.h:
12655         * bus/bus.c: (bus_context_new):
12656         * bus/desktop-file.c: (new_section):
12657         * bus/driver.c: (bus_driver_send_service_deleted),
12658         (bus_driver_handle_activate_service):
12659         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12660         * bus/services.h:
12661         * dbus/dbus-connection.c:
12662         (dbus_connection_send_with_reply_and_block):
12663         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12664         * dbus/dbus-protocol.h:
12665         Make activation work better. Now pending activations will be queued
12666         and the daemon won't try to activate services that are already registered.
12667
12668 2003-03-16  Havoc Pennington  <hp@pobox.com>
12669
12670         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12671         connection data
12672
12673         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12674         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12675
12676 2003-03-16  Havoc Pennington  <hp@pobox.com>
12677
12678         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12679         this. always run the test suite before commit...
12680
12681         * bus/*: adapt to DBusConnection API changes
12682
12683         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12684         requires renaming stuff to avoid dbus_connection_dispatch name
12685         conflict.
12686
12687         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12688         function
12689
12690         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12691         separate from _dbus_message_loader_return_buffer()
12692
12693         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12694         this, because it's now always broken to use; the number of
12695         messages in queue vs. the number still buffered by the message
12696         loader is undefined/meaningless. Should use
12697         dbus_connection_get_dispatch_state().
12698         (dbus_connection_dispatch): rename from
12699         dbus_connection_dispatch_message
12700
12701 2003-03-16  Havoc Pennington  <hp@pobox.com>
12702
12703         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12704         implementation
12705
12706 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12707
12708         * dbus/dbus-connection.c:
12709         (dbus_connection_send_with_reply_and_block):
12710         Decrease connection->n_incoming when removing an entry
12711         from the list.
12712         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12713         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12714         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12715         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12716         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12717         (dbus_dict_get_byte_array):
12718         Handle NULL arrays and strings. Also add support for byte arrays.
12719
12720         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12721         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12722         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12723         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12724         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12725         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12726         * dbus/dbus-marshal.h:
12727         Add support for marshalling and demarshalling empty arrays and strings.
12728
12729         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12730         (dbus_message_append_string_array),
12731         (dbus_message_iter_get_boolean),
12732         (dbus_message_iter_get_boolean_array),
12733         (dbus_message_iter_get_int32_array),
12734         (dbus_message_iter_get_uint32_array),
12735         (dbus_message_iter_get_double_array),
12736         (dbus_message_iter_get_byte_array),
12737         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12738         (check_message_handling):
12739         Add support for getting empty arrays and dicts.
12740
12741         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12742         Don't do any validation at all for now, that's better than just checking
12743         for ASCII.
12744
12745         * test/data/valid-messages/emptiness.message:
12746         New test message with lots of empty arrays.
12747
12748 2003-03-16  Havoc Pennington  <hp@pobox.com>
12749
12750         * dbus/dbus-connection.c
12751         (_dbus_connection_queue_received_message_link): new function that
12752         can't fail due to OOM
12753
12754         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12755         new function pops a message together with a list link
12756         containing it.
12757
12758         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12759         message queuing functions to avoid needing to alloc memory
12760
12761 2003-03-16  Havoc Pennington  <hp@pobox.com>
12762
12763         Oops - test code was only testing failure of around 30 of the
12764         mallocs in the test path, but it turns out there are 500+
12765         mallocs. I believe this was due to misguided linking setup such
12766         that there was one copy of dbus_malloc etc. in the daemon and one
12767         in the shared lib, and only daemon mallocs were tested. In any
12768         case, the test case now tests all 500+ mallocs, and doesn't pass
12769         yet, though there are lots of fixes in this patch.
12770
12771         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12772         this so that it doesn't need to allocate memory, since it
12773         has no way of indicating failure due to OOM (and would be
12774         annoying if it did).
12775
12776         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12777
12778         * bus/Makefile.am: rearrange to create two self-contained
12779         libraries, to avoid having libraries with overlapping symbols.
12780         that was resulting in weirdness, e.g. I'm pretty sure there
12781         were two copies of global static variables.
12782
12783         * dbus/dbus-internals.c: move the malloc debug stuff to
12784         dbus-memory.c
12785
12786         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12787         empty.
12788
12789         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12790
12791         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12792         on failure.
12793
12794         * bus/dispatch.c (bus_dispatch_add_connection): free
12795         message_handler_slot when no longer using it, so
12796         memory leak checkers are happy for the test suite.
12797
12798         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12799
12800         * bus/bus.c (new_connection_callback): disconnect in here if
12801         bus_connections_setup_connection fails.
12802
12803         * bus/connection.c (bus_connections_unref): fix to free the
12804         connections
12805         (bus_connections_setup_connection): if this fails, don't
12806         disconnect the connection, just be sure there are no side
12807         effects.
12808
12809         * dbus/dbus-string.c (undo_alignment): unbreak this
12810
12811         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12812         leaking
12813         (_dbus_auth_new): fix the order in which we free strings
12814         on OOM failure
12815
12816         * bus/connection.c (bus_connection_disconnected): fix to
12817         not send ServiceDeleted multiple times in case of memory
12818         allocation failure
12819
12820         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12821         get the base service name
12822         (dbus_bus_register_client): don't return base service name,
12823         instead store it on the DBusConnection and have an accessor
12824         function for it.
12825         (dbus_bus_register_client): rename dbus_bus_register()
12826
12827         * bus/dispatch.c (check_hello_message): verify that other
12828         connections on the bus also got the correct results, not
12829         just the one sending hello
12830
12831 2003-03-15  Havoc Pennington  <hp@pobox.com>
12832
12833         Make it pass the Hello handling test including all OOM codepaths.
12834         Now to do other messages...
12835
12836         * bus/services.c (bus_service_remove_owner): fix crash when
12837         removing owner from an empty list of owners
12838         (bus_registry_ensure): don't leave service in the list of
12839         a connection's owned services if we fail to put the service
12840         in the hash table.
12841
12842         * bus/connection.c (bus_connection_preallocate_oom_error): set
12843         error flag on the OOM error.
12844
12845         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12846         handle _dbus_transport_set_connection failure
12847
12848         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12849         to create watches up front and simply enable/disable them as
12850         needed.
12851         (unix_connection_set): this can now fail on OOM
12852
12853         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12854         of enabling/disabling a watch or timeout.
12855
12856         * bus/loop.c (bus_loop_iterate): don't touch disabled
12857         watches/timeouts
12858
12859         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12860
12861 2003-03-15  Havoc Pennington  <hp@pobox.com>
12862
12863         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12864         write useful test code, after all that futzing around ;-)
12865
12866         Test does not yet pass because we can't handle OOM in
12867         _dbus_transport_messages_pending (basically,
12868         dbus_connection_preallocate_send() does not prealloc the write
12869         watch). To fix this, I think we need to add new stuff to
12870         set_watch_functions, namely a SetEnabled function so we can alloc
12871         the watch earlier, then enable it later.
12872
12873         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12874         dbus-memory.c to the convenience lib
12875
12876         * bus/test.c: rename some static functions to keep them clearly
12877         distinct from stuff in connection.c. Handle client disconnection.
12878
12879 2003-03-14  Havoc Pennington  <hp@pobox.com>
12880
12881         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12882         transport, tests more of the real codepath. Set up clients
12883         with bus_setup_debug_client.
12884
12885         * bus/test.c (bus_setup_debug_client): function to set up debug
12886         "clients" on the main loop
12887
12888         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12889         support
12890
12891         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12892         server type
12893
12894         * dbus/dbus-server-debug.c: support a debug server based on pipes
12895
12896         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12897         (_dbus_close): new function
12898
12899         * configure.in: check for socketpair
12900
12901 2003-03-14  Havoc Pennington  <hp@redhat.com>
12902
12903         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12904         cheesy hack
12905
12906         * dbus/dbus-transport-debug.c: rework this a good bit to be
12907         less complicated. hopefully still works.
12908
12909         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12910         manually
12911
12912         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12913         after running it
12914
12915         * dbus/dbus-message.c (dbus_message_copy): rename from
12916         dbus_message_new_from_message, fix it up to copy
12917         all the message fields, add test case
12918
12919         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12920         not quite passing yet
12921
12922 2003-03-14  Havoc Pennington  <hp@pobox.com>
12923
12924         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12925         until no work remains" in test code. (the large diff here
12926         is just code movement, no actual changes)
12927
12928         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12929         1, no point waiting around for test code.
12930         (_dbus_server_debug_accept_transport): unref the timeout
12931         after adding it (right?)
12932
12933         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12934
12935 2003-03-13  Havoc Pennington  <hp@redhat.com>
12936
12937         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12938         out of memory
12939
12940         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12941         of memory
12942
12943         * dbus/dbus-connection.h: Make AddWatchFunction and
12944         AddTimeoutFunction return a bool so they can fail on out-of-memory
12945
12946         * bus/bus.c (bus_context_new): set up timeout handlers
12947
12948         * bus/connection.c (bus_connections_setup_connection): set up
12949         timeout handlers
12950
12951         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12952         can fail
12953
12954         * bus/bus.c (bus_context_new): adapt to changes
12955
12956         * bus/connection.c: adapt to changes
12957
12958         * test/watch.c: adapt to DBusWatch changes
12959
12960         * bus/dispatch.c (bus_dispatch_test): started adding this but
12961         didn't finish
12962
12963 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12964
12965         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12966
12967 2003-03-13  Havoc Pennington  <hp@pobox.com>
12968
12969         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12970         set up a test framework as for the library
12971
12972 2003-03-12  Havoc Pennington  <hp@pobox.com>
12973
12974         Throughout: purge global variables, introduce BusActivation,
12975         BusConnections, BusRegistry, etc. objects instead.
12976
12977         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12978         message bus object
12979
12980         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12981         going to redo this a bit differently I think
12982
12983 2003-03-12  Havoc Pennington  <hp@redhat.com>
12984
12985         Mega-patch that gets the message bus daemon initially handling
12986         out-of-memory. Work still needed. Also lots of random
12987         moving stuff to DBusError instead of ResultCode.
12988
12989         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12990
12991         * dbus/dbus-connection.c
12992         (dbus_connection_send_with_reply_and_block): use DBusError
12993
12994         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12995         DBusResultCode
12996
12997         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12998         code here, as the only failure possible is OOM.
12999
13000         * bus/connection.c (bus_connection_disconnect):
13001         rename bus_connection_disconnected as it's a notification only
13002
13003         * bus/driver.c (bus_driver_handle_acquire_service): don't free
13004         "name" on get_args failure, should be done by get_args;
13005         don't disconnect client for bad args, just return an error.
13006         (bus_driver_handle_service_exists): ditto
13007
13008         * bus/services.c (bus_services_list): NULL-terminate returned array
13009
13010         * bus/driver.c (bus_driver_send_service_lost)
13011         (bus_driver_send_service_acquired): send messages from driver to a
13012         specific client to the client's unique name, not to the broadcast
13013         service.
13014
13015         * dbus/dbus-message.c (decode_header_data): reject messages that
13016         contain no name field
13017         (_dbus_message_get_client_serial): rename to
13018         dbus_message_get_serial and make public
13019         (_dbus_message_set_serial): rename from set_client_serial
13020         (_dbus_message_set_reply_serial): make public
13021         (_dbus_message_get_reply_serial): make public
13022
13023         * bus/connection.c (bus_connection_foreach): allow stopping
13024         iteration by returning FALSE from foreach function.
13025
13026         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
13027         (dbus_connection_free_preallocated_send)
13028         (dbus_connection_preallocate_send): new API for sending a message
13029         without possibility of malloc failure.
13030         (dbus_connection_send_message): rename to just
13031         dbus_connection_send (and same for whole function family)
13032
13033         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
13034
13035         * dbus/dbus-sysdeps.c (_dbus_exit): new function
13036
13037         * bus/activation.c: handle/return errors
13038
13039         * dbus/dbus-errors.h: add more DBUS_ERROR #define
13040
13041         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
13042         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
13043         (_dbus_result_from_errno): move to this file
13044
13045 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
13046
13047         * dbus/dbus-marshal.c:
13048         (_dbus_marshal_set_string):
13049         Take a length argument so we can marshal the correct string
13050         length.
13051
13052         (_dbus_marshal_dict), (_dbus_demarshal_dict),
13053         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
13054         (_dbus_marshal_test):
13055         * dbus/dbus-marshal.h:
13056         Add support for marshalling and demarshalling dicts.
13057
13058         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13059         Add support for TYPE DICT.
13060
13061         * dbus/dbus-message.c: (set_string_field):
13062         Adjust header padding.
13063
13064         (dbus_message_append_args_valist), (dbus_message_append_dict),
13065         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
13066         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
13067         (check_message_handling), (check_have_valid_message):
13068         * dbus/dbus-message.h:
13069         Add functions for setting and getting dicts.
13070
13071         * dbus/dbus-protocol.h:
13072         Add DBUS_TYPE_DICT.
13073
13074         * dbus/dbus.h:
13075         Add dbus-dict.h
13076
13077         * doc/dbus-specification.sgml:
13078         Add information about how dicts are marshalled.
13079
13080         * test/data/invalid-messages/dict-with-nil-value.message:
13081         * test/data/invalid-messages/too-short-dict.message:
13082         * test/data/valid-messages/dict-simple.message:
13083         * test/data/valid-messages/dict.message:
13084         Add sample messages containing dicts.
13085
13086 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
13087
13088         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
13089
13090 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13091
13092         * dbus/Makefile.am:
13093         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13094         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
13095         (dbus_dict_set_int32), (dbus_dict_set_uint32),
13096         (dbus_dict_set_double), (dbus_dict_set_string),
13097         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
13098         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
13099         (dbus_dict_set_string_array), (_dbus_dict_test):
13100         * dbus/dbus-dict.h:
13101         Fix according to comments from Havoc.
13102
13103 2003-03-06  Michael Meeks  <michael@server.home>
13104
13105         * configure.in: if we don't have kde-config, disable have_qt.
13106
13107 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13108
13109         * dbus/Makefile.am:
13110         Add dbus-dict.[ch]
13111
13112         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13113         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
13114         (dbus_dict_remove), (dbus_dict_get_value_type),
13115         (dbus_dict_get_keys), (dbus_dict_put_boolean),
13116         (dbus_dict_put_int32), (dbus_dict_put_uint32),
13117         (dbus_dict_put_double), (dbus_dict_put_string),
13118         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
13119         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
13120         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
13121         (dbus_dict_get_int32), (dbus_dict_get_uint32),
13122         (dbus_dict_get_double), (dbus_dict_get_string),
13123         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
13124         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
13125         (dbus_dict_get_string_array), (_dbus_dict_test):
13126         * dbus/dbus-dict.h:
13127         Add DBusDict implementation
13128
13129         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
13130         * dbus/dbus-test.h:
13131         Add _dbus_dict_test
13132
13133 2003-03-04  Havoc Pennington  <hp@pobox.com>
13134
13135         * test/data/auth/*: adapt to changes
13136
13137         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
13138         USERID_BASE64 and change USERNAME_BASE64 to put in username not
13139         userid
13140
13141         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
13142         more stuff from being in a context name, to make the protocol
13143         simpler to deal with
13144
13145         * dbus/dbus-errors.c (dbus_error_has_name): new function
13146         (dbus_error_is_set): new function
13147
13148         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
13149         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
13150
13151         * dbus/dbus-connection.c (dbus_connection_flush): also read
13152         messages during a flush operation
13153
13154         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
13155
13156 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13157
13158         * configure.in: Check for gethostbyname on Solaris.
13159
13160         * dbus/dbus-transport.c: (_dbus_transport_open):
13161         Remove duplicate "tcp" entry.
13162
13163         * doc/dbus-specification.sgml:
13164         Clarify some things.
13165
13166 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13167
13168         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
13169         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
13170         (_dbus_keyring_test):
13171         * dbus/dbus-md5.c: (_dbus_md5_compute):
13172         * dbus/dbus-sha.c: (_dbus_sha_compute):
13173         Plug memory leaks.
13174
13175 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13176
13177         * README: Add some things.
13178
13179 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
13180
13181         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
13182         after case DBUS_TYPE_BOOELAN.
13183
13184 2003-03-02  Havoc Pennington  <hp@pobox.com>
13185
13186         * test/break-loader.c (randomly_set_extreme_ints): add test that
13187         sets really huge and small integers
13188
13189         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
13190         that length of boolean array fits in the string, and that
13191         string has room for boolean value in single-bool case.
13192
13193         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
13194         optional value to "ALIGN" command which is what to fill the
13195         alignment with.
13196
13197         * test/data/valid-messages/no-padding.message: add regression
13198         test for the message padding problem
13199
13200 2003-03-02  Havoc Pennington  <hp@pobox.com>
13201
13202         * dbus/dbus-message.c (decode_header_data): fix to always init
13203         message_padding, from Benjamin Dauvergne
13204
13205 2003-03-02  Havoc Pennington  <hp@pobox.com>
13206
13207         * configure.in: 0.5
13208
13209         * NEWS: Update.
13210
13211 2003-03-01  Joe Shaw  <joe@assbarn.com>
13212
13213         * configure.in: Check for "struct cmsgcred" and try to access its
13214         members for BSD-like unices.
13215
13216         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
13217         _dbus_read_credentials_unix_socket().
13218         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
13219         read() for reading the credential byte off the unix socket.  Use
13220         struct cmsgcred on systems that support it.
13221
13222 2003-02-27  Alexander Larsson  <alexl@redhat.com>
13223
13224         * glib/Makefile.am:
13225         * configure.in:
13226         Make gthreads-2.0 dependency optional. Don't build thread test if
13227         its not found.
13228
13229 2003-02-27  Havoc Pennington  <hp@pobox.com>
13230
13231         * dbus/dbus-connection.c
13232         (dbus_connection_send_message_with_reply_and_block): fix doh!
13233         doh! doh! bug that resulted in never removing a reply from the
13234         queue, no wonder we called get_reply_serial so much ;-)
13235
13236         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
13237         and client serial instead of demarshaling them every time
13238
13239 2003-02-27  Havoc Pennington  <hp@pobox.com>
13240
13241         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
13242         more inlined, using dbus-string-private.h, speeds things up
13243         substantially
13244
13245         * dbus/dbus-string.c (_dbus_string_free): apply align offset
13246         when freeing the string
13247         (_dbus_string_steal_data): fix for align offset
13248         (undo_alignment): new function
13249
13250 2003-02-26  Havoc Pennington  <hp@redhat.com>
13251
13252         All kinds of audit fixes from Owen, plus initial attempt to
13253         handle unaligned memory returned from malloc.
13254
13255         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
13256         leave room for align_offset and nul byte
13257         (fixup_alignment): function to track an align_offset and
13258         ensure real->str is aligned
13259         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
13260         to allow a nul byte plus align offset
13261         (_dbus_string_lock): fix overflow issue
13262         (_dbus_string_init_const_len): add assertions on sanity of len,
13263         assign allocated to be ALLOCATION_PADDING larger than len
13264         (set_length): fixup the overflow handling
13265         (_dbus_string_get_data_len): fix overflow in assertion
13266         (open_gap): detect overflow in size of gap to be opened
13267         (_dbus_string_lengthen): add overflow check
13268         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
13269         (_dbus_string_append): add overflow check
13270         (_dbus_string_append_unichar): overflow
13271         (_dbus_string_delete): fix overflow in assertion
13272         (_dbus_string_copy_len): overflow in assertion
13273         (_dbus_string_replace_len): overflows in assertions
13274         (_dbus_string_find): change to implement in terms of
13275         _dbus_string_find_to
13276         (_dbus_string_find_to): assorted fixage
13277         (_dbus_string_equal_c_str): assert c_str != NULL,
13278         fix logic so the function works
13279         (_dbus_string_ends_with_c_str): fix overflow thingy
13280         (_dbus_string_base64_encode): overflow fix
13281         (_dbus_string_validate_ascii): overflow
13282         (_dbus_string_validate_nul): overflow
13283
13284 2003-02-26  Havoc Pennington  <hp@redhat.com>
13285
13286         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
13287
13288 2003-02-26  Alexander Larsson  <alexl@redhat.com>
13289
13290         * configure.in:
13291         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
13292
13293         * dbus/dbus-connection.c:
13294         * dbus/dbus-connection.h:
13295         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13296         Add dbus_connection_set_wakeup_main_function and use it when queueing
13297         incoming and outgoing messages.
13298
13299
13300         * dbus/dbus-dataslot.c:
13301         Threadsafe usage of DBusDataSlotAllocator
13302
13303         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13304         dbus_new can fail.
13305
13306         * dbus/dbus-server-unix.c:
13307         Add todo comment
13308
13309         * glib/dbus-gmain.c:
13310         Implement the new wakeup functions for glib.
13311
13312         * glib/Makefile.am:
13313         * glib/test-thread-client.c:
13314         * glib/test-thread-server.c:
13315         * glib/test-thread.h:
13316         Initial cut at some thread test code. Not really done yet.
13317
13318 2003-02-26  Havoc Pennington  <hp@pobox.com>
13319
13320         * dbus/dbus-connection.c
13321         (dbus_connection_send_message_with_reply_and_block): fix crash
13322         where we ref'd the outgoing message instead of the returned reply
13323
13324         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13325         at the end of this function, so if we didn't need to read for
13326         authentication, we reinstall it for receiving messages
13327
13328         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13329         a NULL sender for peer-to-peer case
13330
13331         * dbus/dbus-transport-unix.c (check_read_watch): handle
13332         !authenticated case correctly
13333
13334         * glib/dbus-gmain.c: add support for DBusServer
13335
13336         * dbus/dbus-server.c: add data slot support
13337
13338         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13339         return values and handle errors
13340
13341         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13342         DBusConnection
13343
13344         * Doxyfile.in (INPUT): add glib subdir
13345
13346         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13347         setup_with_g_main instead of hookup_with_g_main; write docs
13348
13349 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13350
13351         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13352         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13353         * dbus/dbus-message.c: (dbus_message_append_boolean),
13354         (dbus_message_append_boolean_array),
13355         (dbus_message_get_args_valist), (_dbus_message_test):
13356         * dbus/dbus-message.h:
13357         * doc/dbus-specification.sgml:
13358         Various fixes as pointed out by Havoc.
13359
13360         * test/data/invalid-messages/bad-boolean-array.message:
13361         * test/data/invalid-messages/bad-boolean.message:
13362         Add invalid boolean value test cases.
13363
13364 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13365
13366         * dbus/dbus-internals.c: (_dbus_type_to_string):
13367         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13368         (_dbus_marshal_validate_arg):
13369         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13370         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13371         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13372         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13373         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13374         (dbus_message_iter_get_double),
13375         (dbus_message_iter_get_boolean_array), (message_iter_test):
13376         * dbus/dbus-message.h:
13377         * dbus/dbus-protocol.h:
13378         * doc/dbus-specification.sgml:
13379         * test/data/valid-messages/lots-of-arguments.message:
13380         Add support for boolean and boolean array types.
13381
13382 2003-02-23  Havoc Pennington  <hp@pobox.com>
13383
13384         * dbus/dbus-keyring.c: finish most of this implementation and
13385         simple unit test
13386
13387         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13388         these barf if the error isn't cleared to NULL
13389
13390         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13391         (_dbus_create_directory): new function
13392
13393         * dbus/dbus-errors.c (dbus_set_error): fix warning
13394
13395         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13396         (_dbus_string_hex_decode): new function
13397         (test_hex_roundtrip): test code
13398
13399         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13400
13401         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13402
13403         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13404         the save-to-temp/rename trick to atomically write the new file
13405         (_dbus_string_parse_uint): new function
13406
13407 2003-02-22  Havoc Pennington  <hp@pobox.com>
13408
13409         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13410
13411 2003-02-22  Havoc Pennington  <hp@pobox.com>
13412
13413         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13414         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13415
13416         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13417
13418         * dbus/test/data/sha-1: add US government test suite for SHA-1
13419
13420 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13421
13422         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13423         Make string arrays NULL-terminated.
13424
13425         * dbus/dbus-memory.c: (dbus_free_string_array):
13426         * dbus/dbus-memory.h:
13427         New function for freeing NULL-terminated string arrays.
13428
13429         * dbus/dbus-message-builder.c: (append_quoted_string),
13430         (_dbus_message_data_load):
13431         Add support for array types.
13432
13433         * dbus/dbus-message.c: (check_message_handling):
13434         Add more types as test cases.
13435
13436         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13437         (_dbus_string_parse_double):
13438         Add the start offset to the end offset.
13439
13440         * test/data/valid-messages/lots-of-arguments.message:
13441         New test message with lots of arguments.
13442
13443 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13444
13445         * dbus/dbus-message.c: (dbus_message_append_nil),
13446         (dbus_message_append_int32), (dbus_message_append_uint32),
13447         (dbus_message_append_double), (dbus_message_append_string),
13448         (dbus_message_append_int32_array),
13449         (dbus_message_append_uint32_array),
13450         (dbus_message_append_double_array),
13451         (dbus_message_append_byte_array),
13452         (dbus_message_append_string_array):
13453         Fix all out-of-memory handling in these functions.
13454
13455 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13456
13457         * dbus/dbus-message.c: (dbus_message_append_nil):
13458         Fix a silly.
13459
13460 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13461
13462         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13463         (dbus_message_append_nil), (dbus_message_append_int32_array),
13464         (dbus_message_append_uint32_array),
13465         (dbus_message_append_double_array),
13466         (dbus_message_append_byte_array),
13467         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13468         (dbus_message_iter_get_int32_array),
13469         (dbus_message_iter_get_uint32_array),
13470         (dbus_message_iter_get_double_array),
13471         (dbus_message_iter_get_byte_array),
13472         (dbus_message_iter_get_string_array):
13473
13474         * dbus/dbus-message.h:
13475         Add functions for appending and getting arrays.
13476
13477 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13478
13479         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13480         element size at least 8 bytes, fixes mempool tests on
13481         64-bit machines.
13482
13483 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13484
13485         * dbus/dbus-transport-unix.c (unix_do_iteration):
13486         Unlock the connection mutex during a blocking select call.
13487         Add todo about how we need a way to wake up the select.
13488
13489         * dbus/dbus-connection-internal.h:
13490         * dbus/dbus-connection.c:
13491         Add _dbus_connection_lock and _dbus_connection_unlock.
13492
13493 2003-02-19  Havoc Pennington  <hp@pobox.com>
13494
13495         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13496         Doxyfile.in, not Doxyfile
13497
13498         * dbus/dbus-keyring.c: do some hacking on this
13499
13500         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13501
13502         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13503         dbus_error_init
13504         (dbus_set_error): remove dbus_error_init, check for message ==
13505         NULL *before* we sprintf into it, and add @todo about including
13506         system headers in this file
13507
13508         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13509
13510         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13511
13512         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13513         get various bits of user information based on either username
13514         or user ID
13515         (_dbus_homedir_from_username): new function
13516
13517 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13518
13519         * configure.in:
13520         Add check for nonposix getpwnam_r
13521
13522         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13523         Align the pool element size to a sizeof (void *) boundary.
13524
13525         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13526         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13527         General Solaris fixes.
13528
13529         * test/data/valid-messages/simplest-manual.message:
13530         Explicitly state that we want little-endian packing.
13531
13532 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13533
13534         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13535
13536         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13537         Added to create a transport connecting using a tcp/ip socket.
13538
13539         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13540         to a tcp socket at given host and port.
13541         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13542         hostname and port.
13543
13544         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13545
13546         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13547         Added to create a server listening on a TCP/IP socket.
13548
13549 2003-02-19  Havoc Pennington  <hp@pobox.com>
13550
13551         Throughout: mop up all the Doxygen warnings and undocumented
13552         stuff.
13553
13554         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13555         to search any paths.
13556
13557         * dbus/dbus-threads.c: move global mutex initializers to
13558         dbus-internals.h, multiple prototypes was confusing doxygen
13559         besides being kind of ugly
13560
13561         * Doxyfile (PREDEFINED): have Doxygen define
13562         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13563         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13564         (do not abuse the feature! it's for stuff like the autogenerated
13565         macros in dbus-md5.c, not just for things you don't feel like
13566         documenting...)
13567
13568 2003-02-18  Havoc Pennington  <hp@pobox.com>
13569
13570         * dbus/dbus-string.c (_dbus_string_zero): new function
13571
13572         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13573         wrap it in some dbus-friendly API
13574
13575         * dbus/dbus-types.h: add 16-bit types
13576
13577 2003-02-18  Joe Shaw  <joe@assbarn.com>
13578
13579         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13580         credentials from our currently running process.
13581         (get_word): Fix a buglet where we were copying the entire length
13582         instead of relative to our position.
13583
13584         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13585         keys on the stack... it's 640k of data.
13586
13587         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13588         read the credentials byte off the socket, even if we don't have
13589         SO_PEERCRED.
13590         (_dbus_poll): Implement poll() using select() for systems which
13591         don't have it.
13592
13593         * glib/test-dbus-glib.c (main): Print out an error if no
13594         parameters are given.
13595
13596         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13597         can fallback to a secondary auth mechanism if the first fails.
13598
13599 2003-02-18  Havoc Pennington  <hp@pobox.com>
13600
13601         * AUTHORS: add Alex
13602
13603 2003-02-17  Havoc Pennington  <hp@pobox.com>
13604
13605         * doc/dbus-specification.sgml: lots of cosmetic
13606         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13607         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13608         s/server/bus/ (except in authentication section). Add a section
13609         "Message Bus Message Routing"
13610
13611 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13612
13613         Release 0.4
13614
13615         * NEWS: Update
13616
13617 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13618
13619         * doc/dbus-specification.sgml:
13620         Specification updates.
13621
13622 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13623
13624         * bus/activation.c: (bus_activation_init), (child_setup),
13625         (bus_activation_activate_service):
13626         * bus/activation.h:
13627         * bus/main.c: (main):
13628         Set DBUS_ADDRESS environment variable.
13629
13630         * dbus/dbus-errors.c: (dbus_set_error):
13631         Don't use va_copy since that's a C99 feature.
13632
13633         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13634         (_dbus_spawn_async):
13635         * dbus/dbus-sysdeps.h:
13636         Add child_setup_func to _dbus_spawn_async.
13637
13638         * doc/dbus-specification.sgml:
13639         Update specification.
13640
13641         * test/spawn-test.c: (setup_func), (main):
13642         Fix test.
13643
13644 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13645
13646         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13647         Added todo.
13648
13649 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13650
13651         * doc/.cvsignore:
13652         * doc/Makefile.am:
13653         * doc/dbus-test-plan.sgml:
13654         Add test plan document.
13655
13656         * test/Makefile.am:
13657         Fix distcheck.
13658
13659 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13660
13661         * dbus/dbus-message.c: (decode_header_data),
13662         (_dbus_message_loader_return_buffer):
13663         Set the header padding amount when loading a message.
13664
13665 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13666
13667         * bus/dispatch.c: (send_one_message):
13668         Only send broadcast messages to registered connections.
13669
13670         * dbus/dbus-message.c: (dbus_message_name_is):
13671         * dbus/dbus-message.h:
13672         New convenience function.
13673
13674         * dbus/dbus-transport-debug.c: (do_reading):
13675         Only dispatch one message per run.
13676
13677         * test/Makefile.am:
13678         * test/bus-test.c: (new_connection_callback), (die),
13679         (test_hello_client1_handler), (test_hello_client2_handler),
13680         (test_hello_replies), (main):
13681
13682         * test/bus-test-loop.[ch]:
13683         Add these.
13684
13685 2003-02-16  Havoc Pennington  <hp@pobox.com>
13686
13687         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13688         backward conditional
13689
13690 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13691
13692         * dbus/dbus-connection.c:
13693         Implement sent_message_with_reply. (with_reply_and block is still
13694         busted).
13695         Made dispatch_message not lose message if OOM.
13696
13697         * dbus/dbus-errors.h:
13698         Add NoReply error (for reply timeouts).
13699
13700 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13701
13702         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13703         Actually free keys and values when destroying hashtable.
13704
13705 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13706
13707         * dbus/dbus-auth.c: (client_try_next_mechanism):
13708         Plug a leak.
13709
13710         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13711         Return TRUE if there's no thread implementation around.
13712
13713         * glib/dbus-gmain.c: (free_source),
13714         (dbus_connection_hookup_with_g_main):
13715         Make sure to remove the GSource when the connection is finalized.
13716
13717 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13718
13719         * bus/dispatch.c: (bus_dispatch_message_handler):
13720         * dbus/dbus-errors.h:
13721         Return an error if someone tries to send a message to a service
13722         that doesn't exist.
13723
13724 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13725
13726         * bus/activation.c: (load_directory), (bus_activation_init),
13727         (bus_activation_activate_service):
13728         * bus/activation.h:
13729         * bus/driver.c:
13730         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13731         More work on the activation handling.
13732
13733         * dbus/dbus-errors.h:
13734         Add some error messages
13735
13736         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13737         * dbus/dbus-message.h:
13738         New function that creates an error message.
13739
13740         * dbus/dbus-protocol.h:
13741         Add ACTIVATE_SERVER message.
13742
13743         * dbus/dbus-server-unix.c: (unix_handle_watch),
13744         (_dbus_server_new_for_domain_socket):
13745         Call _dbus_fd_set_close_on_exec.
13746
13747         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13748         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13749         (_dbus_fd_set_close_on_exec):
13750         * dbus/dbus-sysdeps.h:
13751         Add _dbus_fd_set_close_on exec function. Also add function that checks
13752         that all open fds are set to close-on-exec and warns otherwise.
13753
13754         * dbus/dbus-transport-unix.c:
13755         (_dbus_transport_new_for_domain_socket):
13756         Call _dbus_fd_set_close_on_exec.
13757
13758 2003-02-16  Havoc Pennington  <hp@pobox.com>
13759
13760         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13761         allow people to avoid setting SIGPIPE to SIG_IGN
13762         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13763         we've been asked not to
13764
13765 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13766
13767         * dbus/dbus-list.c: (_dbus_list_append_link),
13768         (_dbus_list_prepend_link):
13769         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13770         (dbus_realloc):
13771         Warning fixes.
13772
13773 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13774
13775         * bus/Makefile.am:
13776         * bus/activation.c: (bus_activation_entry_free),
13777         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13778         * bus/activation.h:
13779         * bus/main.c: (main):
13780         Add simple activation support, doesn't work yet though.
13781
13782 2003-02-15   Zack Rusin  <zack@kde.org>
13783
13784         * qt/dbus-qthread.cpp:  small casting fix
13785
13786 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13787
13788         * dbus/dbus-errors.c: (dbus_set_error):
13789         * dbus/dbus-errors.h:
13790         Add a few errors and make dbus_set_error void.
13791
13792         * dbus/dbus-sysdeps.c:
13793         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13794         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13795         * dbus/dbus-sysdeps.h:
13796         Add _dbus_spawn_async.
13797
13798         * test/spawn-test.c: (main):
13799         Test for _dbus_spawn_async.
13800
13801 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13802
13803         * dbus/dbus-internals.h:
13804         Fix build without tests.
13805
13806         * dbus/dbus-list.c: (alloc_link):
13807         Fix a segfault when a malloc fails.
13808
13809         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13810         (dbus_malloc0), (dbus_realloc):
13811         Add support for malloc debugging.
13812
13813 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13814
13815         * dbus/dbus-threads.c:
13816         * dbus/dbus-threads.h:
13817         Add condvars. Remove static mutext from API.
13818         Implement static mutexes by initializing them from threads_init.
13819
13820         * glib/dbus-gthread.c:
13821         * qt/dbus-qthread.cpp:
13822         Update with the thread api changes.
13823
13824
13825         * dbus/dbus-list.c:
13826         * dbus/dbus-list.h:
13827         Turn StaticMutex into normal mutex + init function.
13828         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13829         _dbus_list_append_link, _dbus_list_prepend_link
13830
13831
13832         * dbus/dbus-sysdeps.c:
13833         * dbus/dbus-sysdeps.h:
13834         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13835         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13836
13837         * dbus/dbus-protocol.h:
13838         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13839
13840         * dbus/dbus-message.c:
13841         Make ref/unref atomic.
13842         Fix some docs.
13843
13844         * dbus/dbus-connection-internal.h:
13845         * dbus/dbus-connection.c:
13846         * dbus/dbus-connection.h:
13847         Make threadsafe.
13848         Change _peek to _borrow,_return & _steal_borrowed.
13849         Change disconnect callback to event.
13850         Make dbus_connection_dispatch_messages reentrant.
13851
13852         * dbus/dbus-transport.c:
13853         Don't ref the connection on calls to the transport
13854         implementation.
13855
13856         * dbus/dbus-message-handler.c:
13857         Make threadsafe.
13858
13859         * glib/dbus-gmain.c:
13860         Don't use peek_message anymore
13861
13862         * test/Makefile.am:
13863         * test/debug-thread.c:
13864         * test/debug-thread.h:
13865         Simple thread implementation that asserts() on deadlocks in
13866         single-threaded code.
13867
13868         * test/bus-test.c:
13869         (main) Call debug_threads_init.
13870
13871         * test/watch.c:
13872         Use disconnect message instead of disconnect callback.
13873
13874         * bus/connection.c:
13875         * bus/connection.h:
13876         Don't call dbus_connection_set_disconnect_function. Instead export
13877         bus_connection_disconnect.
13878
13879         * bus/dispatch.c:
13880         Call bus_connection_disconnect when we get a disconnected message.
13881
13882 2003-02-15  Havoc Pennington  <hp@pobox.com>
13883
13884         * dbus/dbus-message.c (dbus_message_new): fool around with the
13885         docs
13886
13887 2003-02-14  Havoc Pennington  <hp@pobox.com>
13888
13889         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13890
13891         * dbus/dbus-memory.c: fail if the debug functions indicate we
13892         should
13893
13894         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13895         (_dbus_decrement_fail_alloc_counter): debug functions to
13896         simulate memory allocation failures
13897
13898 2003-02-14  Havoc Pennington  <hp@pobox.com>
13899
13900         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13901         to DBusError
13902
13903 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13904
13905         * bus/driver.c: (bus_driver_handle_hello):
13906         * bus/driver.h:
13907         * bus/services.c: (bus_service_lookup):
13908         Reorder message sending so we get a more sane order.
13909
13910         * test/bus-test.c: (message_handler):
13911         Fix tyop.
13912
13913 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13914
13915         * bus/driver.c: (bus_driver_send_service_deleted),
13916         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13917         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13918         (bus_driver_send_welcome_message),
13919         (bus_driver_handle_list_services),
13920         (bus_driver_handle_acquire_service),
13921         (bus_driver_handle_service_exists):
13922         * dbus/dbus-bus.c: (dbus_bus_register_client),
13923         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13924         * dbus/dbus-errors.c: (dbus_result_to_string):
13925         * dbus/dbus-errors.h:
13926         * dbus/dbus-message.c: (dbus_message_append_args),
13927         (dbus_message_append_args_valist), (dbus_message_get_args),
13928         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13929         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13930         (dbus_message_iter_get_byte_array),
13931         (dbus_message_iter_get_string_array), (message_iter_test),
13932         (check_message_handling), (_dbus_message_test):
13933         * dbus/dbus-message.h:
13934         * test/bus-test.c: (main):
13935         Change fields to arguments in messages, so that they won't be
13936         confused with header fields.
13937
13938         * glib/test-dbus-glib.c: (main):
13939         Remove append_fields from hello message.
13940
13941 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13942
13943         * dbus/dbus-errors.c:
13944         * dbus/dbus-message.c:
13945         * dbus/dbus-string.c:
13946         Documentation fixes.
13947
13948 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13949
13950         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13951         (remove_timeout):
13952         Implement support for timeouts in dbus-glib.
13953
13954 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13955
13956         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13957         * dbus/dbus-message.c: (process_test_subdir):
13958         * test/break-loader.c: (find_breaks_based_on):
13959         Plug some memory leaks.
13960
13961 2003-02-13  Richard Hult  <rhult@codefactory.se>
13962
13963         * bus/main.c: Fix build.
13964
13965         * dbus/dbus-errors.h:
13966         * dbus/dbus-errors.c: Fix copyright for Anders.
13967
13968 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13969
13970         * bus/Makefile.am:
13971         Add utils.[ch]
13972
13973         * bus/connection.c: (bus_connection_foreach):
13974         Fix a warning.
13975
13976         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13977         (unescape_string), (new_section), (parse_section_start),
13978         (parse_key_value), (report_error), (bus_desktop_file_load),
13979         (bus_desktop_file_get_string):
13980         * bus/desktop-file.h:
13981         Use DBusError for error reporting.
13982
13983         * bus/dispatch.c: (send_one_message),
13984         (bus_dispatch_message_handler):
13985         * bus/driver.c: (bus_driver_send_service_deleted),
13986         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13987         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13988         (bus_driver_send_welcome_message),
13989         (bus_driver_handle_list_services),
13990         (bus_driver_handle_acquire_service),
13991         (bus_driver_handle_service_exists):
13992         * bus/loop.c: (bus_loop_run):
13993         * bus/main.c:
13994         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13995
13996         * bus/utils.c: (bus_wait_for_memory):
13997         * bus/utils.h:
13998         New files with general utility functions.
13999
14000         * dbus/dbus-internals.h:
14001         Remove _DBUS_HANDLE_OOM.
14002
14003 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14004
14005         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
14006         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
14007         * dbus/dbus-errors.h:
14008         Add DBusError structure.
14009
14010 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14011
14012         * test/data/valid-messages/standard-acquire-service.message:
14013         * test/data/valid-messages/standard-hello.message:
14014         * test/data/valid-messages/standard-list-services.message:
14015         * test/data/valid-messages/standard-service-exists.message:
14016         Add some standard messages.
14017
14018 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14019
14020         * bus/driver.c: (bus_driver_send_welcome_message),
14021         (bus_driver_handle_list_services),
14022         (bus_driver_handle_acquire_service),
14023         (bus_driver_handle_service_exists), (bus_driver_handle_message):
14024         Update for API changes in libdbus.
14025
14026         * dbus/dbus-message.c: (dbus_message_new_reply):
14027         * dbus/dbus-message.h:
14028         Remove the name argument. The spec states that replies shouldn't
14029         have a name.
14030
14031 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14032
14033         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
14034         (report_error), (bus_desktop_file_load), (lookup_section),
14035         (lookup_line), (bus_desktop_file_get_raw),
14036         (bus_desktop_file_get_string):
14037         * bus/desktop-file.h:
14038         Some fixes, and new functions for getting a key value from a section.
14039
14040 2003-02-13  Havoc Pennington  <hp@pobox.com>
14041
14042         * test/data/auth/fail-after-n-attempts.auth-script: new test
14043
14044         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
14045         reject the client.
14046
14047 2003-02-13  Havoc Pennington  <hp@pobox.com>
14048
14049         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
14050         dbus_credentials_match were backward
14051
14052         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
14053         NO_CREDENTIALS and ROOT_CREDENTIALS
14054
14055         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
14056         into here. Never process more commands after we've reached an
14057         end state; store further data as unused bytes.
14058
14059         * test/data/auth/*: add more auth tests
14060
14061         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
14062         command to match exact string and EXPECT_UNUSED to match unused
14063         bytes
14064
14065         * test/Makefile.am (dist-hook): fix to dist all the test stuff
14066
14067 2003-02-12  Havoc Pennington  <hp@pobox.com>
14068
14069         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
14070         \r off of popped lines
14071
14072         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
14073         scripts
14074
14075         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
14076         SEND, append \r\n
14077
14078 2003-02-12  Havoc Pennington  <hp@pobox.com>
14079
14080         * dbus/Makefile.am: remove break-loader from the build, since it
14081         moved.
14082
14083         * configure.in: add --enable-gcov to turn on coverage profiling
14084         flags and disable optimization
14085
14086 2003-02-10  Havoc Pennington  <hp@pobox.com>
14087
14088         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
14089         initial cut at test framework for DBusAuth from laptop.
14090         Doesn't quite work yet but it compiles and I need to get
14091         it off the 266mhz laptop. ;-)
14092
14093         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
14094         fix a memleak in error case
14095
14096 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
14097
14098         * bus/Makefile.am:
14099         * bus/desktop-file.c:
14100         * bus/desktop-file.h:
14101         Add a desktop file parser.
14102
14103 2003-02-11  Zack Rusin  <zack@kde.org>
14104
14105         * qt/message.[h|cpp]: sample implementation
14106         of the KDE wrapper for DBusMessage
14107
14108 2003-02-09  Zack Rusin  <zack@kde.org>
14109
14110         * test/bus-test.c: make_it_compile
14111         * doc/dbus-specification.sgml: minimal semantic fix
14112
14113 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14114
14115         Release 0.3
14116
14117         * NEWS: Update
14118
14119 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14120
14121         * dbus/Makefile.am:
14122         * dbus/dbus-break-loader.c:
14123         * test/Makefile.am:
14124         * test/break-loader.c:
14125         Move dbus-break-loader to test/ and rename it to break-loader.
14126
14127 2003-02-02  Havoc Pennington  <hp@pobox.com>
14128
14129         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
14130         for code to manage cookies in your home directory
14131
14132         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
14133
14134         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
14135         to authenticate, then disconnect the client.
14136
14137 2003-02-03  Alexander Larsson  <alexl@redhat.com>
14138
14139         * dbus/dbus-message.c (dbus_message_append_fields):
14140         Correct docs.
14141
14142 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14143
14144         * doc/dbus-specification.sgml:
14145         Update address format section.
14146
14147 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14148
14149         * test/Makefile.am:
14150         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
14151         (message_handler), (new_connection_callback), (loop_quit),
14152         (loop_run), (main):
14153         Add bus test.
14154
14155 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14156
14157         * bus/driver.c: (bus_driver_handle_service_exists):
14158         Simplify the code a bit.
14159
14160         * dbus/dbus-bus.c: (dbus_bus_service_exists):
14161         Fix a silly.
14162
14163 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14164
14165         * bus/Makefile.am:
14166         Add libdbus-daemon.la and link to it.
14167
14168 2003-02-01  James Willcox  <jwillcox@gnome.org>
14169
14170         * bus/driver.c: (bus_driver_handle_own_service):
14171         Actually include the service reply code in the message.
14172
14173 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14174
14175         * bus/driver.c: (bus_driver_handle_service_exists):
14176         Don't unref the incoming message.
14177
14178 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14179
14180         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
14181
14182 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14183
14184         * dbus/dbus-server.c: (dbus_server_listen):
14185         * dbus/dbus-transport.c: (_dbus_transport_open):
14186         ifdef out the calls to the debug transport and server.
14187
14188 2003-02-02  Alexander Larsson  <alexl@redhat.com>
14189
14190         * dbus/dbus-watch.c (dbus_watch_get_flags):
14191         Add note in the docs that ERROR or HANGUP won't be returned
14192         and are assumed always on.
14193
14194         * glib/dbus-gmain.c (add_watch):
14195         Always add IO_ERR | IO_HUP
14196
14197         * dbus/dbus-message.h:
14198         Add semicolon after dbus_message_iter_get_string_array().
14199         Makes qt code build again
14200
14201 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
14202
14203         * bus/driver.c: (create_unique_client_name),
14204         (bus_driver_handle_hello):
14205         Don't take a name, just use a numeric id to identify
14206         each client.
14207
14208         * dbus/Makefile.am:
14209         * dbus/dbus-bus.c: (dbus_bus_register_client),
14210         (dbus_bus_acquire_service), (dbus_bus_service_exists):
14211         * dbus/dbus-bus.h:
14212         Add new convenience functions for communicating with the bus.
14213
14214         * dbus/dbus-message.h:
14215
14216         * dbus/dbus-protocol.h:
14217         Fix a typo.
14218
14219 2003-02-01  Alexander Larsson  <alexl@redhat.com>
14220
14221         * dbus/dbus-message.c (dbus_message_append_fields):
14222         Add some more doc comments.
14223
14224 2003-02-01  Havoc Pennington  <hp@pobox.com>
14225
14226         * dbus/dbus-break-loader.c (randomly_modify_length): change
14227         a 4-byte value in the message as if it were a length
14228
14229         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
14230         execute bit on saved files
14231
14232 2003-02-01  Havoc Pennington  <hp@pobox.com>
14233
14234         * dbus/dbus-break-loader.c (main): new program to find messages
14235         that break the loader.
14236
14237         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
14238         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
14239
14240         * dbus/dbus-string.c (_dbus_string_set_byte): new
14241
14242 2003-01-31  Havoc Pennington  <hp@pobox.com>
14243
14244         * dbus/dbus-message.c: refactor the test code to be more general,
14245         in preparation for writing a "randomly permute test cases to
14246         try to break the loader" program.
14247
14248 2003-01-31  Havoc Pennington  <hp@pobox.com>
14249
14250         * doc/dbus-specification.sgml: work on the specification
14251
14252         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
14253         the protocol version of the message.
14254
14255         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
14256         no longer specifies that.
14257         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
14258         1/2/3/4)
14259
14260         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
14261         "break" for DBUS_TYPE_NIL, remove @todo
14262
14263 2003-01-31  Havoc Pennington  <hp@pobox.com>
14264
14265         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
14266         just set_is_error/get_is_error as this is a commonly-used
14267         function, and write docs.
14268
14269 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
14270
14271         * dbus/dbus-address.c: (dbus_address_entry_free):
14272         Free key and value lists.
14273
14274         * dbus/dbus-internals.c: (_dbus_type_to_string):
14275         Add the types we didn't have.
14276
14277         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
14278         (_dbus_marshal_validate_arg):
14279         Add NIL types.
14280
14281         * dbus/dbus-message.c: (dbus_message_set_sender):
14282         Remove todo about being able to set sender to NULL.
14283
14284         (dbus_message_set_is_error_reply),
14285         (dbus_message_get_is_error_reply):
14286         * dbus/dbus-message.h:
14287         New functions.
14288
14289         * dbus/dbus-protocol.h:
14290         Add error reply flag.
14291
14292         * test/data/valid-messages/opposite-endian.message:
14293         Add NIL type to test.
14294
14295 2003-01-31  Havoc Pennington  <hp@pobox.com>
14296
14297         * doc/dbus-specification.sgml: fully specify the header.  Add
14298         flags and major protocol version, and change header/body len to
14299         unsigned.
14300
14301         * dbus/dbus-message-builder.c (append_saved_length): append length
14302         as uint32
14303
14304         * dbus/dbus-message.c (dbus_message_create_header): change header
14305         length and body length to unsigned. Add the new fields from the
14306         spec
14307         (_dbus_message_loader_return_buffer): unsigned header/body len
14308
14309 2003-01-30  Havoc Pennington  <hp@pobox.com>
14310
14311         * dbus/dbus-auth.c: rework to use only REJECTED, no
14312         MECHANISMS
14313
14314         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14315         use REJECTED, suggested by Mark McLoughlin
14316
14317 2003-01-30  Havoc Pennington  <hp@pobox.com>
14318
14319         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14320         a better way to report errors here. e.g.  "unix address lacks
14321         path" or something. also "no such file" when the path doesn't
14322         exist, etc.
14323
14324         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14325         leaking list nodes
14326         (dbus_parse_address): add @todo about documenting address format,
14327         and allowing , and ; to be escaped
14328
14329 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14330
14331         * dbus/Makefile.am:
14332         Add dbus-address.[ch]
14333
14334         * dbus/dbus-address.c: (dbus_address_entry_free),
14335         (dbus_address_entries_free), (create_entry),
14336         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14337         (dbus_parse_address), (_dbus_address_test):
14338         * dbus/dbus-address.h:
14339         New files for dealing with address parsing.
14340
14341         * dbus/dbus-connection.c:
14342         Document timeout functions.
14343
14344         * dbus/dbus-message.c:
14345         Document dbus_message_new_from_message.
14346
14347         * dbus/dbus-server-debug.c:
14348         Document.
14349
14350         * dbus/dbus-server.c: (dbus_server_listen):
14351         Parse address and use correct server implementation.
14352
14353         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14354         * dbus/dbus-string.h:
14355         New function with test.
14356
14357         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14358         * dbus/dbus-test.h:
14359         Add address tests.
14360
14361         * dbus/dbus-transport-debug.c:
14362         Document.
14363
14364         * dbus/dbus-transport.c: (_dbus_transport_open):
14365         Parse address and use correct transport implementation.
14366
14367 2003-01-30  Havoc Pennington  <hp@pobox.com>
14368
14369         * dbus/dbus-message.c: use message->byte_order instead of
14370         DBUS_COMPILER_BYTE_ORDER throughout.
14371         (dbus_message_create_header): pad header to align the
14372         start of the body of the message to 8-byte boundary
14373
14374         * dbus/dbus-marshal.h: make all the demarshalers take const
14375         DBusString arguments.
14376
14377         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14378         validate message args here, so we don't have to do slow validation
14379         later, and so we catch bad messages as they are incoming. Also add
14380         better checks on header_len and body_len. Also fill in
14381         message->byte_order
14382
14383         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14384         implemented properly)
14385         (_dbus_string_validate_nul): new function to check all-nul
14386
14387         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14388         get_arg_end_pos and remove all validation
14389         (_dbus_marshal_validate_arg): actually do validation here.
14390
14391 2003-01-29  Havoc Pennington  <hp@pobox.com>
14392
14393         * dbus/dbus-message.c (check_message_handling): fix assertion
14394         failure on set_client_serial
14395
14396 2003-01-28  Havoc Pennington  <hp@pobox.com>
14397
14398         * dbus/dbus-server-debug.c: Add doc section comments
14399
14400         * dbus/dbus-transport-debug.c: add doc section comments
14401
14402 2003-01-28  Havoc Pennington  <hp@redhat.com>
14403
14404         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14405         the reverse order from how I had it
14406         (_dbus_string_base64_encode): reverse encoding order. I was
14407         basically byteswapping everything during encoding.
14408
14409 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14410
14411         * dbus/dbus-connection-internal.h:
14412         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14413         (_dbus_connection_remove_timeout):
14414         Add functions for adding and removing timeouts.
14415
14416         * dbus/dbus-message.c: (dbus_message_new_from_message):
14417         Add new function that takes a message and creates an exact
14418         copy of it, but with the refcount set to 1.
14419         (check_message_handling):
14420         Fix build error.
14421
14422         * dbus/dbus-server-protected.h:
14423         * dbus/dbus-server.c: (_dbus_server_init_base),
14424         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14425         (dbus_server_set_timeout_functions):
14426         (_dbus_server_remove_timeout):
14427         New functions so that a server can add and remove timeouts.
14428
14429         (dbus_server_listen):
14430         Add commented out call to dbus_server_debug_new.
14431
14432         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14433         Actually set the handler, doh.
14434
14435         * dbus/dbus-transport.c: (_dbus_transport_open):
14436         Add commented out call to dbus_transport_debug_client_new.
14437
14438         * dbus/Makefile.am:
14439         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14440
14441 2003-01-28  Havoc Pennington  <hp@pobox.com>
14442
14443         * dbus/dbus-message.c (check_message_handling): function to check
14444         on the loaded message, iterates over it etc.
14445
14446 2003-01-28  Havoc Pennington  <hp@pobox.com>
14447
14448         * test/Makefile.am (dist-hook): fix make distdir
14449
14450         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14451
14452 2003-01-27  Havoc Pennington  <hp@pobox.com>
14453
14454         * dbus/dbus-mempool.c (time_for_size): replace printf with
14455         _dbus_verbose
14456
14457         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14458         empty lines; fix the SAVE_LENGTH stuff to be
14459         START_LENGTH/END_LENGTH so it actually works; couple other
14460         bugfixes
14461
14462         * test/Makefile.am (dist-hook): add dist-hook for .message files
14463
14464         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14465         can be constant or locked.
14466         (_dbus_string_free): allow freeing a const string as
14467         documented/intended
14468
14469         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14470
14471         * dbus/dbus-test-main.c (main): take an argument which is the
14472         directory containing test data
14473
14474         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14475         argument to this and load all the messages in test/data/
14476         checking that they can be loaded or not loaded as appropriate.
14477
14478 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14479
14480         * bus/dispatch.c: (bus_dispatch_message_handler):
14481         Dispatch messages sent to services.
14482
14483         * bus/driver.c: (bus_driver_send_service_deleted),
14484         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14485         (bus_driver_send_service_acquired):
14486         Add helper functions for sending service related messages.
14487
14488         (bus_driver_send_welcome_message):
14489         Send HELLO_REPLY instead of WELCOME.
14490
14491         (bus_driver_handle_list_services):
14492         Send LIST_SERVICES_REPLY instead of SERVICES.
14493
14494         (bus_driver_handle_own_service),
14495         (bus_driver_handle_service_exists):
14496         New message handlers.
14497
14498         (bus_driver_handle_message):
14499         Invoke new message handlers.
14500
14501         (bus_driver_remove_connection):
14502         Don't remove any services here since that's done automatically
14503         by bus_service_remove_owner now.
14504
14505         * bus/driver.h:
14506         New function signatures.
14507
14508         * bus/services.c: (bus_service_add_owner):
14509         Send ServiceAcquired message if we're the only primary owner.
14510
14511         (bus_service_remove_owner):
14512         Send ServiceAcquired/ServiceLost messages.
14513
14514         (bus_service_set_prohibit_replacement),
14515         (bus_service_get_prohibit_replacement):
14516         Functions for setting prohibit replacement.
14517
14518         (bus_service_has_owner):
14519         New function that checks if a connection is in the owner queue of
14520         a certain service.
14521
14522         * bus/services.h:
14523         Add new function signatures.
14524
14525         * dbus/dbus-list.c: (_dbus_list_test):
14526         Add tests for _dbus_list_remove_last and traversing the list backwards.
14527
14528         * dbus/dbus-list.h:
14529         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14530         go any further, so return NULL then.
14531
14532         * dbus/dbus-protocol.h:
14533         Add new messages, service flags and service replies.
14534
14535 2003-01-26  Havoc Pennington  <hp@pobox.com>
14536
14537         * dbus/dbus-message-builder.c: implement, completely untested.
14538
14539         * test/data/*: add data to be used in testing.
14540         ".message" files are our simple loadable text format.
14541         ".message-raw" will be binary dumps of messages.
14542
14543         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14544
14545 2003-01-26  Havoc Pennington  <hp@pobox.com>
14546
14547         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14548
14549         * dbus/dbus-errors.c (dbus_result_to_string): add
14550         file errors
14551
14552         * dbus/dbus-message-builder.c: new file, will contain code to load
14553         up messages from files. Not implemented yet.
14554
14555 2003-01-26  Havoc Pennington  <hp@pobox.com>
14556
14557         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14558         the sender by setting to NULL
14559
14560 2003-01-26  Havoc Pennington  <hp@pobox.com>
14561
14562         The unit tests pass, but otherwise untested.  If it breaks, the
14563         tests should have been better. ;-)
14564
14565         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14566         the connection.
14567
14568         * dbus/dbus-message.c: redo everything so we maintain
14569         message->header as the only copy of the various fields.
14570         This avoids the possibility of out-of-memory in some cases,
14571         for example dbus_message_lock() can't run out of memory anymore,
14572         and avoids extra copying. Figured I may as well go ahead and do
14573         this since it was busted for dbus_message_lock to not return
14574         failure on OOM, and dbus_message_write_header was totally
14575         unchecked for OOM. Also fixed some random other bugs.
14576
14577         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14578         that strings are nul-terminated. Also, end_pos can be equal
14579         to string length just not greater than, I think.
14580         (_dbus_marshal_set_int32): new function
14581         (_dbus_marshal_set_uint32): new function
14582         (_dbus_marshal_set_string): new function
14583
14584         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14585         a warning, init timeout_list to NULL
14586         (dbus_connection_send_message): don't use uninitialized variable
14587         "serial"
14588
14589         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14590
14591 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14592
14593         * bus/driver.c: (bus_driver_handle_hello),
14594         (bus_driver_send_welcome_message):
14595         Plug leaks
14596
14597 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14598
14599         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14600         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14601         (dbus_connection_unref):
14602         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14603         * dbus/dbus-message.c: (dbus_message_unref),
14604         Plug memory leaks.
14605
14606         (dbus_message_get_fields):
14607         Remove debugging printout.
14608
14609         (_dbus_message_loader_return_buffer):
14610         Don't store the header string.
14611
14612         (_dbus_message_test):
14613         Plug leaks.
14614
14615 2003-01-26  Richard Hult  <rhult@codefactory.se>
14616
14617         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14618         the file descriptor list, since it can change under us.
14619
14620 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14621
14622         * glib/dbus-gmain.c: (dbus_connection_prepare),
14623         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14624         (remove_watch), (dbus_connection_hookup_with_g_main):
14625         Rewrite the glib handling to use its own GSource instead of a
14626         GIOChannel so we can catch messages put in the queue while waiting
14627         for a reply.
14628
14629 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14630
14631         * bus/Makefile.am:
14632         * bus/connection.c: (connection_disconnect_handler),
14633         (connection_watch_callback), (bus_connection_setup):
14634         * bus/dispatch.c: (send_one_message),
14635         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14636         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14637         * bus/dispatch.h:
14638         * bus/driver.c: (bus_driver_send_service_deleted),
14639         (bus_driver_send_service_created), (bus_driver_handle_hello),
14640         (bus_driver_send_welcome_message),
14641         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14642         (bus_driver_handle_message):
14643         * bus/driver.h:
14644         Refactor code, put the message dispatching in its own file. Use
14645         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14646         is disconnected.
14647
14648 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14649
14650         * dbus/dbus-internals.h:
14651         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14652
14653         * dbus/dbus-message.c: (dbus_message_get_sender):
14654         * dbus/dbus-message.h:
14655         Implement dbus_message_get_sender.
14656
14657         * dbus/dbus-protocol.h:
14658         Add message and service defines.
14659
14660 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14661
14662         * dbus/dbus-connection.c: (dbus_connection_send_message):
14663         * dbus/dbus-message-internal.h:
14664         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14665         (dbus_message_write_header):
14666         Remove _dbus_messag_unlock and don't set the client serial on a
14667         message if one already exists.
14668
14669 2003-01-24  Havoc Pennington  <hp@pobox.com>
14670
14671         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14672         list_pool
14673
14674         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14675         on OOM
14676
14677 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14678
14679         * dbus/dbus-list.c: (alloc_link), (free_link):
14680         Use a memory pool for the links.
14681
14682 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14683
14684         * bus/connection.c: (bus_connection_foreach):
14685         * bus/connection.h:
14686         Add new bus_connection_foreach function.
14687
14688         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14689         Add function that broadcasts a message to all clients.
14690
14691         (bus_driver_send_service_created), (bus_driver_handle_hello),
14692         (bus_driver_send_welcome_message),
14693         (bus_driver_handle_list_services), (bus_driver_message_handler):
14694         Implement functions that take care of listing services, and notifying
14695         clients when new services are created.
14696
14697         * bus/services.c: (bus_services_list):
14698         * bus/services.h:
14699         Add new function that returns an array of strings with the currently
14700         registered services.
14701
14702         * glib/dbus-glib.h:
14703         * glib/dbus-gmain.c:
14704         Update copyright year.
14705
14706 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14707
14708         * dbus/dbus-connection.c: (dbus_connection_send_message):
14709         Unlock the message in case it was sent earlier.
14710
14711         (dbus_connection_send_message_with_reply_and_block):
14712         Remove the reply message from the list.
14713
14714         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14715         Set array_len and new_pos correctly.
14716
14717         (_dbus_marshal_test):
14718         Remove debug output.
14719
14720         * dbus/dbus-message-internal.h:
14721         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14722         New function that returns the reply serial.
14723
14724         (_dbus_message_unlock):
14725         New function that unlocks a message and resets its header.
14726
14727         (dbus_message_append_string_array),
14728         (dbus_message_get_fields_valist),
14729         (dbus_message_iter_get_field_type),
14730         (dbus_message_iter_get_string_array),
14731         (dbus_message_get_fields),
14732         (dbus_message_append_fields_valist):
14733         Handle string arrays.
14734
14735         (dbus_message_set_sender):
14736         Make this function public since the bus daemon needs it.
14737
14738         (decode_header_data):
14739         Set the reply serial to -1 initially.
14740
14741         * dbus/dbus-message.h:
14742         Add dbus_message_set_sender.
14743
14744 2003-01-24  Havoc Pennington  <hp@pobox.com>
14745
14746         * doc/dbus-specification.sgml: add some stuff
14747
14748 2003-01-22  Havoc Pennington  <hp@pobox.com>
14749
14750         * doc/dbus-specification.sgml: Start to document the protocol.
14751
14752 2003-01-22  Havoc Pennington  <hp@pobox.com>
14753
14754         * dbus/dbus-connection.c
14755         (dbus_connection_send_message_with_reply_and_block): add some @todo
14756
14757         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14758
14759 2003-01-21  Havoc Pennington  <hp@pobox.com>
14760
14761         (patch untested because can't compile)
14762
14763         * bus/driver.c (create_unique_client_name): make this function
14764         never recycle client names. Also, caller should initialize
14765         the DBusString.
14766
14767         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14768
14769 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14770
14771         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14772         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14773         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14774         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14775         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14776         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14777         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14778         * dbus/dbus-marshal.h:
14779         * dbus/dbus-protocol.h:
14780         Add support for marshalling and demarshalling integer, double
14781         and string arrays.
14782
14783 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14784
14785         * bus/Makefile.am:
14786         Add driver.[ch]
14787
14788         * bus/connection.c: (connection_disconnect_handler):
14789         Remove the connection from the bus driver's list.
14790
14791         (connection_watch_callback): Dispatch messages.
14792
14793         (free_connection_data): Free connection name.
14794
14795         (bus_connection_setup): Add connection to the bus driver's list.
14796         (bus_connection_remove_owned_service):
14797         (bus_connection_set_name), (bus_connection_get_name):
14798         Add functions for setting and getting the connection's name.
14799
14800         * bus/connection.h:
14801         Add function headers.
14802
14803         * bus/driver.c: (create_unique_client_name),
14804         (bus_driver_handle_hello_message),
14805         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14806         (bus_driver_add_connection), (bus_driver_remove_connection):
14807         * bus/driver.h:
14808         * bus/main.c:
14809         * bus/services.c: (bus_service_free):
14810         * bus/services.h:
14811         New file that handles communication and registreation with the bus
14812         itself.
14813
14814 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14815
14816         * dbus/dbus-connection.c: (dbus_connection_send_message):
14817         Add a new client_serial parameter.
14818
14819         (dbus_connection_send_message_with_reply):
14820         Remove a @todo since we've implemented the blocking function.
14821
14822         (dbus_connection_send_message_with_reply_and_block):
14823         New function that sends a message and waits for a reply and
14824         then returns the reply.
14825
14826         * dbus/dbus-connection.h:
14827         Add new functions.
14828
14829         * dbus/dbus-errors.c: (dbus_result_to_string):
14830         * dbus/dbus-errors.h:
14831         Add new DBUS_RESULT.
14832
14833         * dbus/dbus-message-internal.h:
14834         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14835         (_dbus_message_set_sender), (dbus_message_write_header),
14836         (dbus_message_new_reply), (decode_header_data),
14837         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14838         * dbus/dbus-message.h:
14839         Add new functions that set the reply serial and sender.
14840         Also marshal and demarshal them correctly and add test.
14841
14842         * dbus/dbus-protocol.h:
14843         Add new DBUS_MESSAGE_TYPE_SENDER.
14844
14845         * glib/dbus-glib.h:
14846         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14847         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14848         (dbus_connection_hookup_with_g_main):
14849         * glib/test-dbus-glib.c: (main):
14850         Rewrite to use GIOChannel and remove the GSource crack.
14851
14852         * test/echo-client.c: (main):
14853         * test/watch.c: (check_messages):
14854         Update for changed APIs
14855
14856 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14857
14858         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14859
14860         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14861         Create a DBusTimeoutList.
14862         (dbus_connection_set_timeout_functions): Add new function to
14863         set timeout callbacks
14864
14865         * dbus/dbus-connection.h: Add public DBusTimeout API.
14866
14867         * dbus/dbus-message.c: (dbus_message_get_service):
14868         * dbus/dbus-message.h:  New function.
14869
14870         * dbus/dbus-server.c: Fix small doc typo.
14871
14872         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14873
14874 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14875
14876         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14877         of the string, just as long as specified.
14878
14879 2003-01-19  Havoc Pennington  <hp@pobox.com>
14880
14881         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14882         new function
14883
14884         * dbus/dbus-server.c (dbus_server_set_max_connections)
14885         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14886         keep track of current number of connections, and add API for
14887         setting a max (but haven't implemented enforcing the max yet)
14888
14889 2003-01-18  Havoc Pennington  <hp@pobox.com>
14890
14891         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14892         reading/writing if read_watch != NULL or write_watch != NULL.
14893
14894         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14895         the message loader code to actually load message->header and
14896         message->body into the newly-created message.
14897
14898         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14899         in OOM case
14900
14901         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14902         (dbus_connection_get_max_message_size)
14903         (dbus_connection_set_max_live_messages_size)
14904         (dbus_connection_get_max_live_messages_size): implement some
14905         resource limitation functions
14906
14907         * dbus/dbus-resources.c: new file implementing some of the
14908         resource limits stuff
14909
14910         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14911         missing docs, add @todo to handle OOM etc.
14912
14913         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14914         docs
14915
14916 2003-01-18  Havoc Pennington  <hp@pobox.com>
14917
14918         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14919         connection if it hasn't been already.
14920
14921         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14922         replace with DisconnectFunction.
14923
14924 2003-01-18  Havoc Pennington  <hp@pobox.com>
14925
14926         Building --disable-verbose-mode --disable-asserts --disable-tests
14927         cuts the library from 112K to 45K or so
14928
14929         * configure.in: check for varargs macro support,
14930         add --enable-verbose-mode, --enable-asserts.
14931
14932         * dbus/dbus-internals.h (_dbus_assert): support
14933         DBUS_DISABLE_ASSERT
14934         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14935
14936 2003-01-18  Havoc Pennington  <hp@pobox.com>
14937
14938         * dbus/dbus-test.c: include config.h so that tests actually run
14939
14940         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14941         so the failure mode when that assumption fails will be plenty
14942         obvious.
14943
14944 2003-01-18  Havoc Pennington  <hp@pobox.com>
14945
14946         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14947
14948         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14949         the distribution
14950
14951         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14952         since we don't want to use those in make check
14953
14954 2003-01-15  Havoc Pennington  <hp@redhat.com>
14955
14956         Release 0.2
14957
14958         * NEWS: update
14959
14960 2003-01-15  Havoc Pennington  <hp@redhat.com>
14961
14962         * test/Makefile.am: fix so that test source code ends up in the
14963         distribution on make distcheck
14964
14965 2003-01-15  Havoc Pennington  <hp@redhat.com>
14966
14967         Release 0.1.
14968
14969         * NEWS: update
14970
14971 2003-01-15  Havoc Pennington  <hp@redhat.com>
14972
14973         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14974         fix build when --disable-tests
14975
14976         * Makefile.am (EXTRA_DIST): put HACKING in here
14977
14978         * HACKING: document procedure for making a tarball release.
14979
14980 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14981
14982         * bus/connection.c: (connection_error_handler),
14983         (bus_connection_setup):
14984         * bus/main.c: (main):
14985         Make sure that the DBusConnectionData struct is NULLed
14986         out to prevent a segfault.
14987
14988         * dbus/dbus-errors.c: (dbus_result_to_string):
14989         * dbus/dbus-errors.h:
14990         * dbus/dbus-message.c: (dbus_message_get_fields),
14991         (dbus_message_get_fields_valist), (_dbus_message_test):
14992         * dbus/dbus-message.h:
14993         Make dbus_message_get_fields return a result code so we can
14994         track invalid fields as well as oom.
14995
14996 2003-01-11  Havoc Pennington  <hp@pobox.com>
14997
14998         * configure.in: change --enable-test/--enable-ansi action-if-given
14999         to enable_foo=$enableval instead of enable_foo=yes
15000
15001 2003-01-08  Havoc Pennington  <hp@pobox.com>
15002
15003         * dbus/dbus-string.c (_dbus_string_align_length): new function
15004
15005         * dbus/dbus-test-main.c: move main() for test app here
15006         * dbus/dbus-test.c
15007         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
15008         symbol to run tests, because dbus-test isn't in the main
15009         library
15010
15011         Code review nitpicks.
15012
15013         * dbus/dbus-message.c (dbus_message_write_header): add newlines
15014         for people with narrow emacs ;-). Assert client_serial was filled
15015         in. Assert message->name != NULL.
15016         (dbus_message_append_fields): have "first_field_type" arg separate
15017         from va list, needed for C++ binding that also uses varargs IIRC
15018         and helps with type safety
15019         (dbus_message_new): add @todo about using DBusString to store
15020         service/name internally
15021         (dbus_message_new): don't leak ->service and ->name on OOM later
15022         in the function
15023         (dbus_message_unref): free the service name
15024         (dbus_message_get_fields): same change to varargs
15025         i.e. first_field_type
15026         (_dbus_message_loader_return_buffer): assert that the message data
15027         is aligned (if not it's a bug in our code). Put in verbose griping
15028         about why we set corrupted = TRUE.
15029         (decode_header_data): add FIXME that char* is evil.  Was going to
15030         add FIXME about evil locale-specific string.h strncmp, but just
15031         switched to wacky string-as-uint32 optimization. Move check for
15032         "no room for field name" above get_const_data_len() to avoid
15033         assertion failure in get_const_data_len if we have trailing 2
15034         bytes or the like. Check for service and name fields being
15035         provided twice. Don't leak service/name on error. Require field
15036         names to be aligned to 4 bytes.
15037
15038         * dbus/dbus-marshal.c: move byte swap stuff to header
15039         (_dbus_pack_int32): uscore-prefix
15040         (_dbus_unpack_int32): uscore-prefix
15041         (_dbus_unpack_uint32): export
15042         (_dbus_demarshal_string): add @todo complaining about use of
15043         memcpy()
15044         (_dbus_marshal_get_field_end_pos): add @todo about bad error
15045         handling allowing corrupt data to go unchecked
15046
15047 2003-01-08  Havoc Pennington  <hp@redhat.com>
15048
15049         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
15050         to the select() as needed for authentication. (should be using
15051         _dbus_poll() not select, but for another day)
15052
15053         * dbus/dbus.h: include dbus/dbus-protocol.h
15054
15055 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
15056
15057         * dbus/Makefile.am (dbusinclude_HEADERS): Install
15058         dbus-connection.h
15059
15060 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
15061
15062         * dbus/dbus-internals.c: (_dbus_type_to_string):
15063         New function that returns a string describing a type.
15064
15065         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
15066         * dbus/dbus-marshal.h:
15067         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
15068         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
15069         (dbus_message_iter_get_byte_array):
15070         * dbus/dbus-message.h:
15071         Add new convenience functions for appending and getting message fields.
15072         Also add demarshalling routines for byte arrays.
15073
15074 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15075
15076         * dbus/dbus-connection-internal.h:
15077         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
15078         (_dbus_connection_get_next_client_serial),
15079         (dbus_connection_send_message):
15080         * dbus/dbus-internals.h:
15081         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
15082         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
15083         (_dbus_marshal_uint32), (_dbus_demarshal_double),
15084         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
15085         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
15086         (_dbus_verbose_bytes), (_dbus_marshal_test):
15087         * dbus/dbus-marshal.h:
15088         * dbus/dbus-message-internal.h:
15089         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
15090         (dbus_message_write_header), (_dbus_message_lock),
15091         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
15092         (dbus_message_get_name), (dbus_message_append_int32),
15093         (dbus_message_append_uint32), (dbus_message_append_double),
15094         (dbus_message_append_string), (dbus_message_append_byte_array),
15095         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
15096         (dbus_message_iter_unref), (dbus_message_iter_has_next),
15097         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
15098         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
15099         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
15100         (decode_header_data), (_dbus_message_loader_return_buffer),
15101         (message_iter_test), (_dbus_message_test):
15102         * dbus/dbus-message.h:
15103         * dbus/dbus-protocol.h:
15104         * dbus/dbus-test.c: (main):
15105         * dbus/dbus-test.h:
15106         * glib/test-dbus-glib.c: (message_handler), (main):
15107         * test/echo-client.c: (main):
15108         * test/watch.c: (check_messages):
15109         Make messages sendable and receivable for real.
15110
15111 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15112
15113         * dbus/dbus-marshal.c: (_dbus_marshal_double),
15114         (_dbus_marshal_string), (_dbus_marshal_byte_array):
15115         * dbus/dbus-message.c: (dbus_message_append_int32),
15116         (dbus_message_append_uint32), (dbus_message_append_double),
15117         (dbus_message_append_string), (dbus_message_append_byte_array):
15118         Handle OOM restoration.
15119
15120 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15121
15122         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15123         (_dbus_demarshal_string), (_dbus_marshal_test):
15124         * dbus/dbus-marshal.h:
15125         * dbus/dbus-message.c: (dbus_message_get_name),
15126         Document these functions.
15127
15128         (dbus_message_append_int32), (dbus_message_append_uint32),
15129         (dbus_message_append_double), (dbus_message_append_string),
15130         (dbus_message_append_byte_array):
15131         * dbus/dbus-message.h:
15132         Add functions for adding message fields of different types.
15133
15134         * dbus/dbus-protocol.h:
15135         Add the different types.
15136
15137 2003-01-05  Havoc Pennington  <hp@pobox.com>
15138
15139         * bus/connection.c: implement routines for handling connections,
15140         first thing is keeping a list of owned services on each connection
15141         and setting up watches etc.
15142
15143         * bus/services.c: implement a mapping from service names to lists
15144         of connections
15145
15146         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
15147
15148         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
15149         to use static mutexes for global data
15150
15151         * dbus/dbus-connection.c (dbus_connection_set_data): add new
15152         collection of functions to set/get application-specific data
15153         on the DBusConnection.
15154
15155 2003-01-04  Havoc Pennington  <hp@pobox.com>
15156
15157         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
15158         (_dbus_poll): new function
15159
15160         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
15161         copied from GLib
15162
15163         * bus/loop.c: initial code for the daemon main loop
15164
15165 2003-01-04  Havoc Pennington  <hp@pobox.com>
15166
15167         * test/watch.c (error_handler): make it safe if the error handler
15168         is called multiple times (if we s/error handler/disconnect
15169         handler/ we should just guarantee it's called only once)
15170
15171         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
15172         error handler on disconnect (it's quite possible we should
15173         just change the error handler to a "disconnect handler," I'm
15174         not sure we have any other meaningful errors)
15175
15176         * configure.in: check for getpwnam_r
15177
15178         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
15179         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
15180         mechanism as in SASL spec, using socket credentials
15181
15182         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
15183         (_dbus_send_credentials_unix_socket): new function
15184
15185         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
15186         dbus_accept()
15187         (_dbus_write): only check errno if <0 returned
15188         (_dbus_write_two): ditto
15189
15190 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
15191
15192         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
15193         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
15194         (_dbus_marshal_test):
15195         * dbus/dbus-marshal.h:
15196         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
15197         to _dbus_marshal_utf8_string. Also fix some tests.
15198
15199 2002-12-28  Harri Porten  <porten@kde.org>
15200
15201         * configure.in: added check for C++ compiler and a very cheesy
15202         check for the Qt integration
15203
15204         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
15205
15206         * qt/Makefile.am: added
15207
15208         * qt/.cvsignore: added
15209
15210         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
15211         latter, added #ifdef QT_THREAD_SUPPORT guard.
15212
15213         * dbus/Makefile.am: added missing headers for make dist
15214
15215 2002-12-28  Kristian Rietveld  <kris@gtk.org>
15216
15217         * dbus/Makefile.am: fixup export-symbols-regex.
15218
15219 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15220
15221         * acinclude.m4: Add this file and put the
15222         PKG_CHECK_MODULE macro in it.
15223
15224 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15225
15226         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15227         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15228         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15229         (_dbus_marshal_test):
15230         Make the demarshalling routines align the pos argument.
15231         Add string marshalling tests and fix the obvious bugs
15232         discovered.
15233
15234 2002-12-26  Havoc Pennington  <hp@pobox.com>
15235
15236         * dbus/dbus-auth.c: fixes fixes fixes
15237
15238         * dbus/dbus-transport-unix.c: wire up support for
15239         encoding/decoding data on the wire
15240
15241         * dbus/dbus-auth.c (_dbus_auth_encode_data)
15242         (_dbus_auth_decode_data): append to target string
15243         instead of nuking it.
15244
15245 2002-12-26  Havoc Pennington  <hp@pobox.com>
15246
15247         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
15248         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
15249         doh
15250
15251         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
15252         avoid swap_bytes() overhead (ignoring possible assembly stuff for
15253         now). Main point is because I wanted unpack_uint32 to implement
15254         _dbus_verbose_bytes
15255         (_dbus_verbose_bytes): new function
15256
15257         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
15258
15259         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
15260         mechanism to handle a corrupt message stream
15261         (_dbus_message_loader_new): fix preallocation to only prealloc,
15262         not prelengthen
15263
15264         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
15265         (_dbus_string_test): enhance tests for copy/move and fix the
15266         functions
15267
15268         * dbus/dbus-transport-unix.c: Hold references in more places to
15269         avoid reentrancy problems
15270
15271         * dbus/dbus-transport.c: ditto
15272
15273         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
15274         leak reference count in no-message case
15275
15276         * test/watch.c (do_mainloop): handle adding/removing watches
15277         during iteration over the watches. Also, ref the connection/server
15278         stored on a watch, so we don't try to mangle a destroyed one.
15279
15280         * dbus/dbus-transport-unix.c (do_authentication): perform
15281         authentication
15282
15283         * dbus/dbus-auth.c (get_state): add a state
15284         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
15285         (_dbus_auth_get_unused_bytes): append the unused bytes
15286         to the passed in string, rather than prepend
15287
15288         * dbus/dbus-transport.c (_dbus_transport_init_base): create
15289         the auth conversation DBusAuth
15290
15291         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
15292         (_dbus_transport_new_for_domain_socket): when creating a
15293         transport, pass in whether it's a client-side or server-side
15294         transport so we know which DBusAuth to create
15295
15296 2002-12-03  Havoc Pennington  <hp@pobox.com>
15297
15298         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15299         _after_ finalizing the derived members
15300         (unix_connection_set): unref watch if we fail to add it
15301
15302         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15303         transport first, so that the connection owned by the
15304         transport will be valid as the transport finalizes.
15305
15306         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15307         if necessary, and remove watches from the connection.
15308
15309         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15310
15311 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15312
15313         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15314         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15315         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15316         (_dbus_marshal_test):
15317         * dbus/dbus-marshal.h:
15318         Add string marshal functions and have the demarshal functions
15319         return the new position.
15320
15321 2002-12-25  Havoc Pennington  <hp@pobox.com>
15322
15323         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15324         it is a simple protocol that just maps directly to SASL.
15325
15326         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15327         initial implementation, not actually used yet.
15328
15329         * dbus/dbus-string.c (_dbus_string_find): new function
15330         (_dbus_string_equal): new function
15331         (_dbus_string_base64_encode): new function
15332         (_dbus_string_base64_decode): new function
15333
15334 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15335
15336         * dbus/Makefile.am:
15337         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15338         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15339         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15340         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15341         * dbus/dbus-marshal.h:
15342         * dbus/dbus-protocol.h:
15343         * dbus/dbus-test.c: (main):
15344         * dbus/dbus-test.h:
15345         Add un-optimized marshalling/demarshalling routines.
15346
15347 2002-12-25  Harri Porten  <porten@kde.org>
15348
15349         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15350
15351 2002-12-24  Zack Rusin  <zack@kde.org>
15352
15353         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15354         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15355         main loop stuff
15356
15357 2002-12-24  Havoc Pennington  <hp@pobox.com>
15358
15359         * glib/dbus-gthread.c: fix include
15360
15361         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15362         I think glib API needs to change, though, as you don't
15363         want to use DBusMessageFunction, you want to use the
15364         DBusMessageHandler object. Probably
15365         dbus_connection_open_with_g_main_loop()
15366         and dbus_connection_setup_g_main_loop() or something like that
15367         (but think of better names...) that just create a connection
15368         that has watch/timeout functions etc. already set up.
15369
15370         * dbus/dbus-connection.c
15371         (dbus_connection_send_message_with_reply): new function just to
15372         show how the message handler helps us deal with replies.
15373
15374         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15375
15376         * dbus/dbus-string.c (_dbus_string_test): free a string that
15377         wasn't
15378
15379         * dbus/dbus-hash.c: use memory pools for the hash entries
15380         (rebuild_table): be more paranoid about overflow, and
15381         shrink table when we can
15382         (_dbus_hash_test): reduce number of sprintfs and write
15383         valid C89. Add tests for case where we grow and then
15384         shrink the hash table.
15385
15386         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15387
15388         * dbus/dbus-connection.c (dbus_connection_register_handler)
15389         (dbus_connection_unregister_handler): new functions
15390
15391         * dbus/dbus-message.c (dbus_message_get_name): new
15392
15393         * dbus/dbus-list.c: fix docs typo
15394
15395         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15396         an object representing a handler for messages.
15397
15398 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15399
15400         * glib/dbus-glib.h:
15401         * glib/dbus-gthread.c: (dbus_gthread_init):
15402         Don't use the gdbus prefix for public functions.
15403
15404 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15405
15406         * Makefile.am:
15407         * configure.in:
15408         Add GLib checks and fixup .pc files
15409
15410         * glib/Makefile.am:
15411         * glib/dbus-glib.h:
15412         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15413         (gdbus_connection_check), (gdbus_connection_dispatch),
15414         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15415         (dbus_connection_gsource_new):
15416         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15417         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15418         * glib/test-dbus-glib.c: (message_handler), (main):
15419         Add GLib support.
15420
15421 2002-12-15  Harri Porten  <porten@kde.org>
15422
15423         * autogen.sh: check for libtoolize before attempting to use it
15424
15425         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15426         struct.
15427
15428         * .cvsignore: ignore more stamp files
15429
15430         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15431
15432         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15433         without make install.
15434
15435 2002-12-15  Havoc Pennington  <hp@pobox.com>
15436
15437         * dbus/dbus-threads.c: add thread stubs that a higher library
15438         layer can fill in. e.g. the GLib wrapper might fill them in with
15439         GThread stuff. We still need to use this thread API to
15440         thread-safe-ize the library.
15441
15442 2002-12-12  Havoc Pennington  <hp@pobox.com>
15443
15444         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15445         below new interfaces and include fewer system headers.
15446
15447         * dbus/dbus-sysdeps.c (_dbus_read): new function
15448         (_dbus_write): new function
15449         (_dbus_write_two): new function
15450         (_dbus_connect_unix_socket): new function
15451         (_dbus_listen_unix_socket): new function
15452
15453         * dbus/dbus-message-internal.h: change interfaces to use
15454         DBusString
15455
15456 2002-12-11  Havoc Pennington  <hp@pobox.com>
15457
15458         * dbus/dbus-types.h: add dbus_unichar
15459
15460         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15461
15462         * dbus/dbus-connection.c (dbus_connection_send_message): return
15463         TRUE on success
15464
15465         * dbus/dbus-transport.c: include dbus-watch.h
15466
15467         * dbus/dbus-connection.c: include dbus-message-internal.h
15468
15469         * HACKING: add file with coding guidelines stuff.
15470
15471         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15472         handling here, for security purposes (as in vsftpd). Not actually
15473         using this class yet.
15474
15475         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15476         system/libc usage here, as in vsftpd, for ease of auditing (and
15477         should also simplify portability). Haven't actually moved all the
15478         system/libc usage into here yet.
15479
15480 2002-11-25  Havoc Pennington  <hp@pobox.com>
15481
15482         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15483         always print the first verbose message.
15484
15485 2002-11-24  Havoc Pennington  <hp@pobox.com>
15486
15487         * test/echo-client.c, test/echo-server.c: cheesy test
15488         clients.
15489
15490         * configure.in (AC_CHECK_FUNCS): check for writev
15491
15492         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15493         function
15494
15495         * dbus/dbus-list.c (_dbus_list_foreach): new function
15496
15497         * dbus/dbus-internals.c (_dbus_verbose): new function
15498
15499         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15500         representing a server that listens for connections.
15501
15502         * dbus/.cvsignore: create
15503
15504         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15505         public API for reporting errors
15506
15507         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15508         public object representing a connection that
15509         sends/receives messages. (Same object used for
15510         both client and server.)
15511
15512         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15513         Basic abstraction for different kinds of stream
15514         that we might read/write messages from.
15515
15516 2002-11-23  Havoc Pennington  <hp@pobox.com>
15517
15518         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15519         _DBUS_INT_MAX
15520
15521         * dbus/dbus-test.c (main): add list test, and include
15522         dbus-test.h as intended
15523
15524         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15525         (_dbus_hash_table_remove_int): return value indicates
15526         whether the entry existed to remove
15527
15528         * dbus/dbus-list.c: add linked list utility class,
15529         with docs and tests
15530
15531         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15532         array sometimes.
15533
15534 2002-11-23  Havoc Pennington  <hp@pobox.com>
15535
15536         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15537         DBUS_END_DECLS to nothing, that should fix this once and for all
15538
15539         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15540
15541         * dbus/dbus-message.c, dbus/dbus-hash.c:
15542         add some missing @brief
15543
15544 2002-11-23  Havoc Pennington  <hp@pobox.com>
15545
15546         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15547         to avoid confusing Doxygen
15548
15549         * dbus/dbus-hash.c: @} not }@
15550
15551         * dbus/dbus-message.c (struct DBusMessage): split out
15552         internals docs
15553
15554 2002-11-23  Havoc Pennington  <hp@pobox.com>
15555
15556         * configure.in: pile on more warning flags if using gcc
15557
15558         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15559         to document static functions
15560
15561         * configure.in: add summary to end of configure so it
15562         looks nice and attractive
15563
15564         * dbus/dbus-hash.c: finish implementation and write unit
15565         tests and docs
15566
15567         * configure.in: add --enable-tests to enable unit tests
15568
15569         * dbus/dbus-test.c: test program to run unit tests
15570         for all files in dbus/*, initially runs a test for
15571         dbus-hash.c
15572
15573         * dbus/dbus-internals.h: file to hold some internal utility stuff
15574
15575 2002-11-22  Havoc Pennington  <hp@redhat.com>
15576
15577         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15578         "ported" away from Tcl
15579
15580         * dbus/dbus-types.h: header for types such as dbus_bool_t
15581
15582 2002-11-22  Havoc Pennington  <hp@redhat.com>
15583
15584         * dbus/dbus.h: fixups for doc warnings
15585
15586         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15587         macros
15588         (QUIET): make it quiet so we can see warnings
15589
15590         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15591
15592 2002-11-22  Havoc Pennington  <hp@redhat.com>
15593
15594         * Makefile.am: include "Doxyfile" target in all-local
15595
15596         * configure.in: generate the Doxyfile
15597
15598         * Doxyfile.in: move Doxyfile here, so we can use
15599         configure to generate a Doxyfile with the right
15600         version number etc.
15601
15602 2002-11-22  Havoc Pennington  <hp@redhat.com>
15603
15604         * dbus/dbus-message.c: move inline docs into .c file
15605
15606         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15607         so all docs are under doc/
15608         (MAN_EXTENSION): generate man pages. Use extension
15609         ".3dbus" which matches ".3qt" on my system,
15610         I guess this is OK, I don't know really.
15611         (FILE_PATTERNS): look for .c files not .h, makes sense
15612         for plain C I think
15613
15614 2002-11-22  Havoc Pennington  <hp@pobox.com>
15615
15616         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15617         because any app can be a server, and any app can be a client,
15618         the bus is a special kind of server.
15619
15620 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15621
15622         * Doxyfile : adding. Still needs Makefile rules to be generated
15623         automatically (just run "doxygen" in the toplevel dir for now to
15624         generate docs)
15625
15626         * dbus/dbus-message.h : Adding sample docs (javadoc since
15627         resembles gtk-doc a little more)
15628
15629         * dbus/dbus.h : Adding sample docs
15630
15631 2002-11-21  Havoc Pennington  <hp@redhat.com>
15632
15633         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15634         so we can allow ourselves to include files directly,
15635         instead of having to use dbus.h
15636
15637         * dbus/dbus.h: fill in
15638
15639         * dbus/dbus-message.h: sketch out a sample header file.
15640         Include griping if you include it directly instead of
15641         via dbus.h
15642
15643         * dbus/dbus-macros.h: new file with macros for extern "C",
15644         TRUE/FALSE, NULL, etc.
15645
15646         * doc/file-boilerplate.c: put include guards in here
15647
15648 2002-11-21  Havoc Pennington  <hp@redhat.com>
15649
15650         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15651
15652         * COPYING: include the GPL as well, and license code
15653         under both AFL and GPL.
15654
15655 2002-11-21  Havoc Pennington  <hp@redhat.com>
15656
15657         * acconfig.h: get rid of this
15658
15659         * autogen.sh (run_configure): add --no-configure option
15660
15661         * configure.in: remove AC_ARG_PROGRAM to make
15662         autoconf complain less. add AC_PREREQ.
15663         add AC_DEFINE third arg.
15664
15665 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15666
15667         * doc/Makefile.am:
15668         Fix references so we can distcheck.
15669
15670 2002-11-21  Havoc Pennington  <hp@redhat.com>
15671
15672         * Initial module creation
15673