* dbus/dbus-internal.c: fix inline problem on win32.
[platform/upstream/dbus.git] / ChangeLog
1 2007-05-20 Ralf.Habacker  <ralf.habacker@freenet.de>
2
3         * dbus/dbus-internal.c: fix inline problem on win32.
4
5 2007-05-20 Ralf.Habacker  <ralf.habacker@freenet.de>
6
7         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir): not reaching 
8         domain controller isn't an error, converted error message to verbose 
9         message.
10
11 2007-05-19 Ralf.Habacker  <ralf.habacker@freenet.de>
12
13         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): disabled 
14         tests not running on wince.
15
16 2007-05-19 Ralf.Habacker  <ralf.habacker@freenet.de>
17
18         * dbus/dbus-internals.c (_dbus_verbose_init): win32 requires 'varname=' 
19         to unset a environment variable. 
20
21 2007-05-19 Ralf.Habacker  <ralf.habacker@freenet.de>
22
23         * dbus/dbus-sysdeps.c (_dbus_setenv): win32 requires 'varname=' 
24         to unset a environment variable. 
25
26 2007-05-19 Ralf.Habacker  <ralf.habacker@freenet.de>
27
28         * bus/policy.c (bus_policy_create_client_policy): 
29         win32 temporary fix until the userdb stuff is ported completly.
30
31 2007-05-19  Ralf.Habacker  <ralf.habacker@freenet.de>
32
33         * dbus/dbus-server.c (listen_funcs): 
34         _dbus_server_listen_platform_specific is empty on win32, 
35         limited to unix only.
36
37         * dbus/dbus-server.c (valid_addresses): limit unix 
38         only addresses to unix. 
39
40 2007-05-18  Havoc Pennington  <hp@redhat.com>
41
42         * doc/dbus-specification.xml: add a GetAll to the Properties
43         interface.
44
45 2007-05-17 Ralf.Habacker  <ralf.habacker@freenet.de>
46  
47         * bus\config-parser.c (test_default_session_servicedirs):
48         win32 fix.
49
50 2007-05-17 Ralf.Habacker  <ralf.habacker@freenet.de>
51  
52         * configure.in: define constant DBUS_UNIX.
53
54 2007-05-14  Ralf Habacker <ralf.habacker@freenet.de>
55
56         * dbus/dbus-sysdeps-win.c (_dbus_printf_string_upper_bound):
57         compile fix for MS Platform SDK 6 
58         patch from Michael Luschas <mluschas@gmail.com>
59
60 2007-05-10  John (J5) Palmieri <johnp@redhat.com>
61
62         * dbus-1.pc.in: add daemondir to pc file
63         patch from Brian Cameron <brian.cameron at sun.com>
64
65 2007-05-04  Simon McVittie <simon.mcvittie@collabora.co.uk>
66
67         * doc/dbus-specification.xml: mention the reserved o.fd.DBus.Local
68         interface and the corresponding /o/fd/DBus/Local object path;
69         describe them as reserved and forbid using them in a sent message,
70         mentioning that in the reference implementation this will cause the
71         connection to be dropped. Patch approved by Havoc.
72
73 2007-04-28  Ralf Habacker <ralf.habacker@freenet.de>
74
75         * cmake/: don't install test applications and service files,
76         moved CMAKE_DEBUG_POSTFIX to top level CMakeLists.txt
77
78 2007-04-27  Havoc Pennington  <hp@redhat.com>
79
80         * dbus/dbus-sysdeps-unix.c (_dbus_open_socket): fix #10781 from
81         Tobias Nygren, checking pointer to fd vs. 0 rather than checking
82         the fd itself
83
84 2007-04-26 Ralf Habacker  <ralf.habacker@freenet.de>
85
86         * cmake/: added debug postfixes to debug exe's for 
87         easier debugging.
88         * dbus\dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error): 
89         print error code in case no string message is available.
90
91 2007-04-06 Simon McVittie <simon.mcvittie@collabora.co.uk>
92
93         * dbus/dbus-message-util.c, dbus/dbus-message.c,
94         dbus/dbus-message.h: Add API to convert a DBusMessage to/from a
95         byte array. Patch from Dafydd Harries <dafydd.harries@collabora.co.uk>,
96         approved by Havoc Pennington.
97
98 2007-04-03  Timo Hoenig  <thoenig@suse.de>
99
100         * dbus/dbus-address.c (dbus_parse_address): Do not accept zero-
101           length address.
102         * dbus/dbus-address.c (_dbus_address_test): Add test for zero-
103           length address.
104
105 2007-03-25 Ralf.Habacker  <ralf.habacker@freenet.de>
106
107         * cmake/dbus/CMakeLists.txt: debug postfix also for mingw.
108
109 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
110
111         * cmake/modules/FindExpat.cmake: fix package detection on win32.
112
113         * README.win: update install instructions. 
114
115 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
116
117         * dbus/dbus-sysdeps.h (_dbus_split_paths_and_append):
118         new prototyp
119         (_DBUS_PATH_SEPARATOR): new macro. 
120
121         * dbus/dbus-sysdeps.c (_dbus_split_paths_and_append): merged 
122         from dbus/dbus-sysdeps-unix.c and dbus/dbus-sysdeps-win.c. 
123
124 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
125
126         * bus/config-parser.c, bus/policy.c,  
127         bus/policy.h, bus/dbus-daemon.1.in,
128         bus/session.conf.in: added eavesdrop support 
129         for replies - patch by olli.salli at collabora.co.uk
130         approved by Havoc Pennington. 
131
132 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
133
134         * dbus\dbus-sysdeps-win-thread.c: renamed to 
135         dbus-sysdeps-thread-win.c, it is a platform depending file 
136         similar to dbus-sysdeps-pthread.c.
137
138 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
139
140         * cmake\doc\CMakeLists.txt: added prelimary xml doc 
141         support, needs cmake Find script.
142
143 2007-03-14 Ralf.Habacker  <ralf.habacker@freenet.de>
144
145         * cmake: add doxygen support
146
147 2007-03-14  Ralf.Habacker  <ralf.habacker@freenet.de>
148
149         * cmake/config.h.cmake: WINCE fixes, defined DBUS_UNIX.
150
151 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
152
153         * dbus/dbus-sysdeps-util-win.c (dbus_become_daemon): 
154         win32 compile fix. 
155
156 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
157
158         * dbus-win.patch: removed obsolate patches. 
159
160 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
161
162         * dbus/dbus-sysdeps-win.c: added zero byte sending 
163         and receiving after connection start up
164
165 2007-03-11  Havoc Pennington  <hp@redhat.com>
166
167         * tools/dbus-launch.c (do_close_stderr): fix C89 problem and
168         formatting problem
169
170         * Mostly fix the DBusPipe mess.
171         - put line break after function return types
172         - put space before parens
173         - do not pass structs around by value
174         - don't use dbus_strerror after calling supposedly cross-platform
175         api
176         - don't name pipe variables "fd"
177         - abstract special fd numbers like -1 and 1
178
179 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
180
181         * dbus/dbus-sysdeps-win.h, dbus/dbus-sysdeps-win.c, 
182         dbus/dbus-sysdeps-util-win.c: renamed functions 
183         _dbus_xxx_file() to _dbus_file_xxx() to reflect 
184         struct name DBusFile. 
185
186 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
187
188         * dbus/dbus-sysdeps-util-unix.c (_dbus_become_daemon):
189         fix _dbus_pid_fd check. 
190
191 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
192
193         * tools/dbus-print-message.c (print_message):
194         added printing of the reply serial to method returns and 
195         errors, so you can actually figure out the message/reply 
196         pairs - patch by olli.salli at collabora.co.uk.
197
198 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
199
200         * dbus-win.patch: removed committed patches. 
201
202 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
203
204         * bus/bus.c, bus/bus.h, bus/main.c, bus/test.c,
205         dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-util-unix.c,
206         dbus/dbus-sysdeps-util-win.c, dbus/dbus-sysdeps-win.c,
207         dbus/dbus-sysdeps.h: renamed _dbus_xxx_pipe to _dbus_pipe_xxx,
208         completed _dbus_pipe support. 
209
210 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
211
212         * dbus/dbus-sysdeps.h (_dbus_listen_tcp_socket):
213         changed type or port to pointer, because the port is given back.
214
215         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
216         implemented returning tcp port. Skipping port parameter
217         and non integer port values in config <listen> statement
218         needs more effort.
219
220         * dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-win.c
221         (_dbus_listen_tcp_socket): return the real used tcp port.
222
223         * bus/dbus-daemon.1.in: added <listen> tcp examples
224
225 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
226
227         * cmake/config.h.cmake: win32 msvc bug fix
228
229 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
230
231         * cmake/config.h.cmake: fixed DBUS_WINxx defines,
232         using _WINCE does not work.
233
234 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
235
236         * dbus-win.patch: removed _dbus_write_pipe() patch, it is now 
237         committed.
238
239 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
240
241         * bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h:
242         rename pipe related write() function calls to _dbus_write_pipe().
243
244 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
245
246         * dbus-win.patch: added bus/config-loader-libexpat.c patch, 
247         uses DBUS_WIN for alls win32 related #ifdefs, 
248         some minor cleanups
249
250 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
251
252         * dbus-win.patch: updated patch for bus/dispatch.c.
253
254 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
255
256         * dbus-win.patch: dbus-connection.c (dbus_connection_get_unix_user,
257         dbus_connection_get_unix_process_id): Let return them valid user id's, 
258         otherwise bus-test fails. How to replace on win32 ?.
259         
260         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir):
261         fix memory leak.
262
263 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
264
265         * dbus/dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error):
266         use dbus friendly error name.
267         (fill_win_user_info_homedir): print user name in error case too.
268
269 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
270
271         * cmake/ConfigureChecks.cmake: fixed socketpair check
272
273 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
274
275         * bus/dispatch.c: disabled segfault test on win32 for now
276
277 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
278
279         * configure.in, cmake/ConfigureChecks.cmake: added check 
280         for setrlimit. 
281         * test/test-segfault.c: only include setrlimit stuff only 
282         when available.  
283
284 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
285
286         * test/test-segfault.c: unix compile fix.
287         * dbus-win.patch: removed obsolate patches.
288
289 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
290
291         * bus/activation.c: removed obsolate include header.
292         * test/test-segfault.c: win32 compile fix, rlimit 
293         isn't available on win32.
294         * dbus-win.patch: removed some more patches, they
295         are applied or obsolate 
296
297 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
298
299         * bus-win.patch: fixes unix listen problems, dbus-test 
300         now runs.
301
302 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
303
304         * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
305         cmake/CMakeLists.txt: win32 compile fix
306
307 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
308
309         * dbus-win.patch, README.win: added available win32 
310         patches from windbus project (http://sf.net/projects/windbus)
311
312 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
313
314         * bus/activation.c: (bus_activation_activate_service):
315         fixed call to _dbus_spawn_async_with_babysitter().
316
317 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
318
319         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
320         added environment pointer as function parameter, used on win32.
321
322         * test/spawn-test.c: fixed call to above mentioned function.
323
324 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
325
326         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
327         added configure check for unistd.h.
328
329 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
330
331         * test/Makefile.am: fixed test data copy problem in 
332         out of source build, when sources came from svn or cvs. 
333
334 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
335
336         * dbus/*-win.*,bus/*-win.*: added win32 platform related
337         files. These files are only added to the cmake build system.  
338         The missing dbus-win.patch file will be added later. 
339
340 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
341
342         * cmake: new directory, contains cmake build support.
343         See http://www.cmake.org for more informations.
344         Currently only unix will be buildable because some 
345         win32 required files are still missing. 
346
347 2007-03-03  Thiago Macieira  <thiago@kde.org>
348
349         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
350         output and add it to the DBusError message we return.
351
352         * tools/dbus-launch.1:
353         * tools/dbus-launch.c: Add option --close-stderr to, well,
354         close stderr before starting dbus-daemon.
355
356 2007-01-31  Havoc Pennington  <hp@redhat.com>
357
358         * bus/dbus-daemon.1.in: write a section in the man page on running
359         a test daemon for debugging purposes
360
361 2007-01-26  Havoc Pennington  <hp@redhat.com>
362
363         * bus/session.conf.in: override all the default limits with much
364         higher limits on the session bus, there is no reason the session
365         bus should have low limits
366
367         * bus/config-parser.c (bus_config_parser_new): increase default
368         limits so they are less likely to be hit; in particular the max
369         replies per connection was way too low
370
371 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
372
373         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
374         a pointer to the tutorial maintained as part of dbus-python
375
376 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
377
378         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
379         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
380         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
381
382 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
383
384         * tools/dbus-monitor.c: gettimeofday() is not available 
385         on windows so we have to provide our own. It's taken from 
386         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
387
388 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
389
390         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
391         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
392         is in dbus-sysdeps-win.c (not in this patch).
393
394         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
395         with InterlockedInc/Decrement. 
396         - Patches from Christian Ehrlicher
397         
398 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
399
400         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
401
402 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
403
404         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
405         fix mispaced const statement. - Patch from Peter Kümmel
406
407 2006-12-19  Ray Strode  <rstrode@redhat.com>
408
409         * bus/bus.c (process_config_every_time):
410         don't overwrite existing bus context activation object
411         until after we've checked that the new activation is
412         valid.
413
414         * bus/main.c 
415         (signal_handler), (handle_reload_watch):
416         don't call exit() on failure, instead make do and keep
417         going.
418         (close_reload_pipe): new function to turn off
419         hangup-causes-config-reload behavior if an unexpected
420         error occurs
421
422 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
423
424         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
425         correctness fix. - Patch from Christian Ehrlicher
426
427 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
428
429         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
430         we should also use it. - Patch from Christian Ehrlicher
431
432 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
433   
434         * dbus-sysdeps-util.c: added win32 related tests
435
436 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
437
438         * dbus/dbus-string.c (_dbus_string_pop_line),
439         bus/desktop-file.c (parse_section_start,
440         parse_comment_or_blank,parse_key_value,): uses
441         _dbus_string_find_eol() to support platform independent eol style.
442
443 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
444
445         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
446         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
447               _dbus_string_find_eol().
448         Approved by: Havoc Pennington.
449
450 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
451
452         * configure.in: Added switch to disable user_database caching.
453
454         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
455         be able disable user_dabase caching.
456
457 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
458
459         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
460         struct. It is unnecessary we have a global one already. Also remove 
461         bus_context_get_user_database function, it is no longer needed.
462         Flush the global database on reload.
463
464         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
465         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
466
467         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
468         Add _dbus_user_database_flush_system. 
469         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
470         Small unrelated change in _dbus_is_a_number: change 
471         _dbus_string_parse_int to _dbus_string_parse_uint. 
472
473         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
474         _dbus_groups_from_uid.
475
476         * bus/policy.c, bus/policy.h: Change call to 
477         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
478         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
479         needs it.
480
481 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
482
483         * bus/signal.c: Fix match_rule_equal errata
484         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
485         <kimmo.hamalainen@nokia.com>)
486
487 2006-11-19  Thiago Macieira  <thiago@kde.org>
488
489         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
490         _dbus_pthread_condvar_wait,
491         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
492         pthread_self() after coming back from a conditional variable
493         wait as well as in one codepath where it was forgotten.
494         Approved by: Havoc Pennington.
495
496 2006-11-17  Havoc Pennington  <hp@redhat.com>
497
498         * update-dbus-docs.sh: allow setting fd.org username via env
499         variable. Make it run autogen with --enable-xml-docs=yes
500         --enable-doxygen-docs=yes so configure will fail if the required
501         tools are missing.
502
503 2006-11-17  Havoc Pennington  <hp@redhat.com>
504
505         * doc/dbus-faq.xml: minor FAQ tweaks
506
507 2006-11-14  Havoc Pennington  <hp@redhat.com>
508         
509         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
510         dbus_get_local_machine_id() to its own file, no substantive
511         changes. There are a couple other things we might want to add that
512         are "misc" so moving out of dbus-connection.[hc] which is big
513         enough already.
514         
515 2006-11-14  Havoc Pennington  <hp@redhat.com>
516
517         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
518         UUID had the timestamp last, but the implementation had it first;
519         move it to last since I think it's a tiny bit nicer (easier to
520         compare at a glance, faster to sort, less code), and will not
521         cause any practical compatibility problems. Also, always convert
522         the timestamp to big endian.
523
524         * doc/dbus-specification.xml: Clean up the docs on the UUID.
525
526         * tools/dbus-uuidgen.1: more prominently say it is not suitable
527         as a replacement for regular uuidgen/RFC4122.
528
529 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
530
531         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
532         the correct value so we don't assert when initalizing recursive threads
533
534         * test/name-test/test-thread-init.c: call dbus_threads_init_default
535         instead of _dbus_threads_init_debug since it is more of a real world
536         test
537
538 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
539
540         * Released 1.0.0
541
542 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
543
544         * AUTHORS: added Peter and Tor of windows porting fame
545
546 2006-11-08  Havoc Pennington  <hp@redhat.com>
547
548         * doc/dbus-specification.xml: add a note about protocol stability
549
550         * doc/TODO: Remove "important for 1.0" section, replace with
551         "important for 1.2" section
552         
553 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
554
555         * README: remove some of the out of date flags
556
557         * doc/TODO: Remove todo items which are done
558
559 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
560
561         * tools/dbus-monitor.c: Handle sigint so we flush stdout
562         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
563
564 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
565
566         * tools/dbus-monitor.1: update the manpage for dbus-monitor
567         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
568
569 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
570
571         * AUTHORS: Update with all people listed in the ChangeLog
572
573 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
574
575         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
576         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
577
578 2006-11-07  Havoc Pennington  <hp@redhat.com>
579
580         * HACKING: Update release instructions to include stuff about
581         stable releases, branching, etc. May not be totally correct,
582         please fix if needed, but keep instructions up-to-date so we do
583         each stable release consistently in the future.
584
585 2006-11-07  Havoc Pennington  <hp@redhat.com>
586
587         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
588         documentation updates. Bump faq/spec versions (not to 1.0; I don't
589         think the spec will be "finished"/1.0 when we ship the 1.0 library).
590
591 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
592
593         * bus/bus.c: Missed patch - pass in the context to the directory watch
594
595 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
596
597         * Released D-Bus 1.0 RC 3(0.95)
598
599 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
600
601         * bus/activation.c (bus_activation_new): don't fail if we can not read
602         the directory as it may not exist
603
604 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
605
606         * bus/config-parser.c (service_dirs_find_dir): use 
607         _dbus_list_get_next_link so we don't get stuck in an infinite loop
608         (start_busconfig_child): move processing of standard_session_servicedirs
609         tags here because they have no content
610         (bus_config_parser_content): check we don't have content in 
611         standard_session_servicedirs tag
612
613 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
614
615         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
616         Packagers need to own this directory
617
618 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
619
620         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
621         <standard_session_servicedirs> tag with a <sevicedir> tag that
622         points to the test service directory
623
624 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
625
626         * configure.in: Add a check for DIR *dirp->dd_fd
627
628         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
629         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
630         of both Solaris and Irix
631
632 2006-11-01  Havoc Pennington  <hp@redhat.com>
633
634         * bus/dbus-daemon.1.in: document standard_session_servicedirs
635
636 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
637
638         * configure.in: expose DBUS_DATADIR
639         
640         * bus/config-parser.c: add the standard_session_servicedirs element
641         to the parser
642         (bus_config_parser_content): process the standard_session_servicedirs
643         element by getting the standard directories from sysdeps and merging
644         them into the service directory list
645         (test_default_session_servicedirs): make sure we get what we expect
646
647         * bus/session.conf.in: replace the servicedir tag with the 
648         standard_session_servicedirs tag
649
650         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
651         dbus-sysdeps.h to avoid circular header dependencies
652
653         * dbus/dbus-sysdeps.h: add the typedef of DBusList
654
655         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
656         which takes a string of directories delimited by colons, parses them 
657         out, appends a suffix and puts them in a list ignoring empty elements
658         (_dbus_get_standard_session_servicedirs): returns the standard 
659         directories for a session bus to look for service activation files
660         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
661         DBUS_DATADIR directories
662
663         * test/data/valid-config-files/many-rules.conf: add the 
664         standard_session_servicedirs tag to the valid config file tests
665
666 2006-10-30  Havoc Pennington  <hp@redhat.com>
667
668         * tools/dbus-launch.1, doc/TODO: capture intent to change the
669         command line options of dbus-launch a bit post 1.0
670
671 2006-10-27  Havoc Pennington  <hp@redhat.com>
672         
673         * dbus/dbus-connection.c (dbus_connection_open_private): document
674         how to choose shared vs. private connections
675
676 2006-10-27  Havoc Pennington  <hp@redhat.com>
677
678         * dbus/dbus-test.c: enclose more of the file in the
679         DBUS_BUILD_TESTS check.
680
681         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
682         DBUS_DISABLE_ASSERT case.
683
684         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
685         that it only works on the server side
686
687         * dbus/dbus-bus.c: add a global lock covering the BusData we
688         attach to each connection
689         (internal_bus_get): lock our access to the BusData
690         (dbus_bus_register): lock the entire registration process
691         with _DBUS_LOCK(bus_datas). If we get the lock and 
692         registration is already complete, silently return (vs. previous
693         behavior of aborting).
694         (dbus_bus_set_unique_name): lock the BusData
695         (dbus_bus_get_unique_name): lock the BusData
696
697 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
698
699         * bus/config-parser.c (service_dirs_find_dir, 
700         service_dirs_append_unique_or_free, 
701         service_dirs_append_link_unique_or_free): New static methods
702         for only appending unique service directory names into
703         the service directory list
704         (merge_included, bus_config_parser_content): Only add unique
705         service directory names into the list
706
707 2006-10-27  Havoc Pennington  <hp@redhat.com>
708
709         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
710         variables volatile, suggested by Thiago. Document struct fields.
711         (PTHREAD_CHECK): remove pthread error checking if assertions are
712         disabled, should reduce the no-assertions case to the bare
713         minimum code.
714
715 2006-10-26  Havoc Pennington  <hp@redhat.com>
716         
717         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
718         to be recursive
719         (_dbus_pthread_mutex_unlock): make it recursive
720         (_dbus_pthread_condvar_wait): save/restore the recursion count
721         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
722
723 2006-10-26  Havoc Pennington  <hp@redhat.com>
724
725         * doc/dbus-specification.xml: clarify the UUID text slightly
726
727         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
728         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
729         in preparation for being able to extend them for e.g. recursive
730         mutexes.
731
732 2006-10-26  Havoc Pennington  <hp@redhat.com>
733
734         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
735         condition variables relate to recursive mutexes.
736         
737         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
738         dbus/dbus-threads.c: Split the platforms-specific thread 
739         implementations into their own files.
740         
741         * dbus/dbus-sysdeps-pthread.c
742         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
743         was backward. Not that anything uses it.
744
745 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
746
747         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
748         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
749         needs to be cleaned up more.
750
751         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
752         up the CREDS issue.
753
754 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
755
756         * configure.in, dbus-1.pc.in: Check to see if thread methods 
757         are in glibc or libpthread and add -lpthread to the link stage 
758         if it is the latter
759
760 2006-10-26  Thiago Macieira  <thiago@kde.org>
761
762         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
763         bug 8780: the connection lock is only required while recording
764         the shared connection, so protect only that code
765         section. Don't require connection_lookup_shared to return a
766         locked connection.
767
768 2006-10-26  Thiago Macieira  <thiago@kde.org>
769
770         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
771         check if get_machine_uuid() returns NULL before proceeding any
772         further: we can't init the X atoms or create a session file
773         name if there is no machine ID.
774         This solves a crash reported by some users if
775         --exit-with-session was used without --autolaunch=<machine-id>
776
777 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
778
779         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
780         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
781
782         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
783         before we run dbus-launch
784
785         * configure.in: define TEST_BUS_BINARY to be the full path to 
786         dbus-daemon in the build root 
787
788 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
789
790         * dbus/Makefile.am:
791         * tools/Makefile.am:
792         * toos/dbus-uuidgen.1:
793                 Move the machine-id file to /var/lib/dbus 
794
795 2006-10-24  David Zeuthen  <davidz@redhat.com>
796
797         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
798         _dbus_assert (thread_init_generation != _dbus_current_generation)
799         not _dbus_assert (thread_init_generation == _dbus_current_generation)
800
801 2006-10-24  Thiago Macieira  <thiago@kde.org>
802
803         * dbus/dbus-sysdeps.h:
804         * dbus/dbus-sysdeps-unix.c: Add function
805         _dbus_make_file_world_readable that chmods a file to 0644.
806
807         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
808         Avoid writing to the static "argv" array, thereby avoiding a
809         COW on the child process.
810
811         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
812         call _dbus_make_file_world_readable on the created file.
813
814 2006-10-23  David Zeuthen  <davidz@redhat.com>
815
816         * dbus/dbus-memory.c: Use atomic variable to protect
817         n_blocks_outstanding otherwise OOM will be reported using SMP on
818         some arches
819         
820         * bus/dispatch.c: Add missing end of line characters
821
822         * bus/desktop-file.c (parse_section_start, parse_key_value) 
823         (bus_desktop_file_load): Propertly handle OOM
824
825         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
826         thread_init_generation equals _dbus_current_generation, not 0
827
828 2006-10-22  Havoc Pennington  <hp@redhat.com>
829
830         * dbus/dbus-connection-internal.h: move prototype of
831         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
832         it isn't in a public header and doesn't end up in the DBusBus
833         group in Doxygen
834
835 2006-10-21  Havoc Pennington  <hp@redhat.com>
836
837         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
838         the tarball if packagers want to run it
839
840         * cleanup-man-pages.sh: Add a script which munges all the internal
841         API man pages out of the Doxygen output. This reduces the size of
842         the installed man pages from 7 to 2 megs, and avoids
843         namespace-polluting pages. Right now (like Doxygen) this script
844         isn't in the build, it's something packagers can do manually.
845
846 2006-10-21  Havoc Pennington  <hp@redhat.com>
847
848         * dbus/dbus-connection.h: don't include the watch/timeout
849         functions in connection section
850
851 2006-10-21  Havoc Pennington  <hp@redhat.com>
852
853         * Documentation! Whee! Doxygen now 100% silent. If you make it
854         angry again, you will be punished.
855         
856 2006-10-21  Havoc Pennington  <hp@redhat.com>
857
858         * More documentation - all public API now documented according to
859         Doxygen
860
861 2006-10-21  Havoc Pennington  <hp@redhat.com>
862
863         * Document a bunch of undocumented stuff
864         
865 2006-10-21  Havoc Pennington  <hp@redhat.com>
866
867         * Clean up Doxygen group markers for public API so Doxygen finds
868         everything (not comprehensively fixed for private API).
869         Means all remaining Doxygen warnings are just about missing docs
870         and thus pretty simple to resolve.
871         
872 2006-10-21  Havoc Pennington  <hp@redhat.com>
873         
874         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
875
876         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
877         as DBUS_GNUC_DEPRECATED
878
879 2006-10-21  Havoc Pennington  <hp@redhat.com>
880
881         * Move all private API into the private Doxygen group sections of
882         the files, so they don't show up in the public API docs
883         
884 2006-10-21  Havoc Pennington  <hp@redhat.com>
885
886         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
887         dbus_message_iter_get_array_len().
888
889         * throughout: documentation improvements.
890
891 2006-10-20  Havoc Pennington  <hp@redhat.com>
892
893         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
894         matter, and the message-loader-breaker thing since nobody is going
895         to do it.  Add an item to 1.0 about supporting recursive locks
896         in dbus_threads_init_default() though, since it should be easy.
897
898         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
899         Fix this in the !dispatch case to avoid busy-looping after
900         disconnection
901
902         * More misc docs improvements
903
904 2006-10-19  Havoc Pennington  <hp@redhat.com>
905
906         * more Doxygen-related fixes (lots of moving things from the
907         public to internal section in dbus-connection.c)
908
909 2006-10-19  Havoc Pennington  <hp@redhat.com>
910
911         * Fix a pile of Doxygen warnings and missing docs
912
913 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
914
915         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
916         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
917         instead of a void *.  kqueue uses this to get the context's loop
918         while the other modules ignore the parameter.  This allows us to
919         avoid platform conditionals
920
921         * bus/bus.c (process_config_postinit): Pass in the context to the 
922         watch
923
924 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
925
926         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
927         when starting the system bus
928
929 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
930
931         * configure.in: More fixups for cross compile (Patch from 
932         Marco Pracucci <development at pracucci dot com>)
933
934 2006-10-17  Havoc Pennington  <hp@redhat.com>
935
936         * tools/dbus-send.c (main): don't close shared connection, fix
937         from Timo Hoenig
938
939 2006-10-17  Havoc Pennington  <hp@redhat.com>
940
941         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
942
943         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
944         since realistically it doesn't look like we'll be changing it
945         anymore.
946
947 2006-10-17  Havoc Pennington  <hp@redhat.com>
948
949         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
950         be used for return_if_fail type warnings; prefixes the pid, and
951         fatal by default.
952
953 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
954
955         * configure.in: Released 1.0 RC 2(0.94)
956         Add check for -fPIC and enable it if available
957
958 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
959
960         * doc/TODO: Remove the check TODO item
961
962 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
963
964         * dbus-transport-socket.c (exchange_credentials):
965         Print out more detailed errors if reading or sending
966         credentials fail (Patch from Julio M. Merino Vidal 
967         <jmmv at NetBSD dot org>)
968
969 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
970
971         * configure.in: when checking for posix getpwnam_r assume true
972         for cross compiles
973
974 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
975
976         * configure.in: Check for gethostbyname first before we check for it
977         in libnsl.  On gnu systems it is implemeneted 
978
979 2006-10-13  Havoc Pennington  <hp@redhat.com>
980
981         * dbus/dbus-connection.c
982         (dbus_connection_send_with_reply_and_block): fix to handle closed
983         connections, from Tambet Ingo bug #8631
984
985 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
986
987         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
988
989 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
990
991         * test/name-test/Makefile.am: don't link against both libdbus and
992         libdbus-convenience
993
994 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
995
996         * configure.in: check for dirfd even if it is a macro
997         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
998
999 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
1000
1001         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
1002         avoid using dirfd on systems that don't have dirfd 
1003         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
1004
1005 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
1006
1007         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
1008         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
1009
1010         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
1011         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
1012         macro because _dbus_abort calls it
1013
1014         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
1015         works
1016
1017 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
1018
1019         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
1020         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
1021
1022 2006-10-02  Thiago Macieira  <thiago@kde.org>
1023
1024         * tools/dbus-launch.c (main): make it complain and abort
1025         execution in case an unknown option is given. Also, process
1026         the '--' argument as the end of arguments.
1027
1028 2006-10-01  Havoc Pennington  <hp@redhat.com>
1029
1030         * tools/dbus-launch.c (print_variables): if no syntax is given,
1031         don't print something that's sort-of-half-sh-syntax, just print
1032         a plain key-value pairs thing.
1033
1034         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
1035         the local machine representation (but still have the hostname in
1036         the display). Remove the hostname from the display if it is
1037         localhost. Change session files to be named
1038         ~/.dbus/session-bus/machine-display. Change X atoms to be
1039         underscore-prefixed so nobody whines about ICCCM compliance.
1040         Otherwise name them the same as the env variables.
1041         Change session file format to include key-value pairs and an
1042         explanatory comment. Keys are the same as the env variables.
1043         (set_address_in_x11): X property format can't depend on
1044         sizeof(pid_t) on a particular machine, fix to always be 32 bits
1045
1046         * tools/dbus-launch.c: make --autolaunch take a machine id
1047         argument. If --autolaunch is used with a program to run, complain
1048         for now (but add a FIXME). Also, don't look for existing bus if 
1049         there's a program to run (but add a FIXME).
1050
1051         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
1052         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
1053         just to get this, and avoids duplicating uuid-reading code).
1054
1055         * tools/dbus-launch.1: clarify various things
1056         
1057 2006-10-01  Havoc Pennington  <hp@redhat.com>
1058
1059         * test/test-service.c (path_message_func): remove broken extra
1060         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
1061
1062         * test/test-shell-service.c (path_message_func): same fix
1063         
1064         * dbus/dbus-connection.c
1065         (_dbus_connection_get_dispatch_status_unlocked): break up the
1066         function a little for clarity and fix the notification of
1067         dbus-bus.c to not require dispatch to be complete
1068
1069         * dbus/dbus-connection.c (dbus_connection_unref): improve the
1070         warning when you try to finalize an open connection.
1071         
1072 2006-10-01  Havoc Pennington  <hp@redhat.com>
1073
1074         * dbus/dbus-bus.c
1075         (internal_bus_get): only weak ref the connection; this means 
1076         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
1077         called safely in any context
1078         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
1079         unref
1080
1081         * dbus/dbus-connection.c
1082         (_dbus_connection_get_dispatch_status_unlocked): move
1083         _dbus_bus_notify_shared_connection_disconnected_unlocked here
1084         when queuing Disconnected instead of when the Disconnected message
1085         arrives, so dbus_bus_get() won't return closed connections.
1086         
1087 2006-10-01  Havoc Pennington  <hp@redhat.com>
1088
1089         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
1090         Add a hack to make DBusNewConnectionFunction work right.
1091
1092         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
1093         the hack here. Also, fix the todo about refcount leak.
1094         
1095         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1096         and use the hack here
1097         
1098         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
1099         "shareable" flag; this was completely broken, since it meant 
1100         dbus_connection_open() returned a connection of unknown
1101         shared-ness. Now, we always hold a ref on anything opened 
1102         as shareable.
1103
1104         Move the call to notify dbus-bus.c into
1105         connection_forget_shared_unlocked, so libdbus consistently forgets
1106         all its knowledge of a connection at once. This exposed numerous
1107         places where things were totally broken if we dropped a ref inside
1108         get_dispatch_status_unlocked where
1109         connection_forget_shared_unlocked was previously, so move
1110         connection_forget_shared_unlocked into
1111         _dbus_connection_update_dispatch_status_and_unlock. Also move the
1112         exit_on_disconnect here.
1113
1114         (shared_connections_shutdown): this assumed weak refs to the
1115         shared connections; since we have strong refs now, the assertion 
1116         was failing and stuff was left in the hash. Fix it to close
1117         still-open shared connections.
1118         
1119         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
1120         debug pipe connections
1121         
1122         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
1123         dbus-bus.c if the closed connection is in fact shared
1124         (_dbus_connection_close_possibly_shared): rename from 
1125         _dbus_connection_close_internal
1126         (dbus_connection_close, dbus_connection_open,
1127         dbus_connection_open_private): Improve docs to explain the deal
1128         with when you should close or unref or both
1129
1130         * dbus/dbus-bus.c
1131         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
1132         from _dbus_bus_check_connection_and_unref_unlocked and modify to
1133         loop over all connections
1134
1135         * test/test-utils.c (test_connection_shutdown): don't try to close
1136         shared connections.
1137
1138         * test/name-test/test-threads-init.c (main): fix warnings in here
1139
1140         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
1141         env variable to cause blocking waiting for gdb; drop
1142         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
1143         unconditionally.
1144
1145         * configure.in: add -export-dynamic to libtool flags if assertions enabled
1146         so _dbus_print_backtrace works.
1147
1148         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
1149         instead of _dbus_verbose to print the backtrace, and diagnose lack 
1150         of -rdynamic/-export-dynamic
1151         
1152 2006-09-30  Havoc Pennington  <hp@redhat.com>
1153
1154         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
1155         (internal_bus_get): fix screwy code formatting. whoever committed
1156         that was not paying attention!
1157
1158 2006-09-30  Havoc Pennington  <hp@redhat.com>
1159
1160         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
1161         reflect addition of interfaces.
1162
1163         * doc/dbus-specification.xml: describe a new
1164         org.freedesktop.DBus.Peer.GetMachineId method
1165
1166         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
1167         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
1168         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
1169         at end of skip_white
1170         (_dbus_string_chop_white): new function
1171
1172         * bus/connection.c (bus_connections_setup_connection): call
1173         dbus_connection_set_route_peer_messages.
1174
1175         * dbus/dbus-connection.c
1176         (_dbus_connection_peer_filter_unlocked_no_update): modify to
1177         support a GetMachineId method.
1178
1179         Also, support a new flag to let the bus pass peer methods through
1180         to apps on the bus, which can be set with
1181         dbus_connection_set_route_peer_messages.
1182
1183         Finally, handle and return an error for anything unknown on the
1184         Peer interface, which will allow us to extend the Peer interface
1185         in the future without fear that we're now intercepting something
1186         apps were wanting to see.
1187         
1188         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
1189         dbus/dbus-uuidgen.c
1190
1191         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
1192         binary here, since most of the code is already in libdbus
1193
1194         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
1195         uuid from the system config file
1196
1197         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
1198         (_dbus_read_uuid_file_without_creating) 
1199         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
1200         uuid-related functions, partly factored out from dbus-server.c
1201
1202         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
1203         DBUS_ERROR_FILE_EXISTS instead of EEXIST
1204
1205         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
1206
1207         * tools/dbus-cleanup-sockets.1: explain what the point of this
1208         thing is a bit more
1209
1210         * autogen.sh (run_configure): add --config-cache to default
1211         configure args
1212
1213         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
1214         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
1215
1216         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
1217         don't try to save address, fixes crash in make check
1218         
1219 2006-09-30  Thiago Macieira  <thiago@kde.org>
1220
1221         * configure.in: add DBUS_BINDIR as a #define to C source code.
1222
1223         * tools/dbus-launch.c
1224         * tools/dbus-launch.h
1225         * tools/dbus-launch-x11.c:
1226         * tools/dbus-launch.1: Add the --autolaunch option to
1227         dbus-launch, which makes it scan for an existing session
1228         started with --autolaunch. With that option, it also creates
1229         an X11 window and saves the bus address and PID to it.
1230
1231         * dbus/dbus-sysdeps.h:
1232         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
1233         a function that runs "dbus-launch --autolaunch" to retrieve
1234         the running D-Bus session address (or start one if none was running)
1235
1236         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
1237         address protocol, which tries to get the running session from
1238         dbus-launch.
1239
1240         * dbus/dbus-bus.c:
1241         * dbus/dbus-internals.h: Make "autolaunch:" be the default
1242         D-Bus session bus address.
1243
1244         * dbus/dbus-connection.c: Fix horrible typo in error message.
1245
1246 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
1247
1248         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
1249
1250 2006-09-17  Havoc Pennington  <hp@redhat.com>
1251
1252         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1253         fix so that if unix_user_function is set on windows, we still
1254         do the default check that the auth identity matches the bus identity
1255
1256 2006-09-16  Havoc Pennington  <hp@redhat.com>
1257
1258         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
1259         to _dbus_transport_open_platform_specific,
1260         _dbus_transport_open_socket,
1261         and _dbus_transport_open_debug_pipe
1262
1263         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
1264
1265 2006-09-16  Havoc Pennington  <hp@redhat.com>
1266
1267         Attempt auditing public API to remove all cases where a Unix
1268         function returns weird emulated goo to Windows. This probably 
1269         breaks the bus daemon on Windows, to fix it again we may 
1270         need to stop processing unix-specific config options on Windows,
1271         and may need to add Windows-specific public API or config options.
1272         
1273         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
1274         to reflect added interfaces; should not break soname.
1275         
1276         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
1277         not invoke unix user function on Windows. Kind of a hacky fix, but 
1278         we don't want a "unix uid" leaking out on Windows.
1279
1280         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
1281         to get the socket fd on Windows or UNIX
1282         (dbus_connection_get_unix_fd): make this always fail on Windows
1283
1284 2006-09-16  Havoc Pennington  <hp@redhat.com>
1285
1286         * dbus/dbus-server.c (dbus_server_listen): change how this works
1287         to be able to delegate to a set of handlers that can succeed,
1288         fail, or choose not to handle. Allows us to have 
1289         dbus_server_listen_platform_specific.
1290
1291         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
1292         factor out the tcp socket stuff to be used on windows, leaving
1293         unix domain socket only in dbus-socket-unix.c
1294
1295         * dbus/dbus-transport-socket.c
1296         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
1297         stuff to be used on windows, leaving unix domain socket only 
1298         in dbus-transport-unix.c
1299
1300         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
1301         temporary hack to be sure this fails on windows
1302         (dbus_connection_get_unix_process_id): ditto
1303
1304 2006-09-16  Havoc Pennington  <hp@redhat.com>
1305
1306         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1307         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1308         _dbus_open_socket so the domain/type/protocol from system headers
1309         are not required. This is kind of pointless though unless we move
1310         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1311         sysdeps-unix.c, which would mean adding a wrapper around
1312         bind/listen/etc.
1313         Also, add DBusError to the socket-opening functions so they 
1314         don't require use of errno.
1315
1316 2006-09-16  Havoc Pennington  <hp@redhat.com>
1317
1318         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1319         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1320
1321         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1322         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1323         functions specifically for sockets only, and move generic 
1324         read/write/open/close into unix-specific code.
1325
1326 2006-09-14  Havoc Pennington  <hp@redhat.com>
1327
1328         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1329         complaint about accessing revents when poll returns 0, from Julian Seward.
1330
1331 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1332
1333         * Released 1.0 RC 1 (0.93) 
1334
1335 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1336
1337         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1338         use _dbus_close instead of close
1339
1340 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1341
1342         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1343         credentials.  Fixes "external" authentication under e.g. NetBSD
1344         which does not support any other socket credentials mechanism.
1345         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1346
1347 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1348
1349         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1350         dbus_threads_init and be used by the dbus mutex functions to
1351         avoid deadlocks.
1352
1353         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1354
1355 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1356
1357         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1358         use threadsafe readdir_r instead of readdir
1359
1360 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1361
1362         * dbus-threads.c (dbus_threads_init_default): New method for
1363         initializing the internal thread implementation (Patch from
1364         Alexander Larsson <alexl at redhat dot com>)
1365
1366 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1367
1368         * remove a bunch of todo items from the 1.0 list
1369
1370 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1371
1372         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1373         key not found
1374
1375 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1376
1377         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1378         complex debugging code
1379
1380         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1381         between the test suite ifdefs
1382         (_dbus_verbose_bytes): return if verbosity is not enabled 
1383
1384 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1385
1386         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1387         remove DBusMark
1388
1389 2006-09-10  Havoc Pennington  <hp@redhat.com>
1390
1391        patch mostly by Peter Kümmel, bug #8211
1392         
1393         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1394         unix-specific stuff in dbus-sysdeps.c
1395
1396         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1397         and move unix-specific stuff to dbus-sysdeps-unix.c
1398
1399         * configure.in: check HAVE_ERRNO_H
1400         
1401 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1402
1403         * bus/test-main.c (main): Initialize threading during tests
1404
1405         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1406         Unlock connection on error
1407         (generate_local_error_message): static method for generating
1408         an error message when we don't have a message to reply to
1409         (_dbus_connection_block_pending_call): Send a disconnect error
1410         instead of just a timeout (NULL) when the bus gets disconnected
1411         while blocking for a reply.
1412         
1413 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1414
1415         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1416         filters (Patch from Kimmo Hämäläinen 
1417         <kimmo dot hamalainen at nokia dot com>)
1418
1419 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1420
1421         * dbus/dbus-connection-internal.h: Add prototype for 
1422         _dbus_connection_test_get_locks to remove warning
1423
1424 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1425
1426         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1427         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1428         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1429
1430 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1431
1432         * Clean up close calls to use _dbus_close (Patch from 
1433         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1434
1435 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1436
1437         * doc/TODO:
1438         - Remove pending call locking todo item
1439         - dbus_connection_open now holds hard ref.  Remove todo item
1440         - do proper locking on _dbus_bus_check_connection_and_unref
1441           and handle DBUS_BUS_STARTER. Remove todo item
1442         - Warn on closing of a shared connection.  Remove todo item
1443
1444         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1445         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1446         so we don't get the warning when closing shared connections
1447
1448         * test/test-service.c, test/test-shell-service.c: Applications
1449         don't close shared connections themselves so we unref instead of
1450         close
1451
1452         * test/test-utils.c (test_connection_shutdown): Close the connection
1453
1454         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1455         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1456         method on a locked connection.  
1457         Make sure we call _dbus_connection_unref_unlocked instead of 
1458         dbus_connection_unref also.
1459         Handle DBUS_BUS_STARTER correctly
1460
1461         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1462         Mark as shared and hard ref the connection
1463         (connection_forget_shared_unlocked): Remove the hard ref from the 
1464         connection
1465         (_dbus_connection_close_internal_and_unlock):  New internal function
1466         which takes a locked connection and unlocks it after closing it
1467         (_dbus_connection_close_internal): New internal function which acts
1468         like the origonal dbus_connection_close method by grabbing a connection
1469         lock and calling _dbus_connection_close_internal_and_unlock
1470         (dbus_connection_close): Public close method, warns when the app
1471         trys to close a shared connection
1472
1473 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1474
1475         * bus/driver.c:
1476         (bus_driver_generate_introspect_string): New method for populating
1477         a DBusString with the introspect data
1478         (bus_driver_handle_introspect): Move introspect generation code to 
1479         bus_driver_generate_introspect_string
1480
1481         * bus/main.c:
1482         (introspect): New function which prints out the intropect data and
1483         exits
1484         (main): Add a --introspect switch
1485
1486 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1487
1488         * doc/TODO: Removed dtd publishing item.  
1489         It seems the dtd has already been added at
1490         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1491
1492 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1493
1494         * doc/TODO, various source files: Audited todo's and FIXME's and
1495         prepended the ones we should be looking at with 1.0.  Those
1496         prepended with 1.0? need clerification or might not be needed
1497         for 1.0
1498
1499 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1500
1501         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1502         NULL in the public API (Patch from Kimmo Hämäläinen 
1503         <kimmo dot hamalainen at nokia dot com>)
1504
1505 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1506
1507         * configure.in: Fix for OS-X compile time endian issues (patch from
1508         Benjamin Reed <ranger at befunk dot com>)
1509
1510 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1511
1512         * configure.in: Check for no-common compiler flag (OS-X fix from
1513         Benjamin Reed <ranger at befunk dot com>)
1514
1515 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1516
1517         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1518         <fcrozat at mandriva dot com>)
1519
1520 2006-08-29  Havoc Pennington  <hp@redhat.com>
1521
1522         * test/test-service.c (path_message_func): fix lack of return value
1523
1524         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1525         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1526         any more sense than on anything else in this file.
1527         (_dbus_get_tmpdir): add const to return value, and keep the
1528         results of the various getenv around in a static variable.
1529
1530 2006-08-29  Havoc Pennington  <hp@redhat.com>
1531
1532         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1533         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1534
1535 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1536
1537         * test/Makefile.am: change find to use syntax that works with non
1538         gnu versions of find
1539
1540 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1541
1542         * dbus/dbus-transport.c: fix invalid deref when checking if
1543         a vtable method exists (Patch from Christian Ehrlicher 
1544         <ch dot ehrlicher at gmx dot de>)
1545
1546 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1547
1548         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1549         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1550         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1551         <bernard at brenda-arkle dot demon dot co dot uk>)
1552
1553 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1554
1555         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1556         default case
1557
1558 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1559
1560         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1561         it works on any system providing this interface, not only FreeBSD.
1562         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1563
1564 2006-08-20  Havoc Pennington  <hp@redhat.com>
1565
1566         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1567         the docs
1568
1569 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1570
1571         * Released 0.92 
1572
1573 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1574
1575         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1576         to reflect the init late change
1577
1578         * bus/bus.c (bus_context_new): Check user before we fork so we can
1579         print out an error message a user will be able to see
1580
1581 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1582
1583         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1584
1585         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1586         Add two more global locks for use on windows platforms.  These are
1587         unused on non-windows platforms but are not ifdefed out to avoid
1588         potential bugs (i.e. the few bytes lost does not warrent the extra
1589         maintanence and complexity that having seperate sets of locks would
1590         cause)
1591
1592 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1593
1594         * bus/services.c (bus_registry_acquire_service): Return an error
1595         when an application tries to register the org.freedesktop.DBus Bus Name
1596
1597         * bus/services.c (bus_registry_release_service): Return an error
1598         when an application tries to release the org.freedesktop.DBus Bus Name
1599
1600 2006-08-17  Alp Toker  <alp@atoker.com>
1601
1602         * doc/dbus-specification.xml: Fix some minor typos.
1603
1604 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1605
1606         * configure.in: use $with_init_scripts instead of $operating_system
1607         to determine where to store the pid since the init scripts manipulate 
1608         the pid file (patch from Marcelo Ricardo Leitner 
1609         <marcelo dot leitner at terra dot com dot br>.  
1610
1611 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1612
1613         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1614         static DBusList *uninitialized_condvar_list to support new late 
1615         initialization threading model.  In this model threads can be initialized
1616         even after the D-Bus API has been used but still needs to be initialized 
1617         before the second thread has been started.  Mutexes and condvar addresses
1618         are stored in the two static lists and are replaced with actuall locks
1619         when threads are initalized.
1620         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1621         the location into the static list
1622         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1623         from the static list and freeing the mutex
1624         (_dbus_condvar_new_at_location): New method for creating a conditional 
1625         variable and placing the location into the static list
1626         (_dbus_condvar_free_at_location): New method for removing a conditional
1627         variable location from the static list and freeing the conditional variable 
1628         (init_uninitialized_locks): Atomic method which goes through the static 
1629         lists of mutex and condvar location and updates them with actuall locks
1630         (init_global_locks): changed to init_locks
1631         
1632         * dbus/dbus-connection.c:
1633         (_dbus_connection_test_get_locks): New method for tests to check connections
1634         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1635         condvar API
1636         (dbus_connection_allocate_data_slot): Pass in the global lock address
1637         to _dbus_data_slot_allocator_alloc
1638
1639         * dbus/dbus-dataslot.c:
1640         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1641         instead of the mutex itself
1642
1643         * dbus/dbus-message.c:
1644         (dbus_message_allocate_data_slot): Pass in the global lock address
1645         to _dbus_data_slot_allocator_alloc
1646
1647         * dbus/dbus-pending-call.c:
1648         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1649         to _dbus_data_slot_allocator_alloc
1650
1651         * dbus/dbus-server.c:
1652         (_dbus_server_init_base): Use the new at_location mutex API
1653         (dbus_server_allocate_data_slot): Pass in the global lock address
1654         to _dbus_data_slot_allocator_alloc
1655
1656         * test/name-test/test-threads-init.c: New test case for late thread
1657         initialization
1658
1659 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1660
1661         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1662         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1663         causes compile problems when asserts are turned off
1664         Keeping _dbus_warn for printing out the message so even if
1665         asserts are turned off the user gets the messages that something is 
1666         wrong 
1667
1668 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1669
1670         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1671
1672         * bus/services.c (bus_service_list_queued_owners):
1673         Add a pointer cast to fix compiler warning
1674
1675         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1676         return a NULL instead of FALSE since the return type
1677         is not expecting a boolean
1678
1679         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1680         Remove unused variable
1681
1682         * dbus/dbus-marshal-recursive-util.c (node_new):
1683         return a NULL instead of FALSE since the return type
1684         is not expecting a boolean
1685
1686         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1687         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1688         because we are expecting a pointer not a boolean
1689
1690         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1691         add void as the parameter so some compilers
1692         don't complain
1693
1694         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1695           _dbus_transport_new_for_tcp_socket):
1696         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1697         because we are expecting a pointer not a boolean
1698
1699         * test/shell-test.c (test_command_line):
1700         cast the second argument to _dbus_list_append to avoid compiler
1701         warnings
1702
1703         * test/test-names.c (main): remove unused variable
1704
1705         * test/test-service.c (check_hello_from_self_reply):
1706         Initialize echo_message and echo_reply to NULL
1707         
1708         * test/test-shell-service.c (handle_echo):
1709         Remove unused variable and cast the third parameter passed to
1710         dbus_connection_get_object_path_data to avoid compiler warrnings
1711
1712         * test/name-test/test-names.c (clear_message_queue):
1713         Remove unused function
1714
1715         * test/name-test/test-pending-call-dispatch.c:
1716         Fix format string in printf
1717
1718
1719 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1720
1721         * dbus/dbus-bus.c:
1722         * test/name-test/test-names.c:
1723         Remove test method dbus_bus_connection_get_unique_name because 
1724         we already have public method dbus_bus_get_unique_name that 
1725         does the exact same thing
1726
1727 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1728
1729         * dbus/dbus-signature.c:
1730         fix typos in Julio's previous patch which cause make check to fail
1731
1732 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1733
1734         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1735         In any case it was wrong since this is a test checking to see if
1736         address parsing is correct.  There was no need to get the true
1737         tmp directory.  
1738
1739 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1740
1741         * dbus/dbus-macros.h: Revert the addition of stddef.h
1742         as we should not be adding it to library headers 
1743
1744 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1745
1746         * dbus/dbus-signature.c:
1747         Fix the unit tests so that they work if assertions are not enabled.
1748         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1749
1750 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1751
1752         * tools/run-with-tmp-session-bus.sh:
1753         * test/name-test/run-test.sh:
1754         Remove bashisms (patch from Julio M. Merino Vidal
1755         <jmmv at NetBSD dot org>)
1756
1757 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1758
1759         * configure.in: add a version (>= 2.6.0) check for libxml2
1760
1761 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1762
1763         * configure.in: make sure the compiler supports -Wfloat-equal
1764         
1765         * bus/dir-watch-dnotify.c: move functional code after 
1766         variable declerations (C99 fix)  (patches from Jens Granseuer
1767         <jensgr at gmx dot net>
1768
1769 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1770
1771         * dbus/dbus-macros.h:
1772         add #include <stddef.h> so that Sun compilers don't complain about
1773         the defining NULL
1774
1775 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1776
1777         * dbus/dbus-sysdeps.c:
1778         * dbus/dbus-address.c:
1779         * bus/activation.c:
1780         * test/shell-test.c:
1781         don't hardcode tmp directory (patch from Dave Meikle 
1782         <dmk at davemeikle dot co dot uk>)
1783
1784 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1785
1786         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1787         Change an assert to a detailed warning and abort.  
1788         When allocator->lock != mutex it indicates that the user has failed
1789         to initalize threads before using the D-Bus library.  This warning
1790         helps the user identify the issue and fix their app.
1791
1792 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1793
1794         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1795         with cleanups of bugs found from Coverity reports:
1796
1797         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1798         close the file on error to avoid a leak
1799
1800         * bus/expirelist.c (bus_expire_list_test):
1801         Check for NULL on dbus_new0
1802
1803         * bus/activation.c (update_directory):
1804         remove dead code
1805
1806         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1807         Fix some leaks
1808
1809         * bus/bus.c (process_config_every_time):
1810         Fixed a leak
1811
1812         * bus/desktop-file.c (parse_key_value):
1813         Fixed leak
1814
1815         * bus/selinux.c (bus_selinux_id_table_insert):
1816         Fixed leak
1817
1818 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1819
1820         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1821         remove dead code
1822
1823 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1824
1825         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1826         #!/bin/bash
1827
1828 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1829
1830         * Doxyfile.in: fix the INPUT line so we can generate docs 
1831         when sourcedir != builddir (patch from Cygwin Ports maintainer
1832         <yselkowitz at users dot sourceforge dot net>
1833
1834 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1835
1836         * dbus/dbus-sysdeps.h:
1837         * dbus/dbus-sysdeps.c: 
1838         * dbus/dbus-string.c: 
1839         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1840         GLib's function which does the same thing
1841
1842         * configure.in:
1843         * bus/Makefile.am:
1844         * bus/dir-watch-default.c:
1845         * bus/dir-watch-dnotify.c:
1846         * bus/dir-watch-kqueue.c:
1847         Add kqueue directory watching for freebsd and split the directory
1848         watching code into seperate files per method/arch
1849         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1850
1851 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1852
1853         * configure.in:
1854         * tools/Makefile.am:
1855         * tools/dbus-launch.c:
1856         * bus/Makefile.am:
1857         allow --with-dbus-daemondir switch to be used to make the
1858         daemon install to a seperate bindir like /usr/libexec
1859         (patch from Brian Cameron <brian dot cameron at sun dot com)
1860
1861 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1862
1863         * bus/Makefile.am (install-data-hook): removed the slash after 
1864         $(DESTDIR) so we don't get the double slash which does not work
1865         in windows (patch from Andras Porjesz 
1866         <andras dot porjesz at siemens dot com>)
1867
1868 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1869
1870         * dbus/dbus-sysdeps.h:
1871         * dbus/dbus-sysdeps.c: 
1872           add _dbus_printf_length (patch from Peter Kümmel 
1873           <syntheticpp at gmx dot net>)
1874
1875 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1876
1877         * dbus/dbus-internals.c: unistd.h is not used 
1878         (_dbus_verbose_real): only enable verbose printing 
1879         if DBUS_VERBOSE environment var is set to '1'
1880         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1881
1882 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1883
1884         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1885         so we still compile on older gcc (patch from Frederic Peters 
1886         <fpeters at 0d dot be>
1887
1888 2006-08-04  Havoc Pennington  <hp@redhat.com>
1889
1890         * configure.in: add -Wdeclaration-after-statement
1891
1892         * dbus/dbus-connection.c: change all the pending call stuff to
1893         reflect the fact that pending call operations use the connection
1894         lock
1895
1896         * dbus/dbus-pending-call.c: add locking here
1897
1898         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1899         field const consistent with how message field is done
1900
1901 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1902
1903         * s/D-BUS/D-Bus/g
1904
1905 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1906
1907         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1908         <in7y118 at public.uni-hamburg dot de> - fix invalid
1909         read/write reported by valgrind
1910
1911 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1912
1913         * Released 0.91
1914
1915 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1916
1917         * dbus/dbus-connection.c:
1918         (_dbus_connection_attach_pending_call_unlocked):
1919         (connection_timeout_and_complete_all_pending_calls_unlocked):
1920         Make sure we set timeout_added on pending calls to FALSE when
1921         we remove the timeout from the connection
1922
1923 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1924
1925         * Removed some extra bindings stuff lingering around (thanks timo)
1926         * dbus-pendingcall.c (_dbus_pending_call_new): 
1927         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1928         when we tried to take a lock on an already locked connection
1929
1930 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1931
1932         * Released 0.90
1933
1934 2006-07-17  Havoc Pennington  <hp@redhat.com>
1935
1936         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1937         ints, reported by Owen Taylor
1938
1939 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1940
1941         * doc/TODO:
1942         * dbus/dbus-bus.c:
1943         * dbus-errors.c:
1944         * dbus/dbus-marshal-validate.c:
1945           Removed TODO items which were fixed or are no longer relevent
1946
1947 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1948
1949         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1950         Remove stray files from the stripped bindings
1951
1952 2006-07-16  Havoc Pennington  <hp@redhat.com>
1953
1954         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1955         Improve the error message on reply timeout
1956
1957 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1958
1959         * Remove all bindings
1960
1961 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1962
1963         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1964         and set pending_reply out arg to NULL is connection is disconnected
1965         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1966         static method for cleaning up pending calls on disconnect
1967         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1968         calls queued timeouts on disconnect 
1969
1970          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1971         Remove 
1972
1973 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1974
1975         * bus/activation.[ch] (bus_activation_list_services): new function to 
1976         get the list of services that can be activated
1977
1978         * bus/dispatch.c: test coverage for the new bus method
1979         ListActivatableNames
1980
1981         * bus/driver.c: new bus method ListActivatableNames to get the list of
1982         services that can be activated
1983
1984         * doc/dbus-specification.xml: ListActivatableNames method documentation
1985
1986 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1987         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1988         source files
1989
1990 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1991         * dbus/dbus-message-factory.c:
1992         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1993
1994 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1995         * dbus/dbus-connection-internal.h:
1996         * dbus/dbus-connection.c:
1997         * file dbus/dbus-pending-call.c:
1998         * dbus/dbus-pending-call.h:
1999         Make DBusPendingCall an opaque type even to D-Bus internals
2000
2001 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
2002
2003         * dbus/dbus-connection.h: remove connection_disconnect and replace with
2004         connection_close
2005
2006         * dbus/dbus-connection.c: include dbus-bus.h
2007         (_dbus_connection_read_write_dispatch): make static
2008
2009 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
2010
2011         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
2012         function
2013         (dbus_connection_dispatch): On disconnect unref any shared connections
2014
2015         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
2016         for cleaning up shared connections on disconnect
2017         (internal_bus_get): get a hard refrence to shared connections when
2018         they are created
2019         
2020         * doc/TODO: Remove items which are no longer relevent or have been fixed
2021         Split 1.0 todo items with a 0.90 freeze todo list
2022  
2023 2006-06-14  Ross Burton  <ross@openedhand.com>
2024
2025         * glib/dbus-gobject.c:
2026         Free a leaking GArray (surely not!) in dbus_g_method_return.
2027
2028 2006-06-14  Ross Burton  <ross@openedhand.com>
2029
2030         * tools/Makefile.am:
2031         * tools/dbus-monitor.c:
2032         Don't use the GLib bindings in dbus-monitor (patch from Ralf
2033         Habacker).
2034         
2035 2006-06-14  Ross Burton  <ross@openedhand.com>
2036
2037         * tools/dbus-print-message.c:
2038         Also print the object path when outputting signals or method calls.
2039
2040 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
2041
2042         * qt/src/Makefile.am: install the qdbus.h header.
2043         This allows people to actually use the installed code.
2044
2045 2006-06-12  Ross Burton  <ross@openedhand.com>
2046
2047         * glib/dbus-gproxy.c:
2048         Don't leak a GArray when firing signals (thank Rob Taylor for review).
2049
2050 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2051
2052         * Released 0.62
2053
2054 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2055
2056         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
2057         break pedantic builds. Closes bug 6043 (patch approved by
2058         Havoc back in February).
2059
2060 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2061
2062         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
2063         that took a QDBusMessage parameter.
2064         * qt/src/qdbusbus.h: Add a default flag for RequestName.
2065         * qt/tools/dbus.cpp: Don't use automatic call because we might
2066         be calling an async method: request a reply.
2067
2068 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
2069
2070         * test/qt/*: Update the testcases, including testing the new
2071         functionality of sending null QByteArray and QString over the
2072         bus. Add new headertest test and restore the old
2073         qdbusxmlparser test.
2074
2075 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
2076
2077         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
2078         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
2079
2080         * qt/examples/Makefile.am:
2081         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
2082         form.
2083
2084         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
2085         QByteArray() (nulls) over the bus.
2086         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
2087         the one that has the signature suffix stripped.
2088         * qt/src/qdbusreply.h: Make some methods const.
2089
2090 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
2091
2092         Patch from Timo Hoenig <thoenig@suse.de>.
2093
2094         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
2095         required during build to EXTRA_DIST.
2096         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
2097         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
2098         * configure.in: Fix "make dist", take care that the Makefile for
2099         qt/dbus is being generated.
2100
2101 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2102
2103         * bus/bus.c: Fix eavesdropping on method calls
2104
2105 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2106
2107         * configure.in:
2108         * dbus/dbus-userdb-util.c:
2109         Add Solaris console owner patch from Artem Kachitchkine
2110
2111 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
2112
2113         * qt/Makfile.am:
2114         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
2115         reorganisation. Thanks to Timo Hoenig for pointing this out.
2116
2117 2006-06-06  Robert McQueen  <robot101@debian.org>
2118
2119         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
2120           call to dbus_g_type_get_struct.
2121
2122 2006-06-06  Robert McQueen  <robot101@debian.org>
2123
2124         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
2125           pointers were put into a GPtrArray-based specialised collection, and
2126           then freed along with the array. GValues which you add into
2127           collections or maps which have the NOCOPY flag set are assumed to not
2128           belong to the caller, so rather than the existing pointer-stealing
2129           semantics, they are copied instead. Given that the main consumers of
2130           this abstraction are the bindings themselves, I don't think this is
2131           too bad, but others should watch their choice of take vs set_static.
2132
2133 2006-06-06  Robert McQueen  <robot101@debian.org>
2134
2135         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
2136           of g_slist_prepend not being used. Fixed copying of slist-based
2137           specialised collections, then wrote a test case and found that it was
2138           all broken. Went on to fix iterating and appending too. Good thing
2139           nobody uses this code yet.
2140
2141 2006-06-06  Robert McQueen  <robot101@debian.org>
2142
2143         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
2144           the iterators use gvalue_take_ptrarray_value (the GValues themselves
2145           are discarded without unsetting, so it makes no difference whether
2146           we take or set_static). Remove cases for G_TYPE_POINTER because
2147           there really is nothing useful we can do with them in our
2148           specialised types - we *need* boxed copy/free functions at the very
2149           least.
2150
2151 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
2152
2153         * qt/dbus: Add directory. I had forgotten to add this
2154         yesterday after the move...
2155
2156         * qt/examples/Makefile.am:
2157         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
2158
2159         * qt/tools/Makefile.am:
2160         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
2161         Added feature to get and set properties.
2162         Added validation of service, object path and interface names.
2163
2164         * qt/tools/dbusidl2cpp.cpp: Two new features:
2165         1) Allow specifying both the header and the source file names,
2166         by separating them with a colon.
2167         2) Don't write an interface output if the -p switch wasn't
2168         given, but the -a was.
2169
2170         * qt/src/*: Fix usage of Iterators and ConstIterators.
2171         Fix shadowing of variables by other variables (-Wshadow).
2172         Fix keyword-cleanliness in headers.
2173         Fix ASCII-cast (QLatin1String, QLatin1Char).
2174         Fix validation of member names.
2175         Add extra checking of introspection data during XML parsing.
2176         Various bug fixes.
2177
2178 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2179
2180         * dbus/Makefile.am:
2181         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
2182         qt/dbus/qdbus.h now.
2183
2184 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2185
2186         * configure.in: Make --disable-qt actually do
2187           something. Patch inspired by Zack Rusin.
2188
2189 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2190
2191         * qt/: Update to Subversion r548032.
2192         This includes a big reorganisation of the files inside the
2193         subdir.
2194
2195 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
2196
2197         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
2198         clear:  
2199         "Failed to connect to socket <host>:<port> <error>" instead of
2200         "Failed to connect to socket <host>: <error>:<port>"
2201
2202         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
2203         for a tcp transport. 
2204
2205 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2206
2207         * qt/*: Update the QtDBus bindings up to revision 546310 in
2208         Subversion.
2209         This adds the dbuscpp2xml tool, that parses a C++ header and
2210         outputs a D-BUS Introspection XML.
2211
2212 2006-05-21  Havoc Pennington  <hp@redhat.com>
2213
2214         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
2215         is not NULL when it shouldn't be. Also a couple of possible fixes
2216         for #4637 though I don't understand why the bug happens, to be
2217         honest... also the object constructor has an assert name != NULL
2218         and the name is only currently NULL for peer-to-peer proxies that 
2219         I don't think anyone uses? So it should be asserting.
2220         Anyway, for now at least see if we get an earlier assertion failure.
2221
2222         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
2223         apparently broken code to be sure the tests fail and someone 
2224         will fix them...
2225
2226 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
2227
2228         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
2229         and arrays when they had a single element: has_next returns
2230         false, even before you read the element. So, instead, check
2231         the array length.
2232
2233 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2234
2235         * qt/qdbusmessage.cpp:
2236         * qt/qdbustypehelper_p.h:
2237         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
2238         the list is a const-reference
2239
2240 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
2241
2242         * Adding old doc patch that never got applied
2243         
2244         * dbus/bus.c (dbus_bus_add_match): Add documentation
2245
2246         * doc/dbus-specification.xml: Add documentation for the match rules
2247           and the AddMatch and RemoveMatch methods
2248
2249 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
2250
2251         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2252         call (r535506)
2253
2254         * qt/dbusidl2cpp.cpp:
2255         * qt/qdbusabstractadaptor.cpp:
2256         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
2257         sibling of the QDBusAbstractAdaptor objects instead of the
2258         parent. (r535848)
2259
2260         * qt/dbusidl2cpp.cpp:
2261         * qt/qdbusabstractinterface.cpp:
2262         * qt/qdbusabstractinterface.h:
2263         * qt/qdbusabstractinterface_p.h:
2264         * qt/qdbusinterface.cpp: Make properties in interfaces
2265         actually work. The code that was generated would not compile,
2266         due to moc calls to functions that did not exist. They now
2267         shall. (r536571)
2268
2269 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
2270
2271         * Makefile.am:
2272         * configure.in:
2273         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
2274         Thanks to Brad Hards for providing the patch
2275
2276 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2277
2278         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2279         call. (r535506)
2280
2281 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2282
2283         * qt/examples/dbus.cpp: Enhance error messages and use
2284         QDBusInterfacePtr.
2285
2286 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2287
2288         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
2289         and disable the copy operators. (r533772, r534746)
2290
2291         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
2292
2293         * qt/qdbusabstractinterface.cpp:
2294         * qt/qdbusabstractinterface.h: Change the default call mode to
2295         not use the event loop. Add convenience call() methods that
2296         take a CallMode parameter. (r534042)
2297
2298         * qt/qdbusconnection.h: Change the default call mode to not
2299         use the event loop. (r534042)
2300
2301         * qt/qdbusinterface.cpp:
2302         * qt/qdbusinterface.h: Add a method to tell us if the
2303         interface is valid (since we don't return a null pointer
2304         anymore) (r534099)
2305
2306         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2307         (r534101)
2308
2309         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2310         function in two so taht we get the chance to introspect
2311         without having a QDBusMessage (r534102)
2312
2313         * qt/qdbusbus.h:
2314         * qt/qdbusconnection.cpp:
2315         * qt/qdbusconnection_p.h:
2316         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2317         avoid a round-trip to the server when attempting to introspect
2318         one of our own objects. Also make sure the filter functions
2319         match the empty interface as well. (r534108)
2320         Don't keep the connection names. Instead, trust the unique
2321         connection name (r534111)
2322         Remove event loop usage (r534112)
2323
2324 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2325
2326         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2327         Brad Hards.
2328
2329 2006-04-28  Robert McQueen  <robot101@debian.org>
2330
2331         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2332         any order, making it easier for people who inherit from this
2333         object.
2334
2335 2006-04-28  Robert McQueen  <robot101@debian.org>
2336
2337         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2338         of memory from within pointer arrays and lists. Fixes bug #6300.
2339
2340 2006-04-28  Robert McQueen  <robot101@debian.org>
2341
2342         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2343         generating struct signatures. Fixes bug #6083.
2344
2345 2006-04-28  Robert McQueen  <robot101@debian.org>
2346
2347         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2348         to qdbusconnection_p.moc.
2349
2350 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2351
2352         * README, INSTALL: Doc fixes
2353         Patch from Brad Hards <bradh at frogmouth.net>
2354
2355 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2356
2357         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2358         the dynamic meta object. No need to guess which interface to
2359         call.
2360
2361 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2362
2363         * qt/qdbusconnection_p.h:
2364         * qt/qdbusmetaobject.cpp:
2365         * qt/qdbusmetaobject_p.h:
2366         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2367         for the dynamic meta object. No need to guess which
2368         interface to call.
2369         * qt/qdbusabstractinterface_p.h:
2370         * qt/qdbusconnection.cpp:
2371         * qt/qdbusintegrator.cpp:
2372         * qt/qdbusinterface.cpp:
2373         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2374         Add a QDBusRef that looks and behaves like DCOPRef.
2375
2376 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2377
2378         * dbus/dbus-connection.c: Interfaces are optional in method
2379         calls, so don't give up if the interface parameter is NULL.
2380         Patch reviewed by Havoc Pennington.
2381
2382 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2383
2384         * qt/qdbusreply.h: Add default constructor and operator=
2385           (r532625)
2386         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2387           in public headers (r532952)
2388         * qt/qdbusabstractinterface.cpp:
2389         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2390           make it the default (r532951)
2391
2392 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2393
2394         * dbus/dbus-connection.c: Fix asserts
2395         Patch from Tim Moloney <t.moloney at verizon.net>
2396
2397 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2398
2399         * mono/Connection.cs, mono/Message.cs: Check Target type
2400         Patch from Aaron Bockover (abockover at novell.com)
2401
2402 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2403
2404         * INSTALL: fine-tune the requirements for the Qt4 binding.
2405
2406 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2407
2408         * tools/dbus-print-message.c: Added support for printing of all 
2409           remaining data types. Fixed logic for indentation of compound
2410           data types.
2411         
2412 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2413
2414         * INSTALL: fill out content of file providing DBus specific
2415           build installations, followed by generic Auto* INSTALL file
2416           content
2417         
2418 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2419
2420         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2421           Patch by Stefan Eilers. (r529537)
2422
2423 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2424
2425         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2426           contents (r528208)
2427
2428 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2429
2430         * qt/Makefile.am: fix the dependency for
2431           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2432           not in qdbusconnection.cpp.
2433           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2434           spotting this.
2435
2436 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2437
2438         * qt/examples/listnames.cpp:
2439         * qt/examples/Makefile.am: Three ways to list the names on the
2440           bus.
2441
2442 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2443
2444         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2445           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2446
2447 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2448
2449         Merge from Subversion:
2450         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2451           something that exists (r526315)
2452         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2453           slots/signals (r526316)
2454         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2455           also return an unknown-method error if the parameters don't
2456           match for org.freedesktop.DBus.Properties. (r526842)
2457         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2458         * qt/qdbusintegrator.cpp: Restore the proper order of
2459           delivery: don't make method returns be delivered on priority
2460           (r528150)
2461
2462 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2463
2464         * configure.in qt/Makefile.am: add qt/examples
2465         * qt/examples: Add QtDBus example programs:
2466           - hello: Hello, World
2467           - ping: Simple method-calling program
2468           - pong: Simple object-exporting program (not using adaptors)
2469           - complexping: Interactive method-calling program 
2470                 (also gets and sets properties).
2471           - complexpong: Sample program exporting methods, signals and
2472                 properties, using adaptors.
2473           - dbus: Simple implementation of a generic method-calling
2474                 program, similar to 'dbus-send', but with semantics
2475                 similar to 'dcop'.
2476           - chat: Simplistic chat program, implemented using signals
2477                 and the system bus. Looks like IRC.
2478
2479 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2480
2481         * configure.in: Detect QtGui (necessary for one of the
2482           example programs). Note: this increases the minimum required
2483           version of Qt to 4.1.3.
2484
2485 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2486
2487         * test/qt/*: Sync with KDE Subversion revision 523647.
2488         Update the testcases to the new API. Remove testcases for
2489         classes that are no longer public or have been removed.
2490
2491 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2492
2493         * qt/*: 
2494         * dbus/qdbus.h: Sync with KDE Subversion revision
2495         523647. Hopefully, this will be the last of the
2496         source-incompatible changes. Documentation has been improved;
2497         support for QList<basic-types> has been added; QDBusObject is
2498         gone; QDBus(Abstract)Interface is now a QObject with
2499         auto-generated meta-object; QDBusIntrospection is marked
2500         private, since QMetaObject can be used now; lots of bugfixes.
2501
2502 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2503
2504         Patch from Milosz Derezynski <internalerror at gmail.com>
2505         
2506         * configure.in:
2507         Output the service directory in the configure summary
2508
2509         * dbus-1.pc.in:
2510         Add session_bus_services_dir
2511
2512 2006-03-10  Ross Burton  <ross@openedhand.com>
2513
2514         * tools/dbus-print-message.c:
2515         Add support for object paths and signatures.
2516
2517 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2518
2519         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2520         config reload.
2521         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2522         information caches
2523         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2524         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2525         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2526         * dbus/dbus-userdb.h: Add function to flush all user/group information
2527         caches.
2528
2529 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2530
2531         * qt/dbusidl2cpp.cpp:
2532         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2533         for dcopidl2cpp, found in the KDE installations (or the more
2534         modern kalyptus): generate Qt4 C++ code for the input XML
2535         introspection. Currently no IDL parsing.
2536
2537 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2538
2539         * test/qt/*: Update the self-tests.
2540
2541 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2542
2543         * qt/*: 
2544         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2545         represents the first feature-complete version of the Qt4
2546         bindings since I took ove maintainership.
2547
2548 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2549
2550         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2551         dir. This is C++, so we can't use the DBus ones.
2552
2553 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2554
2555         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2556         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2557
2558 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2559
2560         * dbus/dbus-connection.c: 
2561         (_dbus_connection_block_pending_call):
2562         Check to see if our data has already been read off the connection
2563         by another blocking pending call before we block in poll.
2564         (check_for_reply_and_update_dispatch_unlocked):
2565         Code taken from _dbus_connection_block_pending_call - checks for
2566         an already read reply and updates the dispatch if there is one.
2567
2568         * test/name-test/test-pending-call-dispatch.c:
2569         New test for making sure we don't get stuck polling a 
2570         dbus connection which has no data on the socket when
2571         blocking out of order on two or more pending calls.
2572
2573 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2574
2575         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2576         make/automake don't detect that we're talking about the same
2577         .lo file if I specify the full path to the source files.
2578
2579 2006-02-26  Havoc Pennington  <hp@redhat.com>
2580
2581         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2582
2583         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2584         session bus variable is unset, suggest "man dbus-launch" and "man
2585         dbus-daemon" to figure out how to fix the problem
2586
2587 2006-02-25  Havoc Pennington  <hp@redhat.com>
2588
2589         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2590         should make this thing use the new glib options parser
2591
2592 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2593
2594         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2595         .lo files taking moc sources.
2596
2597 2006-02-25  Havoc Pennington  <hp@redhat.com>
2598
2599         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2600         and install it as a public header
2601
2602 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2603
2604         * Released 0.61
2605
2606 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2607         
2608         * proxies.py: Fix the callchain
2609
2610 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2611         
2612         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2613
2614         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2615         dbus/dbus-sysdeps.c
2616
2617         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2618         call _dbus_group_info_free_allocated which causes infinite loop,
2619         correctly call _dbus_group_info_free
2620
2621 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2622
2623         * qt/qdbusinterface_p.h:
2624         * qt/qdbusinterface.cpp: Use the standard
2625         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2626         calls instead of creating one for us.
2627
2628         * qt/qdbusconnection_p.h:
2629         * qt/qdbusintegrator.cpp: Remove debugging code.
2630
2631         * qt/qdbusintegrator.cpp:
2632         * qt/qdbusmessage.cpp:
2633         * qt/qdbusmessage_p.h:
2634         * qt/qdbusmessage.h: Change the behaviour of automatic
2635         reply-sending: now a reply is always sent, unless the caller
2636         didn't request one or if the user slot has already sent one.
2637
2638 2006-02-16  Robert McQueen  <robot101@debian.org>
2639
2640         * configure.in: Patch from Debian packages by Sjoerd Simons
2641         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2642         arguments so it's possible to build both bindings in the
2643         same tree.
2644
2645         * qt/Makefile.am: Fix truncated value so that make dist works.
2646
2647 2006-02-16  Robert McQueen  <robot101@debian.org>
2648
2649         * acinclude.m4, configure.in: Patch from Brad Hards
2650         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2651         improving quoting, re-ordering a few checks, and a few other
2652         aesthetic tidy-ups.
2653
2654 2006-02-16  Robert McQueen  <robot101@debian.org>
2655
2656         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2657         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2658         assertion that the next element to read from the iter is fixed in
2659         size. This is not the case when you are at the end of the iter,
2660         because the next element type is INVALID.
2661
2662         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2663         a bogus assert which means that you may not initialise a 0-length
2664         string unless you provide a non-NULL pointer. This prevented
2665         you from marshalling messages containing zero-length arrays in
2666         some cases.
2667
2668         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2669         from Rob to correct bogus asserts when trying to demarshal an
2670         array and get_fixed_array got you 0 elements. Append nothing to
2671         the GArray in this case.
2672
2673         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2674         an empty array via the glib bindings. Without all of the above
2675         patches, this new test fails.
2676
2677 2006-02-16  Robert McQueen  <robot101@debian.org>
2678
2679         * glib/dbus-gmain.c: Make the previous commit compile.
2680
2681         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2682         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2683         specify sender_keyword="foo", path_keyword="bar" when adding
2684         a signal listener, so that you can bind to signals generically
2685         but still do something useful in your callback.
2686
2687         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2688         chars so that they're not cast to chars and made negative. Thanks
2689         to Jakub Stachowski for reporting this and testing the fix.
2690
2691 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2692
2693         * dbus/dbus-glib.h:
2694         * glib/dbus-gmain.h:
2695         (dbus_g_connection_open): new method for openning
2696         a connection to an arbitrary address in the glib bindings
2697
2698         * ChangeLog: checkin last entry which doesn't seem to be commited
2699
2700 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2701
2702         * tools/dbus-launch.c: Fixed sh syntax output
2703
2704 2006-02-13  Robert McQueen  <robot101@debian.org>
2705
2706         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2707         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2708         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2709         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2710         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2711         missing piece of the glib bindings jigsaw puzzle. This modifies
2712         the existing specialised types to have N type parameters (rather
2713         than the current 1 or 2 for arrays and dictionaries respectively).
2714         You can then use this to get a glib type to represent any arbitrary
2715         D-Bus struct type using dbus_g_type_get_struct. The only
2716         implementation of these types is with GValueArrays as before,
2717         but it's now possible to store these in arrays, emit them in
2718         signals, etc.
2719
2720 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2721
2722         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2723         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2724         <thiago.macieira at trolltech.com>
2725
2726 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2727
2728         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2729         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2730
2731 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2732
2733         * bus/connection.c (bus_connections_expect_reply): Make
2734         pending reply limit not common to all connections (Bug #5416)
2735         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2736
2737 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2738
2739         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2740
2741 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2742
2743         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2744         patch from Doug Goldstein <cardoe at gentoo.org>
2745
2746 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2747
2748         * mono/Arguments.cs: Fix a magic number in the mono bindings
2749         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2750
2751 2006-01-27  Robert McQueen  <robot101@debian.org>
2752
2753         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2754         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2755         when generating the client-side methods, instead of overloading
2756         CSymbol which broke everything horribly. My apologies.
2757
2758 2006-01-27  Robert McQueen  <robot101@debian.org>
2759
2760         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2761         by me and Rob Taylor to add a simple_free function to D-Bus map
2762         and collection types, which allows those types which can be freed
2763         with a GDestroyNotify (such as GHashTables and GArrays, but not
2764         GPtrArrays) to be stored as the values in hashtables.
2765
2766         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2767         Patch by Rob Taylor to add nested dicts to the glib tests to check
2768         the above code works, and appears not to leak when called repeatedly.
2769
2770 2006-01-27  Robert McQueen  <robot101@debian.org>
2771
2772         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2773         to free a D-Bus allocated string with dbus_free () instead of
2774         g_free ().
2775
2776 2006-01-27  Iain Holmes  <iain@openedhand.com>
2777
2778         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2779         method from being called multiple times.
2780
2781 2006-01-19  Robert McQueen  <robot101@debian.org>
2782
2783         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2784         <rob.taylor@collabora.co.uk> to add support for generating bindings
2785         to arrays that are represented as GPtrArrays rather than GArrays (ie
2786         size-variable things, such as strings, objects, structs, etc).
2787
2788 2006-01-05  Robert McQueen  <robot101@debian.org>
2789
2790         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2791         <ricardo.kekki@movial.fi> to make it possible to inherit from
2792         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2793         a private part, and moving the setting of the DBusGProxyManager into a
2794         connection property, allowing proper GObject construction.
2795
2796 2006-01-05  Robert McQueen  <robot101@debian.org>
2797
2798         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2799         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2800         annotations when generating glib client bindings.
2801
2802 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2803
2804         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2805
2806         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2807
2808 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2809
2810         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2811
2812 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2813
2814         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2815
2816 2005-12-19  Ross Burton  <ross@openedhand.com>
2817
2818         * doc/dbus-tutorial.xml:
2819         Document the Glib client-side bindings, and list all possible annotations.
2820
2821 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2822
2823         * dbus/bus.c (dbus_bus_release_name): Add documentation
2824
2825 2005-12-06  Robert McQueen  <robot101@debian.org>
2826
2827         * python/service.py: s/sucessful/successful/ so we're allocating to
2828         and reading from the same variable. Oops.
2829
2830 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2831
2832         * Released 0.60
2833
2834 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2835
2836         * test/qt/Makefile.am: build from srcdir
2837
2838         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2839         Note - this code is wrong and needs to be fixed by the Qt binding
2840         developers.  The flags should be treated as bitfields and not enums.
2841
2842         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2843
2844 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2845
2846         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2847           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2848           in production code
2849
2850 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2851
2852         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2853         method for getting messages off the bus in the absence of a
2854         mainloop.  This method is much like 
2855         dbus_connection_read_write_dispatch except it does not dispatch
2856         the messages to a registered filter function.  Instead it
2857         allows a developer to process messages by directly popping
2858         them off the bus.
2859
2860 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2861
2862         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2863         the parser to continue instead of returning error
2864         (bus_desktop_file_load): Do not free parser data when
2865         parse_section_start or parse_key_value fails because it was 
2866         already freed by parser_free (patch from Carlos Garcia Campos  
2867         <carlosgc at gnome.org>)
2868
2869 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2870
2871         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2872         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2873         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2874         test/test-segfault.c, test/test-utils.c,
2875         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2876         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2877         Various cleanup of dead code and compiler warnings (patch from
2878         Kjartan Maraas <kmaraas at gnome.org>) 
2879
2880 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2881
2882         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2883         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2884
2885 2005-11-27  Robert McQueen  <robot101@debian.org>
2886
2887         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2888         part of the preceding one. Oops. Merge patch by Johan Hedberg
2889         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2890         on big-endian platforms.
2891
2892         * test/python/test-client.py: Add some 16-bit integers to the test
2893         values.
2894
2895 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2896
2897         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2898         method return message for property getters
2899
2900 2005-11-27  Robert McQueen  <robot101@debian.org>
2901
2902         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2903         with type v of an instance of dbus.Variant(foo, type='x') caused
2904         it to be boxed twice before sending over the bus.
2905
2906         * python/dbus_bindings.pyx, python/service.py,
2907         test/python/test-client.py: Update the constants for the new
2908         request_name flags, and update comments/test cases now that queueing
2909         is the default action.
2910
2911 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2912
2913         * configure.in:
2914         - Change version to 0.60 for impending release
2915         - upped the sonames because of ABI and API breakage
2916
2917 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2918
2919         * configure.in: Add test/name-test/Makefile to the generated
2920         Makefile list
2921
2922         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2923         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2924         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2925         not to queue an ower if it can't be the primary owner
2926
2927         * bus/bus.h: Add new internal BusOwner struct
2928
2929         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2930         to bus_registry_ensure and don't set the prohibit_replacement flag
2931         since they are now set per BusOwner and not per name.
2932         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2933         that returns the list of connections in a name's connection queue
2934         
2935         * bus/services.c (struct BusService): remove prohibit_replacement field
2936         (struct BusOwner): new struct for keeping track of queued connections
2937         and their associated flags for the queue
2938         (struct BusRegistry): add a BusOwner memory pool
2939         (bus_registry_new): initialize the BusOwner memory pool
2940         (bus_registry_unref): free the BusOwner memory pool
2941         (_bus_service_find_owner_link): new internal method for
2942         searching the queue for a specific connection
2943         (bus_owner_set_flags): new method for adding setting the flags on a
2944         bus owner
2945         (bus_owner_new): new method that creates a BusOwner object from the
2946         pool and sets its flags
2947         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2948         (bus_registry_ensure): Add the flags parameter
2949         (bus_registry_acquire_service): Switch from using raw connections to
2950         using the BusOwner struct
2951         Add new state machine for dealing with the new set of flags
2952         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2953         cancel_ownership, free_ownership_cancel_data, 
2954         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2955         restore_ownership, free_ownership_restore_data, 
2956         add_restore_ownership_to_transaction): Switch to using BusOwner 
2957         instead of raw connections
2958         (bus_service_add_owner): Add flags parameter
2959         Switch to using BusOwner instead of raw connections
2960         Add state machine for dealing with the new set of flags
2961         (bus_service_swap_owner): Swaps the first and second owners in the
2962         queue.  Used to make sure proper signals are sent when a service looses 
2963         or gains primary ownership.  We never insert an owner at the top of the
2964         queue.  Instead we insert it in the second position and then swap.
2965         (bus_service_remove_owner): Remove the owner from the queue sending
2966         out the NameLost and NameOwnerChanged signals if the we were the 
2967         primary owner
2968         (bus_service_get_primary_owners_connection): New method that extracts
2969         the connection from the primary owner
2970         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2971         connection
2972         (bus_service_get_allow_replacement): Changed from the old 
2973         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2974         primary owner and returns if it can be replaced or not
2975         (bus_service_set_prohibit_replacement): removed
2976         (bus_service_has_owner): returns TRUE if and owner with
2977         the specified connection exists in the queue
2978         
2979         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2980         method that only compiles if tests are enabled.  Allows us to get the 
2981         unique name of a connection so we can check it against the queue when
2982         doing regression tests
2983
2984         * bus/activation.c (bus_activation_send_pending_auto_activate),
2985         bus/dispatch.c (bus_dispatch),  
2986         bus/driver.c (bus_driver_handle_get_service_owner, 
2987         bus_driver_handle_get_connection_unix_user, 
2988         bus_driver_handle_get_connection_unix_process_id,
2989         bus_driver_handle_get_connection_selinux_security_context),
2990         bus/signals.c (connection_is_primary_owner): 
2991         use bus_service_get_primary_owners_connection instead of
2992         bus_service_get_primary_owner
2993
2994         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2995         _dbus_listen_unix_socket): Calculate the length of the socket
2996         path and use that instead of using a fixed length which was
2997         causing socket names to contain many trailing Nul bytes.
2998
2999         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
3000         (dbus_g_method_get_sender): New method for extracting the sender 
3001         from a DBusGMethodInvocation
3002         (dbus_g_method_return_get_reply): changed name to 
3003         dbus_g_method_get_reply
3004         (dbus_g_method_return_send_reply): changed name to
3005         dbus_g_method_send reply
3006
3007         * doc/dbus-specification.xml: New docs that describe how the new
3008         queueing system works and talks about the changes to the how
3009         we specify socket names
3010
3011         * glib/examples/example-service.c, 
3012         glib/examples/example-signal-emitter.c,
3013         glib/examples/statemachine/statemachine-server.c:
3014         Changed the RequestName flags to the new system
3015
3016         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
3017         regression test suite for testing various states of the new
3018         queueing system
3019         
3020 2005-11-15  Robert McQueen  <robot101@debian.org>
3021
3022         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
3023         Taylor to add two methods, dbus_g_method_return_get_reply and
3024         dbus_g_method_return_send_reply, to allow you to get the reply
3025         message from a DBusGMethodInvocation, append arbitrary stuff to it,
3026         and send it. The GLib bindings can't marshal a return value of
3027         something like a(s) if the array is empty - ultimately they should be
3028         made to heed the signature of the out arguments as the Python bindings
3029         now can, but this is a workable interim solution which might have
3030         other applications.
3031
3032 2005-11-15  Robert McQueen  <robot101@debian.org>
3033
3034         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
3035         method to org.freedesktop.DBus to release a bus name or give up
3036         waiting in the queue for it.
3037
3038         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
3039         dbus_bus_release_name method to send the ReleaseName method calls.
3040         Add constants for the return values to dbus/dbus-shared.h.
3041
3042         * doc/dbus-specification.xml: Document the new ReleaseName method
3043         in the specification.
3044
3045         * python/dbus_bindings.pyx: Add a low-level python binding for the
3046         release name method.
3047
3048         * python/exceptions.py, python/service.py: Make freeing BusName
3049         objects release the name. Add a NameExistsException, and fix a
3050         bug with creating UnknownMethodException.
3051
3052         * test/python/test-client.py: Add tests for freeing BusName
3053         objects causing names to be released.
3054
3055 2005-11-14  Robert McQueen  <robot101@debian.org>
3056
3057         * python/service.py: Include the traceback in the error reply when we
3058         send an exception over the bus. _BEST_ _PATCH_ _EVER_
3059
3060 2005-11-14  David Zeuthen  <davidz@redhat.com>
3061
3062         Patch from Timo Hoenig <thoenig@suse.de>.
3063
3064         * bus/bus.c: I've recently investigated why the automatic reload
3065         of configuration files does not work as expected.
3066
3067         Currently, reloading configuration files does only work when
3068         running dbus-daemon with --nodaemon.  If we are running as daemon
3069         we're hitting a dnotify bug once we fork the process.
3070
3071         We're initializing the dnotify fds before calling fork().  Once
3072         the child process forked it does still have the fds (and they
3073         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
3074         getting SIGIO as changes are made to the configuration files.
3075
3076         The attached patch moves the initialization of the dnotify fds to
3077         process_config_postinit().  This is safe for all current code
3078         paths and solves the dnotify disfunction.  If we're running
3079         dbus-daemon as daemon the fds for dnotify are now being
3080         initialized after fork() for the child process.
3081
3082         * configure.in: The current configure.in check for dnotify probes
3083         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
3084         match for 'xlinux', too. Additionally I have adapted the configure
3085         option's style to match with the others.
3086
3087 2005-11-14  Robert McQueen  <robot101@debian.org>
3088
3089         * python/decorators.py, python/service.py: Add a new argument to the
3090         dbus.service.method decorator called sender_keyword, which if set,
3091         specifies the name of an argument which will be provided the bus
3092         name of the method caller.
3093
3094         * test/python/test-client.py, test/python/test-service.py: Add a
3095         method and test to check the sender_keyword functionality.
3096
3097 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
3098
3099         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
3100         empty reply so blocking calls don't block forever (Patch from Sjoerd 
3101         Simons <sjoerd at luon.net>)
3102
3103         * AUTHORS: Add Robert McQueen for his work on the Python
3104         Bindings and other parts of D-Bus
3105
3106 2005-11-07  Robert McQueen  <robot101@debian.org>
3107
3108         * python/decorators.py: Change emit_signal function to use the
3109         signature annotation of the signal when marhsalling the arguments from
3110         the service. Fix a bug where the code checking signature length
3111         against argument length referenced the wrong variable.
3112
3113         * python/introspect_parser.py: Avoid adding the type signature of
3114         signal arguments to any methods which occur after them in the
3115         introspection data (!) by making the parser a little more careful
3116         about its current state.
3117
3118         * python/service.py: Remove debug prints from last commit (again :D).
3119
3120         * test/python/test-client.py, test/python/test-service.py: Add test
3121         signals with signature decorators to test the strict marshalling code
3122         gives errors at the right time. Could do with checking the signals
3123         actually get emitted too, given that the test does nothing with
3124         signals at the moment...
3125
3126 2005-11-07  Robert McQueen  <robot101@debian.org>
3127
3128         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
3129         instances to stop madness of creating new instances representing
3130         the same bus connection all the time, rendering any tracking of
3131         match rules and bus names quite meaningless. Caught a bug where
3132         the private argument to SessionBus() and friends was being passed
3133         in as use_default_mainloop by mistake. Still some problems with
3134         multiple dbus_binding.Connection instances representing the same
3135         low-level connection (eg when you use both SessionBus() and
3136         StarterBus() in same process), but it's a lot better now than it
3137         was.
3138
3139         * python/dbus_bindings.pyx: Add constants with the return values
3140         for bus_request_name().
3141
3142         * python/service.py: Store bus name instances in a per-dbus.Bus cache
3143         and retrieve the same instances for the same name, so deletion can be
3144         done with refcounting. Also now throws some kind of error if you
3145         don't actually get the name you requested, unlike previously...
3146
3147         * test/python/test-client.py: Add tests for instance caching of buses
3148         and bus name objects.
3149
3150 2005-11-04  Robert McQueen  <robot101@debian.org>
3151
3152         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
3153         marshalling of boolean values. Add some booleans to the values in
3154         the test client.
3155
3156         * python/decorators.py, python/service.py: Add an 'async_callbacks'
3157         argument to the dbus.service.method decorator, which allows you to
3158         name arguments to take two callback functions for replying with
3159         return values or an exception.
3160
3161         * test/python/test-client.py, test/python/test-service.py: Add test
3162         case using asynchronous method reply functions, both return values and
3163         errors, and from within both the function itself and from a mainloop
3164         callback.
3165
3166         * python/decorators.py, python/service.py: Perform checking that the
3167         number of method/signal arguments matches the number of types in the
3168         signature at class loading time, not when you first introspect the
3169         class.
3170
3171         * python/service.py: Remove debug print left by the last commit.
3172
3173 2005-11-03  Robert McQueen  <robot101@debian.org>
3174
3175         * python/service.py: Heavy refactoring of method invocation, with
3176         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
3177         in favour of a new _message_cb that uses seperate functions for
3178         looking up the method to call, marshalling the return values, and
3179         sending exceptions as errors, and is easier to follow as a
3180         consequence.  Fixes some corner cases about returning things that
3181         don't match your declared out_signature, allows exceptions to define
3182         _dbus_error_name and have it be sent over the bus as the error name,
3183         and paves the way for cool stuff like heeding the message no reply
3184         flag, asynchronous method implementations, informing the method of the
3185         sender, and including backtraces in the error messages.
3186
3187         * test/python/test-client.py: Catch and print exceptions thrown in the
3188         async callback tests, rather than passing them to the low-level
3189         bindings to be ignored in a noisy and frustrating manner.
3190
3191 2005-11-03  Robert McQueen  <robot101@debian.org>
3192
3193         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
3194         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
3195         tweak others to be consistent.
3196
3197         * test/python/test-client.py: Tweak output of testInheritance.
3198
3199 2005-10-29  Robert McQueen  <robot101@debian.org>
3200
3201         * python/service.py: Major changes to allow multiple inheritance
3202         from classes that define D-Bus interfaces:
3203         
3204          1. Create a new Interface class which is the parent class of
3205             Object, and make the ObjectType metaclass into InterfaceType.
3206         
3207          2. Patch written with Rob Taylor to replace use of method_vtable
3208             with code that walks the class's __MRO__ (method resolution order)
3209             to behave like Python does when invoking methods and allow
3210             overriding as you'd expect. Code is quite tricky because
3211             we have to find two methods, the one to invoke which has the
3212             right name and isn't decorated with the /wrong/ interface,
3213             and the one to pick up the signatures from which is decorated
3214             with the right interface.
3215         
3216             The same caveats apply as to normal multiple inheritance -
3217             this has undefined behaviour if you try and inherit from two
3218             classes that define a method with the same name but are
3219             decorated with different interfaces. You should decorate
3220             your overriding method with the interface you want.
3221         
3222          3. Replace grungy introspection XML generation code in the metaclass
3223             with dictionaries that cope correctly with multiple inheritance
3224             and the overriding of methods. This also uses the signature
3225             decorations to provide correct introspection data, including
3226             the debut appearance of the types of your return values. :D
3227
3228         * test/python/test-client.py, test/python/test-service.py: Add a test
3229         case to try invoking an method that overrides one inherited from a
3230         D-Bus interface class.
3231
3232 2005-10-29  Robert McQueen  <robot101@debian.org>
3233
3234         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
3235         Add checking for the end of struct character when marshalling a
3236         struct in MessageIter.append_strict.
3237
3238         * python/examples/example-service.py,
3239         python/examples/gconf-proxy-service.py,
3240         python/examples/gconf-proxy-service2.py: Update to use gobject
3241         mainloop directly rather than appearing to depend on gtk.
3242
3243         * python/test/test-client.py, python/test/test-server.py: Remove
3244         obsolete and broken test scripts for old bindings. We have up to date
3245         and working tests in test/python/.
3246
3247 2005-10-29  Robert McQueen  <robot101@debian.org>
3248
3249         * python/decorators.py: Add optional arguments to the method and
3250         signal decorators to allow you to specify the signature of arguments
3251         and return values. Preserve the doc strings of signal functions in the
3252         decorated version, for pydoc and friends.
3253
3254         * python/dbus_bindings.pyx, python/proxies.py: Replace the
3255         parse_signature_block function with an iterable dbus.Signature()
3256         type. Fix a bug in MessageIter.append_strict where you could append
3257         anything by claiming it was a string.
3258
3259         * python/service.py: Use the out_signature decoration on methods to
3260         marshal return values, meaning you no longer require dbus.Array()
3261         or dbus.Dictionary() to indicate the type when returning empty
3262         arrays or dictionaries. Fix a bug where exceptions which are defined
3263         in __main__ are not turned into error replies.
3264
3265         * test/python/test-client.py, test/python/test-service.py: Add test
3266         for correct marshalling of return values according to out_signature.
3267         Fix a bug in the async call test where the error_handler is missing a
3268         self argument.
3269
3270 2005-10-29  Robert McQueen  <robot101@debian.org>
3271
3272         * glib/Makefile.am, glib/examples/Makefile.am,
3273         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
3274         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
3275
3276         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
3277
3278         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
3279         from Ubuntu by Daniel Silverstone to allow specifying match rules on
3280         the command line.
3281
3282 2005-10-27  Ross Burton  <ross@openedhand.com>
3283
3284         * dbus/dbus-marshal-header.c:
3285         Remove dead code.
3286
3287         * glib/dbus-gobject.c:
3288         Stop compiler warning.
3289
3290 2005-10-25  Ross Burton  <ross@openedhand.com>
3291
3292         * dbus/dbus-auth.c:
3293         * dbus/dbus-server-unix.c:
3294         * dbus/dbus-transport-unix.c:
3295         * glib/dbus-gmain.c:
3296         * glib/dbus-gobject.c:
3297         Add some const keywords.
3298
3299 2005-10-25  Ross Burton  <ross@openedhand.com>
3300
3301         * doc/dbus-specification.xml:
3302         Document the NoReply annotation.
3303
3304         * glib/dbus-binding-tool-glib.h:
3305         * glib/dbus-binding-tool-glib.c:
3306         Respect the NoReply annotation.
3307
3308 2005-10-24  Robert McQueen <robot101@debian.org>
3309
3310         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3311         derive from unicode instead of str, and encode/decode UTF-8 when
3312         marshalling/unmarshalling bus messages
3313
3314         * python/introspect_parser.py: encode introspection data as UTF-8
3315         before passing the buffer into libxml2
3316
3317         * test/python/test-client.py: add unicode test strings
3318
3319         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3320         ignore generated python test files
3321
3322 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3323
3324         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3325         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3326         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3327
3328         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3329         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3330         when constructing struct signatures
3331
3332         * python/_dbus.py (Bus): handle private connections using the
3333         private keyword in the constructor. defaults to private=False
3334         (Bus::close): new method to close a connection to the bus
3335
3336         * python/dbus_bindings.pyx (Connection::close): renamed method
3337         was previously called disconnect
3338         (bus_get): now supports getting a private connection
3339
3340         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3341         keyword is set to True.  if it is, execute the method without waiting
3342         for a reply
3343         (ProxyObject::_introspect_execute_queue): new method for executing
3344         all the pending methods that were waiting for the introspect to
3345         finish.  this is called when introspect either succeeds or fails
3346         (ProxyObject::_introspect_error_handler): call queued methods
3347
3348 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3349
3350         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3351         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3352
3353         * python/service.py (Object::_message_cb): handle exceptions correctly
3354         by sending them over the wire to the calling app.  This makes sure
3355         the client returns immediately instead of waiting the 15 seconds to
3356         timeout.
3357
3358         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3359         Add a test to benchmark how long it takes to introspect a service and 
3360         call a method which returns a large element (pretty fast)
3361
3362         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3363         method which pushes a lot of data
3364
3365 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3366
3367         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3368         reclaim memory outside of the loop and use del istead of just setting
3369         the key to None
3370
3371 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3372
3373         * python/service.py (ObjectType::_reflect_on_signal): Always close
3374         signal tag even when there are no arguments
3375
3376 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3377
3378         * configure.in: Set mono, mono-docs and Qt3 to default
3379         to no instead of auto when building.  These bindings do not
3380         have full time maintainers and will not be supported for the
3381         1.0 release.
3382
3383 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3384
3385         patches from Michael Krivoruchko <misha at sun.com>: 
3386         
3387         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3388         _dbus_connection_message_sent, 
3389         _dbus_connection_send_preallocated_unlocked_no_update, 
3390         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3391         is NULL when calling _dbus_verbose
3392
3393         * configure.in: check for functions getpeerucred and getpeereid
3394
3395         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3396         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3397         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3398         Patch was only tested on Solaris 10 x86 so it might be issues
3399         with other platforms (i.e. BSDs and MacOSX)
3400         
3401
3402 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3403
3404         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3405         instead of marshal basic so we can handle recursive types in a variant
3406
3407         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3408         in variants
3409
3410         * test/glib/test-service-glib.c, test-service-glib.xml
3411         (my_object_echo_variant [EchoVariant], 
3412         my_object_process_variant_of_array_of_ints123
3413         [ProcessVariantOfArrayOfInts123]): 
3414         Add two test methods
3415
3416         * python/introspect_parser.py: New module for parsing introspect
3417         data.
3418
3419         * python/dbus_bindings.pyx:
3420         (various places): when throwing errors fix to use errormsg instead 
3421         of message local variable because Pyrex can get confused with other 
3422         message variables (initial patch by Robert McQueen 
3423         <robert.mcqueen at collabora.co.uk>)
3424         (MessageIter::parse_signature_block): new method for getting the next
3425         block in a signiture.
3426         (MessageIter::append_strict): new method for appending values strictly
3427         using the passed in signature instead of guessing at the type
3428         (MessageItter:: append_dict, append_struct, append_array): use 
3429         signatures to marshal children if the signature is available
3430         
3431         * python/exceptions.py (IntrospectionParserException): new exception
3432
3433         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3434         introspected signatures if available, else we fall back to the
3435         old way of doing things.
3436         (ProxyObject::_introspect_reply_handler ): parse introspection data
3437         
3438         * python/service.py (ObjectType::_reflect_on_method): Properly
3439         terminate <method> if there are no args in the reflection data
3440
3441         * test/python/test-client.py: add tests for talking with the GLib
3442         test server.  This gives us better coverage for introspection since
3443         python to python will always generate arguments as variants.  It also
3444         allows us to test the robustness of the GLib bindings and interlanguage
3445         communications.
3446
3447         
3448 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3449
3450         * bus/driver.c (bus_driver_handle_introspect): Add signals
3451         to the introspect data. (patch from Daniel P. Berrange 
3452         <dan at berrange.com>)
3453
3454         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3455         
3456         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3457         _dbus_connection_run_builtin_filters): Changed these to
3458         be unlock_no_update functions and call 
3459         _dbus_connection_send_unlocked_no_update instead of
3460         dbus_connection_send to avoid locking errors.
3461         
3462         * doc/TODO: Removed the make Ping test TODO
3463         
3464 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3465
3466         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3467         We now copy the message from a DBusError and then free 
3468         the error object befor throwing the error
3469
3470         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3471         DBusBindingOutputMode enum which was causing a warning.
3472         #include <time.h> so using time_t is explicitly defined
3473
3474 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3475
3476         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3477         - dbus/dbus-bus.c
3478         (internal_bus_get): new method that take over the heavy lifting
3479         of dbus_bus_get and adds the ability to get a private connection
3480         to the bus
3481         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3482         interface as in previous versions
3483         (dbus_bus_get_private): new method that is a wrapper to 
3484         internal_bus_get to get a private connection to the bus
3485
3486         - dbus/dbus-bus.h
3487         (dbus_bus_get_private): add as a public libdbus interface
3488
3489         - dbus-1.pc.in: output system_bus_default_address and 
3490         sysconfdir variables so apps can use them when compiling
3491
3492 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3493         * dbus/qt: New Qt bindings
3494
3495 2005-09-12  Waldo Bastian  <bastian@kde.org>
3496
3497         * dbus/dbus-marshal-validate.c,
3498         doc/dbus-specification.xml, test/Makefile.am,
3499         test/test-names.c: allow hyphens in bus names.
3500
3501 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3502
3503         * test/data/auth/fallback.auth-script: we don't
3504         retry the EXTERNAL method when we know its going
3505         to fail anymore.
3506
3507 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3508
3509         * dbus/dbus-connection-internal.h: rename
3510         (add|remove|toggle)_(watch|timeout) to unlocked()
3511         
3512         * dbus/dbus-connection.c: ditto.
3513         
3514         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3515         Update some callers for the renaming.
3516
3517 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3518
3519         * dbus/dbus-auth.c: (record_mechanisms): don't
3520         retry the first auth mechanism because we know
3521         we're just going to get rejected again.
3522         
3523         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3524         Fix thinko ... and what a nasty little bugger to
3525         track down you were ...
3526
3527         * dbus/dbus-connection.c:
3528         (_dbus_connection_add_watch),
3529         (_dbus_connection_remove_watch): add note about
3530         these needing the connection to be locked.
3531         (_dbus_connection_get_dispatch_status_unlocked):
3532         set status to DATA_REMAINS when we queue the
3533         disconnected message.
3534         
3535         * bus/dispatch.c:
3536         (bus_dispatch): fix warning.
3537         (check_existent_service_no_auto_start):
3538         Expect ChildSignaled error too.
3539         (check_existent_hello_from_self): fix another
3540         couple of warnings.
3541         
3542 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3543
3544         Patches from James Willcox <snorp@snorp.net>
3545
3546         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3547
3548         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3549         support array "out" parameters.
3550
3551         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3552         for 16-bit int support.
3553
3554 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3555
3556         * Released 0.50
3557
3558         * Patch from Steve Grubb:
3559         - bus/activation.c (bus_activation_service_reload_test): clean up
3560         some indentation
3561         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3562         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3563         buffer overflows in the test suite.  This is non critical because
3564         it can not be exploited and this code is only run when doing a 
3565         make check.
3566
3567         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3568         - configure.in: Don't check and link against kdecore, only qt headers
3569         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3570         - gcj/org/freedesktop/dbus/Makefile.am:
3571         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3572         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3573         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3574         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3575         - tools/Makefile.am: Add platform extentions to binaries 
3576         (i.e. .exe on windows)
3577
3578         * configure.in: 
3579         - Make it so if no suitable version of python is found we only 
3580         disable building python instead of exiting the configure script
3581         - Require version 2.4 of glib for glib bindings
3582         - Up version to 0.50
3583
3584         * python/__init__.py: Sync version with libdbus to (0,50,0)
3585         
3586 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3587
3588         * dbus/dbus-object-tree.c (find_subtree_recurse):
3589         a couple of optimizations (bug #710):
3590         - do a binary search in the tree
3591         - insert a new child at the right place directly, no need for
3592           qsort anymore
3593         - do the "double alloc" thing when allocating children
3594
3595 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3596
3597         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3598
3599         * python/dbus_bindings.pyx: Memory management foo
3600         (global): remove hacky _user_data_references global list
3601         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3602         tuples. Unref user_data
3603         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3604         (Connection::__del__): Remove and replace with __dealloc__ method
3605         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3606         to keep tuple from being deallocated instead of the global var hack
3607         (Connection::register_object_path): Stuff user_data into a tuple.
3608         Use Py_INCREF to keep tuple from being deallocated instead of the 
3609         global var hack
3610         (Connection::register_fallback): Stuff user_data into a tuple.
3611         Use Py_INCREF to keep tuple from being deallocated instead of the 
3612         global var hack
3613         (GIL_safe_pending_call_notification): Don't unref the message
3614         because it gets unreffed when going out of scope.  Py_XDECREF
3615         the user_data
3616         (PendingCall::__del__): Remove and replace with __dealloc__ method
3617         (PendingCall::set_notify): ref the pending call because we will
3618         need it to stick around for when the notify callback gets called
3619         (Message::__del__): Remove and replace with __dealloc__ method
3620
3621         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3622         gthreads_init to match up with the dbus call
3623
3624         * python/glib.py (init_threads): Changed to threads_init to match
3625         up with gobject.threads_init().  init_threads is kept for backwards
3626         compat but will most likely be deprecated in the future
3627
3628         * test/python/test-client.py: 
3629         - revamp to use Python's unittest functionality
3630         - add async call tests
3631         - setup threads in glib and dbus so we make sure locks are working
3632         
3633 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3634
3635         * python/dbus_bindings.pyx 
3636         (_pending_call_notification, cunregister_function_handler, 
3637         cmessage_function_handler): All callback functions have been rearranged 
3638         to workaround a bug in Pyrex when working with the GIL which is Python's 
3639         global lock when dealing with threads.  They have been split into
3640         a wrapper function (which assumes the name of the old function) and
3641         a _GIL_safe_<function name> function which contains the functionality
3642         of the old function.  This ensures that Pyrex does not write code
3643         the lock is released.
3644         
3645
3646 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3647
3648         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3649         GIL global lock when calling back into Python
3650
3651 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3652
3653         * Release 0.36.2
3654
3655         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3656
3657         * bus/policy.c (bus_policy_allow_user): change default "user is
3658         allowed" to be "user has same uid as the bus itself"; any
3659         allow/deny rules will override.
3660
3661         * bus/session.conf.in: don't allow all users, since now by default
3662         the user that ran the bus can connect.
3663
3664 2005-08-26  Colin Walters  <walters@verbum.org>
3665
3666         * tools/dbus-print-message.c (print_message): Flush stdout
3667         after printing a message, so that redirecting to a file, then
3668         hitting Ctrl-C works.
3669
3670 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3671
3672         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3673         (EmptyMessage): new class that subclasses Message.  This is a workaround
3674         to a Pyrex bug that fails to call __del__ when the Message object goes out
3675         of scope.  For some reason subclassing Message fixes this bug
3676         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3677         - s/Message(_create=0)/EmptyMessage everywhere else
3678         
3679         * test/python/test-{server|client}.py: add the python/.libs directory
3680         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3681         get picked up from the system
3682
3683 2005-08-25  Colin Walters  <walters@verbum.org>
3684
3685         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3686         to Ryan Lortie for the suggestion.
3687
3688 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3689
3690         * test/python: Add python regression test
3691
3692         * configure.in: Add test/python/Makefile
3693
3694         * test/Makefile.am: Add the python directory to SUBDIRS
3695
3696 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3697
3698         * Release 0.36.1
3699
3700         * python/_dbus.py: 
3701         (Interface::connect_to_signal): propigate keywords for match on args
3702         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3703
3704         * python/proxies.py (ProxyObject::connect_to_signal):
3705         propigate keywords for match on args
3706
3707         * Makefile.am: point everything to pyexecdir since python borks
3708         on multilib
3709
3710 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3711
3712         * Release 0.36
3713
3714 2005-08-23  Colin Walters  <walters@verbum.org>
3715
3716         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3717
3718 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3719
3720         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3721         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3722         of defining DBusConnection ourselves.
3723
3724 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3725
3726         * python/dbus.pth: New path file to fix up problems when installing
3727         c libraries to lib64 and python files to lib.
3728
3729         * python/Makefile.am: install dbus.pth in the correct spot
3730
3731 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3732         * ChangeLog: clean up my last entry a bit
3733
3734         * doc/introspect.xsl: New stylesheet for converting introspection data
3735         into browser renderable xhtml. Contributed by Lennart Poettering.
3736
3737         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3738         Poettering.
3739
3740         * doc/dbus-tutorial.xml: 
3741         - Add Colin Walter to the Authors section for authoring the GLib
3742         section
3743         - Add descriptions of the new signature and type functionality
3744         in the Python complex type mapping section
3745         - Add a sidenote on the new args matching functionality in 
3746         the Python bindings
3747         - Fixed up some of the examples to use the gobject.MainLoop
3748         instead of gtk.main
3749         
3750         * python/_dbus.py:
3751         (Bus::_create_args_dict): New. Converts a hash of arg matches
3752         to a more useable format
3753         (Bus::add_signal_receiver): add a **keywords parameter for catching
3754         arg match parameters
3755         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3756         arg match parameters
3757         
3758         * python/matchrules.py:
3759         (MatchTree::exec_matches): Check for arg matches
3760         (SignalMatchRule::add_args_match): New method
3761         (SignalMatchRule::execute): Added args_list parameter as an optimization
3762         so we don't have to marshal the args more than once
3763         (SignalMatchRule::match_args_from_list): New method that checks to see
3764         if the rule's arg matches match an argument list.  Only arguments
3765         set in the rule are checked.
3766         (SignalMatchRule::match_args_from_rule): New method that checks to see
3767         if the rule's arg matches match another rule's.  All args have to match
3768         in order for this method to return true.  If either rule has more args
3769         then it is not a match.
3770         (SignalMatchRule::is_match): Add args match
3771         (SignalMatchRule::repr): Add args to the final output if they exist
3772
3773 2005-08-17  Ross Burton  <ross@burtonini.com>
3774
3775         * glib/dbus-gproxy.c:
3776         (dbus_g_proxy_call_no_reply): unref the message once sent.
3777         (dbus_g_proxy_call): protect against NULL proxy.
3778
3779 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3780
3781         * python/__init__.py: Version updated (0, 43, 0)
3782         
3783         * python/dbus_bindings.pyx: 
3784         - Fixed type objects to have self passed into __init__
3785         - Added the Variant type
3786         - Add the ability to specify types or signatures for Array, Variant 
3787         and Dictionary
3788         (Connection::send_with_reply_handlers): return a PendingCall object
3789         (_pending_call_notification): handle the case when an error is returned 
3790         without an error message in the body
3791         (MessageIter::get_boolean): return True or False instead of an integer
3792         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3793         and add checks for objects with embeded signatures or types (Array, 
3794         Variant and Dictionary)
3795         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3796         (MessageIter::append_dict): handle embeded types or signatures
3797         (MessageIter::append_array): handle embeded types or signatures
3798         (MessageIter::append_variant): new method
3799         
3800         * python/proxies.py:
3801         (DeferedMethod): New. Dummy executable object used when queuing calls 
3802         blocking on introspection data
3803         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3804         or shorter timeouts for method calls
3805         (ProxyObject): Add first pass at an introspection state machine
3806         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3807         introspection. 
3808         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3809         the usual mechanisms for sending messages.  This is to avoid a deadlock
3810         where the Intospect call would be queued waiting for the Introspect 
3811         call to finish ;-)
3812         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3813         when introspection returns with no error
3814         (ProxyObject::_introspect_error_handler): New.  This method is called 
3815         when introspection encounters an error
3816         (ProxyObject::__getattr__): Code to handle different introspection 
3817         states.  Queue async calls or block blocking calls if we are 
3818         introspecting.  Pass through as normal if we are not or are done with 
3819         introspecting.
3820         
3821         * python/service.py: Import signal and method from decorators.py
3822
3823         * python/types.py: Add Variant type
3824
3825 2005-08-16  Colin Walters  <walters@verbum.org>
3826
3827         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3828         DBusError message is NULL.
3829
3830 2005-08-09  Havoc Pennington  <hp@redhat.com>
3831
3832         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3833         malloc'd copy of the name parameter
3834
3835 2005-08-09  Havoc Pennington  <hp@redhat.com>
3836
3837         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3838         warning if the reply serial is set to 0
3839
3840 2005-08-04  Colin Walters  <walters@verbum.org>
3841
3842         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3843         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3844         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3845         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3846         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3847         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3848         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3849         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3850         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3851         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3852         
3853         Prefix name with _ to ensure they're not exported.  All callers
3854         updated.
3855
3856         * glib/dbus-gvalue.c (typecode_to_gtype)
3857         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3858         (signature_iter_to_g_type_dict)
3859         (signature_iter_to_g_type_array)
3860         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3861         (dbus_gtypes_from_arg_signature):
3862         Move to dbus-gsignature.c.
3863
3864         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3865         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3866         (dbus_binding_tool_output_glib_client): Ditto.
3867
3868         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3869         and dbus-gsignature.h
3870
3871         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3872         unused variable.
3873
3874 2005-08-03  Colin Walters  <walters@verbum.org>
3875
3876         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3877         catch any incompatible changes accidentally made.
3878
3879 2005-08-03  Havoc Pennington  <hp@redhat.com>
3880
3881         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3882         typo, from Julien Puydt
3883
3884         * bus/connection.c (bus_connection_disconnected): we were always
3885         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3886
3887 2005-08-01  Colin Walters  <walters@verbum.org>
3888
3889         Patch from Joe Markus Clarke:   
3890         
3891         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3892         use-after-free.
3893
3894 2005-08-01  Colin Walters  <walters@verbum.org>
3895         
3896         Patch from Joe Markus Clarke:   
3897         
3898         * tools/dbus-send.c (main): 
3899         
3900         Don't use C99 style initializers (bug #3933).
3901         
3902 2005-08-01  Colin Walters  <walters@verbum.org>
3903
3904         Patch from Joe Markus Clarke:   
3905
3906         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3907         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3908         * glib/dbus-gobject.c (write_interface):
3909
3910         Don't use C99 style initializers (bug #3933).
3911
3912 2005-07-31  Havoc Pennington  <hp@redhat.com>
3913
3914         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3915         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3916
3917 2005-07-30  Havoc Pennington  <hp@redhat.com>
3918
3919         * fix a bunch of Doxygen warnings and mistakes
3920
3921 2005-07-30  Havoc Pennington  <hp@redhat.com>
3922
3923         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3924         DBUS_BUILD_TESTS since it's now used in production code
3925
3926 2005-07-29  Havoc Pennington  <hp@redhat.com>
3927
3928         * test/glib/test-profile.c (write_junk): initialize the junk
3929         buffer so valgrind doesn't have a breakdown
3930
3931 2005-07-29  Havoc Pennington  <hp@redhat.com>
3932
3933         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3934         (match_rule_matches): remove unused arg
3935         (test_matching): add tests for match_rule_matches()
3936
3937         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3938         do arg0='foo' arg5='bar' in the match rules
3939         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3940
3941         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3942
3943 2005-07-29  Ross Burton  <ross@openedhand.com>
3944
3945         * dbus/dbus-connection.c:
3946         Don't create a DBusCondVar which is never used.
3947
3948 2005-07-27  Ross Burton  <ross@openedhand.com>
3949
3950         * dbus/dbus-message.c:
3951         Reduce the size of the maximum cached message to 10K.
3952
3953 2005-07-25  Ross Burton  <ross@openedhand.com>
3954
3955         * glib/dbus-gproxy.c:
3956         Remove matches when all proxies are unregistered.
3957
3958 2005-07-24  Colin Walters  <walters@verbum.org>
3959
3960         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3961         typedata; recursive arrays won't have it.
3962
3963         * test/glib/test-dbus-glib.c:
3964         * test/glib/test-service-glib.c:
3965         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3966         
3967 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3968
3969         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3970         proxies.py, service.py: Cleanup of code after running it through the
3971         pyflakes code checker mostly dealing with undefined names.  
3972         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3973
3974 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3975
3976         * NEWS: Update to 0.35.2
3977
3978 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3979
3980         * python/_dbus.py: Remove import of the dbus.services
3981         module as it no longer exists (patch from Dimitur Kirov)
3982
3983         * python/service.py (Object::__init__): Fixed typo
3984         s/name/bus_name (patch from Dimitur Kirov)
3985
3986         * python/examples/example-signal-emitter.py: import dbus.glib
3987         to get the main loop and use glib mainloop instead of gtk so
3988         X doesn't have to be running.
3989
3990         * python/examples/example-signal-recipient.py: import dbus.glib
3991         to get the main loop and use glib mainloop instead of gtk so
3992         X doesn't have to be running. Import the decorators module
3993         directly.
3994
3995         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3996         didn't pick up on but are needed to build
3997
3998         * configure.in: upped version to 0.35.2
3999
4000         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
4001         added Colin Walters' SELinux API rename patch from head 
4002         s/unix sercurity context/selinux security context/
4003
4004 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
4005
4006         * python/Makefile.am: dbus_binding.pxd.in should be included 
4007         in EXTRA_DIST not dbus_binding.pxd
4008         fix up $(srcdir) hopefully for the last time
4009
4010         * NEWS: Update to 0.35.1
4011
4012 2005-07-16  Colin Walters  <walters@verbum.org>
4013
4014         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
4015         from bus_driver_handle_get_connection_unix_security_context.  Update for
4016         error usage.
4017         (message_handlers): Update for renames.
4018
4019         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
4020         _dbus_string_init failure correctly.
4021         (bus_selinux_append_context): Convert SID to context.  Append it
4022         as a byte array.
4023         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
4024         hasn't been called.
4025
4026         * bus/selinux.h: Update prototype.
4027
4028         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
4029         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
4030
4031 2005-07-15  Colin Walters  <walters@verbum.org>
4032
4033         * doc/TODO: Add note about convenience wrappers.
4034
4035 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4036
4037         * NEWS: Update to 0.35
4038
4039 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4040
4041         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
4042         so distcheck doesn't fail
4043
4044         * glib/examples/Makefile.am: Add example-service.xml and 
4045         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
4046
4047         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
4048         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
4049
4050         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
4051         compiler looks in the right places during distcheck
4052
4053 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4054
4055         * glib/example/Makefile.am: Fix a typo which cause make distcheck
4056         to fail
4057
4058 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4059
4060         * python/examples/example-service.py,
4061         python/examples/example-signal-emitter.py: Fixed up examples
4062         for API changes
4063
4064 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4065
4066         * python/__init__.py: Upped to version (0,42,0) because of
4067         the API change
4068
4069 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4070
4071         * ChangeLog: fix date in last entry
4072
4073         * configure.in, bus/system.conf.in: add the ability to configure 
4074         the system bus user at compiletime with the --with-dbus-user flag
4075         (patch from Kristof Vansant)
4076
4077 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4078
4079         * bus/dispatch.c, test/test-service.c: Add testcase
4080         for sending messages to oneself (TODO item).
4081
4082         * python/service.py (class Object): Swap ordering of bus_name 
4083         and object_path parameters to better support inheritance.
4084
4085         * doc/dbus-tutorial.xml: change Python docs to reflect change
4086         in parameter ordering and fix the inheritance section.
4087
4088         * doc/TODO: remove sending message to oneself TODO item
4089
4090 2005-07-15  Ross Burton  <ross@openedhand.com>
4091
4092         * glib/dbus-gproxy.c:
4093         Fix a leak when calling methods via the proxy.
4094
4095 2005-07-15  Colin Walters  <walters@verbum.org>
4096
4097         * bus/selinux.c (bus_selinux_append_context): Wrap in
4098         HAVE_SELINUX.
4099
4100 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4101
4102         * python/_dbus.py (Bus::remove_signal_receiver):
4103         don't add a callback to the match if none has been passed in
4104         
4105         * python/matchrules.py (SignalMatchTree::remove): if the rule
4106         being matched does not have a callback treat it as a wildcard
4107         fix matching logic
4108
4109         * doc/dbus-tutorial.xml: Add Python tutorial
4110
4111 2005-07-14  Colin Walters  <walters@verbum.org>
4112
4113         * bus/driver.c
4114         (bus_driver_handle_get_connection_unix_security_context): New function.
4115         (message_handlers): Add.
4116
4117         * bus/selinux.c (bus_selinux_append_context): New function; appends
4118         security context to message.
4119
4120         * bus/selinux.h: Prototype.
4121
4122         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
4123
4124 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4125
4126         * bus/activation.c: clean up all tabs to be 8 spaces 
4127         (bus_activation_activate_service): make sure we clean up
4128         if activation fails
4129
4130         * bus/dispatch.c: clean up all tabs to be 8 spaces 
4131         (check_shell_fail_service_auto_start): New function
4132         tests to make sure we get fail properly when trying to auto start a service
4133         with a faulty command line
4134         (check_shell_service_success_auto_start): New function tests to make sure
4135         auto started services get the arguments on the command line
4136
4137         * test/test-shell-service.c: Added service for testing auto-starting with 
4138         command line arguments
4139
4140         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
4141         test/data/valid-service-files/debug-shell-echo-success.service.in:
4142         Added service files for testing auto-starting with command line arguments
4143
4144         * */.cvsignore: added a bunch of generated files to various .cvsignore files
4145
4146 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
4147
4148         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
4149         
4150         * dbus/Makefile.am: added new files to build.
4151
4152         * bus/activation.c (bus_activation_activate_service): support
4153         activation commands with parameters.
4154
4155         * test/shell-test.c: added test program for the shell parsing
4156         code.
4157
4158 2005-07-13  David Zeuthen  <davidz@redhat.com>
4159
4160         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
4161         64 bit signed and unsigned parameters
4162
4163 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
4164
4165         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
4166
4167         * python/service.py (class Name): renamed BusName to make it clearer
4168         what the object is for (a name on the bus)
4169
4170         * python/examples/example-service.py,
4171         python/examples/example-signal-emitter.py: change the Name object to
4172         BusName
4173
4174 2005-07-12  Colin Walters  <walters@verbum.org>
4175
4176         Patch from Jim Gettys <Jim.Gettys@hp.com>.
4177
4178         * tools/dbus-launch.c: Include sys/select.h.
4179
4180 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
4181         * python/dbus_bindings.pyx.in: removed
4182
4183         * python/dbus_bindings.pyx: Added.
4184         - Fixed some memleaks (patch from 
4185         Sean Meiners <sean.meiners@linspireinc.com>)
4186         - Broke out the #include "dbus_h_wrapper.h" and put it in its
4187         own pxd file (Pyrex definition)
4188         - Broke out glib dependancies into its own pyx module
4189         
4190         * python/dbus_bindings.pdx: Added.
4191         - Defines C class Connection for exporting to other modules
4192
4193         * python/dbus_glib_bindings.pyx: Added.
4194         - New module to handle lowlevel dbus-glib mainloop integration
4195
4196         * python/glib.py: Added.
4197         - Registers the glib mainloop when you import this module
4198
4199         * python/services.py: Removed (renamed to service.py)
4200         
4201         * python/service.py: Added.
4202         - (class Server): renamed Name
4203
4204         * python/__init__.py: Bump ro version (0,41,0)
4205         -don't import the decorators or service module
4206         by default.  These now reside in the dbus.service namespace
4207
4208         * python/_dbus.py (Bus::__init__): Add code run the main loop 
4209         setup function on creation 
4210
4211         * python/examples/example-service.py,
4212         python/examples/example-signal-emitter.py: update examples
4213
4214         * python/examples/gconf-proxy-service.py,
4215         python/examples/gconf-proxy-service2.py: TODO fix these up
4216
4217         * doc/TODO: Addition
4218         - Added a Python Bindings 1.0 section
4219         - added "Add match on args or match on details to match rules"
4220
4221
4222 2005-07-12  Colin Walters  <walters@verbum.org>
4223
4224         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
4225         (statemachine-glue.h): 
4226         * glib/examples/Makefile.am (example-service-glue.h) 
4227         (example-signal-emitter-glue.h): 
4228         * glib/Makefile.am (dbus-glib-error-switch.h): 
4229         Add libtool --mode=execute so we use the built library instead
4230         of any installed one.
4231
4232 2005-07-11  Colin Walters  <walters@verbum.org>
4233
4234         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
4235         (dbus_g_value_types_init): Remove assertion.
4236         (dbus_g_value_get_g_type, dbus_g_value_open)
4237         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
4238         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
4239         functions related to DBusGValue.  Now we marshal/demarshal
4240         structures as GValueArray.
4241         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
4242         structures.
4243         (signature_iter_to_g_type_array): Don't call
4244         signature_iter_to_g_type_struct.
4245         (signature_iter_to_g_type_struct): Delete.
4246         (dbus_gvalue_to_signature): Delete.
4247         (dbus_gvalue_to_signature): New function with same name as other
4248         one; we can convert structures to signatures.
4249         (demarshal_valuearray): New function.
4250         (get_type_demarshaller): Use it.
4251         (demarshal_recurse): Delete.
4252         (marshal_proxy): New function.
4253         (marshal_map): Warn if we can't determine signature from type.
4254         (marshal_collection_ptrarray): Ditto.
4255         (marshal_collection_array): Ditto.
4256         (get_type_marshaller): Use marshal_valuearray.
4257         (marshal_recurse): Delete.
4258         (_dbus_gvalue_test): Add some tests.
4259
4260         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
4261         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
4262         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4263         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4264         (dbus_g_value_free): Remove prototypes.
4265
4266         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
4267         G_TYPE_VALUE_ARRAY.
4268
4269         * glib/examples/example-service.c:
4270         * glib/examples/example-client.c: Implement GetTuple.
4271
4272         * test/glib/test-dbus-glib.c:
4273         * test/glib/test-service-glib.c:
4274         * test/glib/test-service-glib.xml: Add structure tests.
4275
4276 2005-07-10  Colin Walters  <walters@verbum.org>
4277
4278         * doc/TODO: Knock off some GLib items with this patch.
4279
4280         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
4281         (_dbus_gvalue_signals_error): New functions.
4282
4283         * glib/dbus-gvalue-utils.h: Prototype them.
4284
4285         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
4286         and change to not output const/retval flags for input args.  All
4287         callers updated.
4288         (invoke_object_method): Refactor to handle return values.  Add
4289         some more comments in various places.  Remove debug g_print.
4290
4291         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
4292
4293         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
4294         Handle G_TYPE_NONE.
4295         (compute_gsignature): New function; refactored from code from
4296         compute_marshaller and compute_marshaller_name.  Enhance to
4297         handle return values and async ops more cleanly.  Update for
4298         async ops returning NONE instead of BOOLEAN.
4299         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
4300         and output appropriate string.
4301         (generate_glue): Handle return value annotation.  Also don't dump
4302         constness flag for input arguments.
4303
4304         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
4305         files shared between installed library and utilities.
4306         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4307         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4308         binding tool can access gtype utility functions.
4309
4310         * test/glib/test-service-glib.c: 
4311         * test/glib/test-service-glib.xml: 
4312         * test/glib/test-dbus-glib.c: Add some tests for return values.
4313
4314 2005-07-09  Colin Walters  <walters@verbum.org>
4315
4316         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4317         argument if available, not method.
4318
4319         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4320         (invoke_object_method): First, remove some redundant
4321         GValues (object_value, error_value) in favor of working on
4322         array directly.  Second, rework constness to be less buggy.
4323         Now we iterate directly over the argument metadata instead
4324         of parallel iterating over output signature and metadata.
4325
4326         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4327
4328         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4329         annotation on input args.
4330         
4331 2005-07-09  Colin Walters  <walters@verbum.org>
4332
4333         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4334         Define.
4335
4336         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4337         annotation.
4338
4339         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4340         (method_dir_signature_from_object_info): Handle arg_iterate change.
4341         (write_interface): Ditto.
4342         (lookup_object_info): Don't barf if format_version is > 0.
4343         (invoke_object_method): Handle arg constness.
4344
4345         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4346         (arg_info_new): Create.
4347         (arg_info_unref): Destroy.
4348         (arg_info_get_annotations, arg_info_get_annotation) 
4349         (arg_info_add_annotation): New functions.
4350
4351         * glib/dbus-gidl.h: Prototype them.
4352
4353         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4354         args, disallow them in properties.
4355         (parse_annotation): Handle arg annotations.
4356
4357         * test/glib/test-service-glib.xml: 
4358         * test/glib/test-service-glib.c: Update to make some methods
4359         const.
4360
4361 2005-07-08  Colin Walters  <walters@verbum.org>
4362
4363         * test/glib/test-service-glib.xml: 
4364         * test/glib/test-service-glib.c:
4365         * test/glib/test-dbus-glib.c: Test a{sv}.
4366
4367         * glib/examples/statemachine/statemachine.c:
4368         * glib/examples/statemachine/statemachine-server.c:
4369         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4370         add progress bar, etc.
4371
4372         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4373         needed anymore due to generic array/map marshalling.
4374         (dbus_g_value_types_init): Don't register basic arrays or the
4375         string/string hash.
4376         (dbus_gtype_from_signature_iter): Don't try to recurse into
4377         variants.
4378         (dbus_gtype_to_signature): Check collection/map before type
4379         metadata.
4380         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4381         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4382         generic map creation/append functions instead of hash table
4383         specifically.
4384         (get_type_demarshaller): Handle maps.
4385         (demarshal_collection): Dispatch on collection type to either
4386         demarshal_collection_ptrarray or demarshal_collection_array.
4387         (get_type_marshaller): Handle maps.
4388         (marshal_collection): Dispatch collection type to either
4389         marshal_collection_ptrarray or marshal_collection_array.
4390         (_dbus_gvalue_test): New test.
4391
4392         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4393         (hash_free_from_gtype): Use it to free GValues.
4394         (hashtable_append): New function.
4395         (ptrarray_append): Fix prototype.
4396         (slist_append): Ditto.
4397         (_dbus_gvalue_utils_test): Extend tests.
4398
4399         * glib/dbus-gtype-specialized.c
4400         (dbus_g_type_specialized_init_append): Renamed from
4401         dbus_g_type_specialized_collection_init_append.  Remove const from
4402         value, since we steal it.
4403         (dbus_g_type_specialized_map_append): New function.
4404
4405         * glib/dbus-gtype-specialized.h: Update prototypes.
4406         Add DBusGTypeSpecializedMapAppendFunc.
4407
4408         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4409         _dbus_gvalue_test.
4410         
4411         * glib/dbus-gtest.h: Prototype it.
4412
4413 2005-07-08  Ross Burton  <ross@openedhand.com>
4414
4415         * dbus/dbus-glib.h:
4416         Add DBysGAsyncData for the async bindings.
4417
4418         * glib/dbus-binding-tool-glib.c:
4419         Re-enable the async bindings.
4420
4421         * test/glib/test-dbus-glib.c:
4422         Add a test for the generated async bindings.
4423
4424 2005-07-08  Colin Walters  <walters@verbum.org>
4425
4426         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4427         connection concept.
4428         
4429 2005-07-08  Colin Walters  <walters@verbum.org>
4430         
4431         * tools/Makefile.am: Kill of print-introspect in favor of using
4432         dbus-send --print-reply=literal.
4433
4434         * test/glib/test-service-glib.xml: 
4435         * test/glib/test-service-glib.c (my_object_get_objs): New test
4436         for "ao".
4437
4438         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4439         (main): Test GetObjs.
4440
4441         * glib/examples/statemachine/Makefile.am:
4442         * glib/examples/statemachine/sm-marshal.list:
4443         * glib/examples/statemachine/statemachine-client.c:
4444         * glib/examples/statemachine/statemachine-server.c:
4445         * glib/examples/statemachine/statemachine-server.xml:
4446         * glib/examples/statemachine/statemachine.c:
4447         * glib/examples/statemachine/statemachine.h:
4448         * glib/examples/statemachine/statemachine.xml:
4449
4450         New example.
4451
4452         * glib/examples/example-service.c (main): Move invocation
4453         of dbus_g_object_type_install_info earlier, to emphasize it
4454         should only be done once.
4455
4456         * glib/examples/example-signal-emitter.c (main): Ditto.
4457
4458         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4459
4460         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4461         (dbus_gvalue_marshal): Update prototypes.
4462
4463         * glib/dbus-gvalue.c: Update all marshalling functions to take
4464         const GValue instead of GValue.
4465         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4466         types.
4467         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4468         change.
4469         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4470         Return a newly-allocated string.
4471         (demarshal_proxy, demarshal_object_path, demarshal_object)
4472         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4473         we get the wrong types from message.
4474         (get_type_demarshaller): New function, extracted from
4475         dbus_gvalue_demarshal.
4476         (demarshal_collection): New function, demarshals generic
4477         collection.
4478         (dbus_gvalue_demarshal): Just invoke result of
4479         get_type_demarshaller.  Throw error if we don't have one.
4480         (marshal_garray_basic): Abort on OOM.
4481         (get_type_marshaller): New function, extracted from
4482         dbus_gvalue_marshal.
4483         (collection_marshal_iterator, marshal_collection): New functions;
4484         implements generic marshalling for an iteratable specialized
4485         collection.
4486         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4487
4488         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4489         G_TYPE_STRING.
4490         (ptrarray_value_from_gvalue): Ditto.
4491         (ptrarray_append, ptrarray_free): New functions.
4492         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4493         (slist_append, slist_end_append, slist_free): New functions.
4494         (dbus_g_type_specialized_builtins_init): Add append fuctions
4495         for GPtrArray and GSList.  Register GSList.
4496         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4497
4498         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4499         New.
4500         (dbus_g_type_specialized_collection_init_append)
4501         (dbus_g_type_specialized_collection_append)
4502         (dbus_g_type_specialized_collection_end_append): Prototype.
4503         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4504         end_append_func.
4505
4506         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4507         (dbus_g_type_specialized_collection_append) 
4508         (dbus_g_type_specialized_collection_end_append): New functions.
4509         (dbus_g_type_map_value_iterate): Take const GValue.
4510         (dbus_g_type_collection_value_iterate): Ditto.
4511
4512         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4513         _dbus_gvalue_utils_test.
4514         
4515         * glib/dbus-gtest.h: Prototype it.
4516
4517         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4518         using uninitialized owner_list.
4519         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4520         public API.
4521         (dbus_g_proxy_end_call_internal): Update to use error set
4522         from dbus_gvalue_demarshal instead of setting it here.
4523         (dbus_g_proxy_begin_call): Move return_if_fail here.
4524
4525         * glib/dbus-gobject.c (write_interface): Update for
4526         dbus_gtype_to_signature returning new string.
4527
4528         * configure.in: Add glib/examples/statemachine.
4529
4530 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4531
4532         * configure.in: Add a configure option, --with-console-auth-dir
4533         
4534         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4535         new setting.  Patch from Kay Sievers.
4536
4537 2005-07-06  Colin Walters  <walters@verbum.org>
4538
4539         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4540         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4541         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4542         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4543         Delete in favor of dbus_g_proxy_begin_call and
4544         dbus_g_proxy_cancel_call.
4545         (DBusGProxyCall, DBusGProxyCallNotify): New.
4546         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4547         data, and destroy function.  This replaces
4548         dbus_g_pending_call_set_notify.
4549         (dbus_g_proxy_cancel_call): Prototype.
4550         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4551
4552         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4553         pending_calls map.
4554         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4555         internal proxy for calls to the bus. Remove
4556         pending_nameowner_calls, now the internal proxy keeps track.
4557         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4558         pending_nameowner_calls.
4559         (got_name_owner_cb): Update prototype, and use
4560         dbus_g_proxy_end_call.
4561         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4562         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4563         favor of using internal proxy.
4564         (dbus_g_proxy_manager_unregister): Update to use
4565         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4566         (dbus_g_proxy_init): Initialize pending calls map.
4567         (dbus_g_proxy_constructor): New.
4568         (dbus_g_proxy_class_init): Add get/set property functions,
4569         constructor, and add NAME, PATH, and INTERFACE properties.
4570         (cancel_pending_call): New function.
4571         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4572         cancel them.
4573         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4574         (GPendingNotifyClosure): New structure.
4575         (d_pending_call_notify, d_pending_call_free): Moved here from
4576         dbus-glib.c.
4577         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4578         ordering.
4579         (manager_begin_bus_call): New internal function for talking to
4580         internal bus proxy.
4581         (dbus_g_proxy_new): Construct object using GObjet properties.
4582         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4583         Create closure of same, and insert call into map of pending calls.
4584         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4585         call.  Look up pending call in current set.  Remove it when we've
4586         completed.
4587         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4588         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4589         and destroy function directly.
4590         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4591         (dbus_g_proxy_call): Invoke with NULL callback.
4592         (dbus_g_proxy_cancel_call): New function, replaces
4593         dbus_g_pending_call_cancel.
4594
4595         * glib/dbus-gparser.c (validate_signature): Fix call to
4596         dbus_set_g_error.
4597
4598         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4599         New quark for attaching metadata to GType.
4600         (info_hash): Delete.
4601         (lookup_object_info): Look up using quark.
4602         (dbus_g_object_type_install_info): Check that a type is classed,
4603         not that it's an object.  Also just install type data using quark
4604         instead of using global hash.
4605
4606         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4607         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4608         (GPendingNotifyClosure): Delete.
4609         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4610         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4611
4612         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4613         client method generation until we can fix it...
4614         
4615         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4616         (load_from_service_thread_func): Ditto.
4617
4618         * tools/dbus-names-model.c (struct NamesModel): Hold
4619         DBusGProxyCall.
4620         (have_names_notify): Update prototype, use
4621         dbus_g_proxy_cancel_call.
4622         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4623
4624         * tools/dbus-monitor.c (filter_func): Update for print_message
4625         API change.
4626
4627         * test/glib/test-dbus-glib.c: Add more tests for async
4628         invocations.  Update many begin_call/end_call pairs to just use
4629         dbus_g_proxy_call.
4630
4631         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4632         allows us to dump print-introspect.c.
4633
4634         * tools/dbus-print-message.h (print_message): Add literal argument
4635         to print_message which is intended to allow printing arguments without
4636         metadata like "string=".
4637
4638         * tools/dbus-print-message.c (print_iter): Add literal argument.
4639         (print_message): Allow printing string messages literally.
4640
4641 2005-07-05  Colin Walters  <walters@verbum.org>
4642
4643         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4644         Remove value refcount leak, original patch from Jorn Baayen
4645         <jorn@openedhand.com>.  Also remove useless extra value in favor
4646         of prepending to value array directly.
4647
4648 2005-07-02  Colin Walters  <walters@verbum.org>
4649
4650         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4651
4652 2005-07-01  Colin Walters  <walters@verbum.org>
4653
4654         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4655         
4656         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4657         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4658         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4659         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4660
4661 2005-06-30  Colin Walters  <walters@verbum.org>
4662
4663         * test/glib/test-dbus-glib.c:
4664         * test/glib/test-service-glib.c:
4665         * test/glib/test-service-glib.xml: Update tests for new error
4666         setting bits, also add async tests (patch from Ross Burton).
4667
4668         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4669         DBUS_GLIB_THREADS_LIBS.
4670
4671         * glib/dbus-gproxy.c (get_name_owner)
4672         (dbus_g_pending_call_end_valist): Ditto.
4673
4674         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4675         domain (GQuark) to DBusGErrorInfo.  
4676         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4677         quark in error_metadata.  Take message interface as default
4678         error message interface.
4679         (gerror_to_dbus_error_message): Pass message interface.
4680         (dbus_set_g_error): Resurrected.
4681         (dbus_g_error_info_free): New function.
4682         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4683         of _peek to actually create the object class if it hasn't been
4684         created yet.
4685         (dbus_g_error_domain_register): New function.
4686
4687         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4688
4689         * glib/dbus-gparser.c (validate_signature): Ditto.
4690
4691         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4692         (dbus_g_error_domain_register): Prototype.
4693
4694         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4695         Update tests.
4696
4697 2005-06-29  Colin Walters  <walters@verbum.org>
4698
4699         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4700         DBUS_TYPE_G_OBJECT_PATH.
4701
4702         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4703         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4704         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4705         (dbus_g_object_path_get_g_type): New function.
4706         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4707         to DBUS_TYPE_G_OBJECT_PATH by default.
4708         (demarshal_proxy): Remove unused name variable.
4709         (demarshal_object_path, marshal_object_path): New functions.
4710         (demarshal_proxy_array, marshal_proxy_array): Delete.
4711         
4712         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4713         DBUS_TYPE_G_OBJECT_PATH to char *.
4714         (dbus_g_type_get_lookup_function): Map builtin
4715         DBUS_TYPE_G_OBJECT_PATH.
4716
4717         * test/glib/test-dbus-glib.c
4718         * test/glib/test-service-glib.c (my_object_objpath): 
4719         Adapt tests to new object path marshalling.
4720
4721 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4722
4723         * configure.in: force check for Python >= 2.4
4724
4725 2005-06-29  Colin Walters  <walters@verbum.org>
4726         
4727         Patch from Ross Burton <ross@openedhand.com>
4728         
4729         * glib/dbus-gobject.c (invoke_object_method): Unset object
4730         value in all cases, not only in async case.
4731
4732 2005-06-29  Colin Walters  <walters@verbum.org>
4733
4734         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4735         name_call for keeping track of any outgoing GetNameOwner call.
4736         Also add for_owner and associated.
4737         (struct _DBusGProxyManager): Add owner_names, which is hash table
4738         that maps a base name to a list of names it owns (that we're
4739         interested in).  Add pending_nameowner_calls which is a list of
4740         all outstanding GetNameOwner; avoids us having to iterate over
4741         every proxy.  Add unassociated_proxies which keeps track of name
4742         proxies with no associated name owner.
4743         (dbus_g_proxy_manager_unref): Destroy owner_names.
4744         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4745         name refcounts.
4746         (find_name_in_info, name_owner_foreach)
4747         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4748         (dbus_g_proxy_manager_monitor_name_owner)
4749         (dbus_g_proxy_manager_unmonitor_name_owner)
4750         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4751         New functions; they manipulate the owner_names mapping.
4752         (got_name_owner_cb): New function.
4753         (get_name_owner): New function, extracted from
4754         dbus_g_proxy_new_for_name_owner.
4755         (dbus_g_proxy_manager_register): For now we need to keep track of
4756         all NameOwnerChanged.  Also if the proxy is for a name, if we
4757         don't already know the name owner, queue a new GetNameOwner
4758         request and add it to our list of unassociated proxies.  Otherwise
4759         inc the refcount.
4760         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4761         cancel any pending GetNameOwner call, etc.
4762         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4763         the owner_names mapping to look up the current names for the
4764         signal source, and dispatch to any proxies for that name.
4765         (dbus_g_proxy_new): Initialize new members.
4766         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4767         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4768         (dbus_g_pending_call_end_valist): New function, extracted from
4769         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4770         but want to use the GLib infrastructure.  Also note how many
4771         arguments in reply were over.
4772         (dbus_g_pending_call_end): New function, just call
4773         dbus_g_pending_call_end_valist.
4774         (dbus_g_proxy_end_call_internal): Just call
4775         dbus_g_pending_call_end_valist.
4776
4777         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4778         of builtin marshaller for STRING_STRING_STRING.
4779
4780         * test/glib/test-dbus-glib.c: 
4781         * test/glib/test-service-glib.c:
4782         * test/glib/test-service-glib.xml:
4783         Extend tests to cover name proxies, destruction of owner proxies,
4784         etc.
4785         
4786         * glib/examples/example-signal-recipient.c
4787         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4788         
4789         * tools/dbus-send.c (main): Print D-BUS error name in addition
4790         to message.
4791
4792 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4793
4794         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4795         cmessage_function_handler): Patch from 
4796         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4797         by using the Py_GILState_Ensure/Release to synchronize with the
4798         python runtime.
4799         
4800 2005-06-28  Ray Strode  <rstrode@redhat.com>
4801
4802         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4803         babysitter helper process on last unref, bug #2813.
4804
4805 2005-06-27  Colin Walters  <walters@verbum.org>
4806
4807         * test/glib/test-dbus-glib.c: 
4808         * test/glib/test-service-glib.c:
4809         * test/glib/test-service-glib.xml:
4810         Test hash table signal emitting.
4811
4812         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4813         types to their fundamental basis types, since this is what
4814         marshallers operate on.  Also add an entry for VOID__BOXED.
4815         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4816
4817 2005-06-26  Havoc Pennington  <hp@redhat.com>
4818
4819         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4820         from Don Park
4821
4822 2005-06-26  Colin Walters  <walters@verbum.org>
4823
4824         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4825         (dbus_g_error_set): New public function from its ashes; used by
4826         both service-side method implementation and GLib bindings
4827         internals.
4828         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4829         (_dbus_glib_test): Add some tests.
4830
4831         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4832
4833         * test/glib/test-service-glib.c (my_object_throw_error): Use
4834         dbus_g_error_set.
4835
4836         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4837         errors thrown by dbus_g_error_set.
4838
4839         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4840
4841         * glib/dbus-gparser.c (validate_signature): Ditto.
4842
4843         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4844         (dbus_g_proxy_end_call_internal): Ditto.
4845
4846         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4847         converts DBUS_ERROR_x to DBUS_GERROR_x.
4848         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4849
4850         * doc/TODO: Remove error TODO.
4851
4852         * doc/dbus-tutorial.xml: Update with documentation about error
4853         handling.
4854
4855         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4856         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4857         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4858
4859 2005-06-22  Colin Walters  <walters@verbum.org>
4860         
4861         Patch from Ross Burton <ross@openedhand.com>
4862
4863         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4864
4865 2005-06-20  Colin Walters  <walters@verbum.org>
4866
4867         * configure.in: Add glib/examples.
4868
4869         * glib/Makefile.am: Add examples/
4870
4871         * glib/examples/.cvsignore
4872         * glib/examples/Makefile.am
4873         * glib/examples/example-client.c
4874         * glib/examples/example-service.c
4875         * glib/examples/example-service.xml
4876         * glib/examples/example-signal-emitter.c
4877         * glib/examples/example-signal-emitter.xml
4878         * glib/examples/example-signal-recipient.c:
4879         New files; GLib binding examples, ported from
4880         python/examples.
4881
4882 2005-06-20  Colin Walters  <walters@verbum.org>
4883
4884         * dbus/dbus-glib.h: 
4885         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4886         dbus_g_proxy_call.
4887
4888         * glib/dbus-binding-tool-glib.c: 
4889         * doc/dbus-tutorial.xml: 
4890         * test/glib/test-dbus-glib.c: Update for rename.
4891         
4892 2005-06-20  Colin Walters  <walters@verbum.org>
4893
4894         Patch suggested by Ross Burton <ross@openedhand.com>
4895
4896         * glib/dbus-gobject.c (export_signals): Free signal name.
4897         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4898         memory leak.  Add a bit of documentation.
4899         (dbus_g_method_return_error): Free context, and note we do
4900         so.
4901
4902 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4903
4904         * dbus/dbus-glib.h:
4905         * glib/dbus-gobject.c:
4906         * glib/dbus-gproxy.c:
4907         * glib/dbus-gvalue.c: Predeclare structs as 
4908         typedef struct _Something Something instead of 
4909         typedef struct Something Something, so we can 
4910         redeclare the prototypes. Other GNOME libraries 
4911         do this already.
4912
4913 2005-06-17  Colin Walters  <walters@verbum.org>
4914
4915         * tools/dbus-names-model.c (have_names_notify): Fix call
4916         to dbus_g_proxy_end_call.
4917         
4918 2005-06-17  Colin Walters  <walters@verbum.org>
4919
4920         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4921         spew warnings if we get malformed remote signals.
4922
4923         * glib/dbus-gobject.c (propsig_iterate): New function.
4924         (lookup_object_info): New function, extracted from
4925         lookup_object_and_method.
4926         (introspect_properties, introspect_signals): Delete; these
4927         are merged into write_interface.
4928         (write_interface): Write out signals and properties here;
4929         dump the org.gtk.object stuff and use the interface given
4930         in the introspection data blob.  Also fix up property XML.
4931         (lookup_values): New function.
4932         (introspect_interfaces): Gather a mapping from interface to a
4933         list of its methods, signals, and properties, then write out
4934         each interface.
4935         (lookup_object_and_method): Use lookup_object_info.
4936         (struct DBusGSignalClosure): Add interface.
4937         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4938         we can just use the constant data.
4939         (dbus_g_signal_closure_finalize): Don't free signal name.
4940         (signal_emitter_marshaller): Use interface from signal closure.
4941         (export_signals): Only export signals mentioned in introspection
4942         blob.
4943         (dbus_g_connection_register_g_object): Warn if we have no
4944         introspection data for an object.
4945         (funcsig_equal): Remove unused variable.
4946         (dbus_g_object_register_marshaller): Take varargs instead of
4947         list.
4948         (dbus_g_object_register_marshaller_array): New function,
4949         extracted from old dbus_g_object_register_marshaller.
4950
4951         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4952         signals and property data.
4953         (write_quoted_string): New function, extracted from generate_glue.
4954         (generate_glue): Write signals and properties to introspection
4955         blob.
4956
4957         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4958         exported_signals and exported_properties.
4959         (dbus_g_object_register_marshaller): Update prototype.
4960         (dbus_g_object_register_marshaller_array): Prototype.
4961         
4962         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4963
4964         * test/glib/test-service-glib.c: Add new test signals and method
4965         to emit them.
4966
4967         * test/glib/test-service-glib.xml: Add some test signals.
4968
4969         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4970         and my-object-marshal.h
4971         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4972         my-object-marshal.c.
4973         (my-object-marshal.c, my-object-marshal.h): Implement.
4974
4975         * test/glib/.cvsignore: Update.
4976
4977         * doc/TODO: Remove two GLib TODO items fixed by this
4978         patch.
4979
4980 2005-06-16  Colin Walters  <walters@verbum.org>
4981
4982         * doc/TODO: Update for GLib bindings.
4983         
4984 2005-06-16  Colin Walters  <walters@verbum.org>
4985
4986         * glib/dbus-binding-tool-glib.c:
4987         * glib/dbus-gobject.c:
4988         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4989         from Ross Burton, for his GLib bindings work.
4990
4991 2005-06-16  Colin Walters  <walters@verbum.org>
4992
4993         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4994         to iterate instead of walking to G_TYPE_INVALID.
4995
4996         Patch based on a patch from Ryan Gammon.
4997
4998 2005-06-16  Colin Walters  <walters@verbum.org>
4999
5000         * bus/bus.c (bus_context_new): Set parser to NULL
5001         after we unref it (Patch from Chris Boscolo, #2174).
5002         
5003 2005-06-16  Colin Walters  <walters@verbum.org>
5004
5005         * python/dbus_bindings.pyx.in: Import size_t,
5006         __int64_t, __uint64_t, and __signed.
5007
5008         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
5009         Define cmsg struct, output it.
5010         (_dbus_read_credentials_unix_socket):
5011         Use cmsg struct.
5012         
5013         Patch from Joe Markus Clarke for FreeBSD support.
5014         
5015 2005-06-16  Colin Walters  <walters@verbum.org>
5016
5017         * tools/dbus-send.c (append_array): Use strtok.
5018         (append_dict): New function.
5019         (type_from_name): New function, extracted from main.
5020         (main): Handle sending dicts.
5021
5022         * tools/dbus-print-message.c (print_iter): Print dict
5023         entries.
5024         
5025 2005-06-16  Colin Walters  <walters@verbum.org>
5026
5027         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
5028         values as the empty string (#2948).
5029         
5030 2005-06-16  Colin Walters  <walters@verbum.org>
5031
5032         * dbus/Makefile.am:
5033         * mono/doc/Makefile.am:
5034         * test/glib/Makefile.am:
5035
5036         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
5037
5038 2005-06-16  Colin Walters  <walters@verbum.org>
5039
5040         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
5041         header byte order from expected byte order (Patch from Chris Wilson, #3475).
5042
5043         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
5044         Increment pointer after swapping fixed array.  Add assertion
5045         for array length.
5046                 
5047 2005-06-15  Colin Walters  <walters@verbum.org>
5048
5049         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
5050         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
5051         
5052 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5053
5054         * NEWS: Update to 0.34
5055
5056 2005-06-15  David Zeuthen  <davidz@redhat.com>
5057
5058         * configure.in (LT_CURRENT): Revert back to 1 as the library
5059         hasn't changed and we've certainly not committed to protocol
5060         stability yet.  All this does is to break ABI. See commit note
5061         from hp@redhat.com 2005-05-05 for details.
5062         
5063 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5064
5065         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
5066         (_dbus_connection_run_builtin_filters): New method
5067         (dbus_connection_dispatch): Run the builtin filters which in turn
5068         runs the peer filter which handles Ping messages.
5069
5070         * doc/TODO: 
5071          - Ping isn't handled: This patch fixes it
5072          
5073          - Add a test case for the Ping message: added TODO item
5074
5075 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5076
5077         * dbus/dbus-message.c:
5078         (dbus_message_has_path): New method
5079         (dbus_message_has_interface): New method
5080         (dbus_message_has_member): New method
5081
5082         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
5083         New method
5084
5085         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
5086         the keyring directory is private to the user
5087
5088         * doc/TODO:
5089          - The convenience functions in dbus-bus.h should perhaps have
5090          the signatures that they would have if they were autogenerated
5091          stubs. e.g. the acquire service function. We should also evaluate
5092          which of these functions to include, in light of the fact that
5093          GLib/Qt native stubs will probably also exist.: Punted
5094
5095          - add dbus_message_has_path(), maybe has_member/interface:
5096          fixed in this patch
5097
5098          - in dbus-keyring.c, enforce that the keyring dir is not
5099          world readable/writable: Fixed in this patch
5100
5101 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5102
5103         * dbus/dbus-marshal-validate.h: Added a new validation
5104         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
5105         out of memory errors when validating signitures
5106
5107         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
5108         in places where we previously used DBUS_VALID and a FALSE return 
5109         value to indicate OOM
5110         
5111         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
5112         Use a stack to track the number of elements inside containers.  The 
5113         stack values are then used to validate that dict entries have only two
5114         elements within them.
5115         (validate_body_helper): check the reason for failure when validating
5116         varients
5117         
5118         * dbus/dbus-message.c (load_message): use 
5119         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
5120         DBUS_VALID and a FALSE return value to indicate OOM
5121
5122         * doc/TODO: remove "- validate dict entry number of fields" as this
5123         patch fixes it
5124
5125 2005-06-14  David Zeuthen  <davidz@redhat.com>
5126
5127         * bus/bus.c (process_config_every_time): Drop existing conf-dir
5128         watches (if applicable) and add new watches
5129
5130         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
5131         (main): Setup SIGIO signal handler if using D_NOTIFY
5132
5133         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
5134
5135         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
5136         (merge_included): Also merge conf_dirs list
5137         (bus_config_parser_unref): Clear conf_dirs list
5138         (include_dir): Add directory to conf_dirs list
5139         (bus_config_parser_get_conf_dirs): New function
5140
5141         * bus/dir-watch.[ch]: New files
5142
5143         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
5144
5145         * configure.in: Add checks for D_NOTIFY on Linux
5146
5147 2005-06-14  Colin Walters  <walters@verbum.org>
5148
5149         * glib/dbus-binding-tool-glib.c:
5150         * glib/dbus-gobject.c:
5151         * glib/dbus-gvalue.c: Fix indentation and brace style.
5152         
5153 2005-06-14  Ross Burton <ross@openedhand.com>.
5154
5155         * glib/dbus-glib.h: Make DBusGMethodInvocation
5156         a private structure.  Rearrange prototypes a bit.
5157         
5158         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
5159         documentation for first_arg_type.
5160         
5161         * glib/dbus-gobject.c: Move DBusGMethodInvocation
5162         here, add documentation.  Move dbus_g_method_return
5163         and dbus_g_method_return_error into public API
5164         section.
5165
5166 2005-06-14  Colin Walters  <walters@verbum.org>
5167
5168         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
5169         Add missing return statements, noticed by Ross Burton.
5170         
5171 2005-06-13  Ross Burton <ross@openedhand.com>.
5172
5173         * glib/dbus-gobject.c: Handle errors on message
5174         demarshalling by sending error message back.
5175         * glib/dbus-gvalue.c: Initialize return variables.
5176
5177 2005-06-13  Colin Walters  <walters@verbum.org>
5178
5179         * glib/Makefile.am: Fix thinko in last patch.
5180
5181 2005-06-13  Colin Walters  <walters@verbum.org>
5182
5183         * glib/Makefile.am: Move dbus-gtype-specialized.c
5184         and dbus-gtype-specialized.h into a _HEADERS variable,
5185         install them.
5186
5187 2005-06-12  Colin Walters  <walters@verbum.org>
5188
5189         Async signals and various bugfixes and testing by
5190         Ross Burton <ross@openedhand.com>.
5191
5192         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
5193         (dbus_gvalue_genmarshal_name_from_type)
5194         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
5195         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
5196         (dbus_g_value_types_init, dbus_gtype_from_signature)
5197         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
5198         (dbus_gtypes_from_arg_signature): New function prototypes.
5199         (dbus_gvalue_demarshal): Take context and error arguments.
5200         (dbus_gvalue_demarshal_variant): New function.
5201         (dbus_gvalue_demarshal_message): New function.
5202         (dbus_gvalue_store): Delete.
5203
5204         * glib/dbus-gvalue.c:
5205
5206         File has been almost entirely rewritten; now we special-case
5207         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
5208         hash tables correctly, etc.  Full support for recursive values
5209         is not yet complete.
5210
5211         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
5212         argument of signal to G_TYPE_POINTER since we now pass a
5213         structure.
5214         (lookup_g_marshaller): Delete in favor of
5215         _dbus_gobject_lookup_marshaller.
5216         (marshal_dbus_message_to_g_marshaller): Use
5217         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
5218         to handle remote signal callbacks.
5219         (dbus_g_proxy_new_from_proxy): New function; creates a new
5220         DBusGProxy by copying an existing one.
5221         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
5222         (dbus_g_proxy_get_path): New functions.
5223         (dbus_g_proxy_marshal_args_to_message): New function;
5224         factored out of existing code.
5225         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
5226         from a varargs array.
5227         (dbus_g_proxy_begin_call_internal): New function.
5228         (dbus_g_proxy_end_call_internal): New function.
5229         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
5230         as arguments; simply invoke dbus_g_proxy_begin_call_internal
5231         after collecting args into value array.
5232         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
5233         invoke dbus_g_proxy_end_call_internal.
5234         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
5235         end_call_internal.
5236         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
5237         types.
5238         (array_free_all): New function.
5239         (dbus_g_proxy_add_signal): Take GTypes.
5240
5241         * glib/dbus-gobject.h:
5242         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5243         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
5244         Prototype.
5245
5246         * glib/dbus-gobject.c: Add a global marshal_table hash which
5247         stores mappings from type signatures to marshallers.  Change lots
5248         of invocations of dbus_gtype_to_dbus_type to
5249         dbus_gtype_to_signature.
5250         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5251         (introspect_signals): Fix test for query.return_type.
5252         (set_object_property): Update invocation of dbus_gvalue_demarshal.
5253         (invoke_object_method): Many changes.  Handle asynchronous
5254         invocations.  Convert arguments with
5255         dbus_gvalue_demarshal_message.  Handle errors.  Use
5256         DBusSignatureIter instead of strlen on args. Handle all arguments
5257         generically.  Special-case variants.
5258         (dbus_g_method_return, dbus_g_method_return_error): New function.
5259         (DBusGSignalClosure): New structure, closes over signal
5260         information.
5261         (dbus_g_signal_closure_new): New function.
5262         (dbus_g_signal_closure_finalize): New function.
5263         (signal_emitter_marshaller): New function; is special marshaller
5264         which emits signals on bus.
5265         (export_signals): New function; introspects object signals and
5266         connects to them.
5267         (dbus_g_object_type_install_info): Take GType instead of
5268         GObjectClass.
5269         (dbus_g_connection_register_g_object): Invoke export_signals.
5270         (dbus_g_connection_lookup_g_object): New function.
5271         (DBusGFuncSignature) New structure; used for mapping type
5272         signatures to marshallers.
5273         (funcsig_hash): New function; hashes DBusGFuncSignature.
5274         (funcsig_equal): New function; compares DBusGFuncSignature.
5275         (_dbus_gobject_lookup_marshaller): New function.
5276         (dbus_g_object_register_marshaller): New function; used to
5277         register a marshaller at runtime for a particular signature.
5278
5279         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
5280
5281         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
5282         which notes a server method implementation should be
5283         asynchronous.
5284
5285         * glib/dbus-binding-tool-glib.c
5286         (dbus_binding_tool_output_glib_server): Call
5287         dbus_g_value_types_init.
5288         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
5289         variants specially.
5290         (dbus_g_type_get_lookup_function): Turn GType into an invocation
5291         of a lookup function.
5292         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
5293         (write_untyped_out_args): New method; write output arguments.
5294         (write_formal_declarations_for_direction): Function for
5295         writing prototypes.
5296         (write_formal_parameters_for_direction): Function for
5297         writing implementations.
5298         (write_typed_args_for_direction): Function for writing
5299         arguments prefixed with GTypes.
5300         (write_async_method_client): Write out async version
5301         of method.
5302
5303         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
5304         (dbus_g_type_get_marshal_name): Move mapping from GType
5305         to marshal name into here.
5306         (dbus_g_type_get_c_name): Move into here.
5307         (compute_marshaller): Convert signature to type with
5308         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5309         (compute_marshaller_name): Ditto.
5310         (compute_marshaller): Handle async signal annotations.
5311         (gather_marshallers): Return if we don't have a known
5312         prefix.
5313         (generate_glue): Collect introspection blob here, and
5314         write all of the blob at the end.  This allows an object
5315         with multiple interfaces to work.
5316         Mark async methods in introspection blob.
5317
5318         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5319         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5320         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5321
5322         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5323         avoids people accidentally using DBUS_TYPE_* which should
5324         not be necessary anymore.
5325         Do include dbus-gtype-specialized.h, which are utilities
5326         for GLib container types.
5327         Add various #defines for types such as
5328         DBUS_TYPE_G_BOOLEAN_ARRAY.
5329         (DBusGValueIterator, DBusGValue): Define, not fully used
5330         yet.
5331         (dbus_g_value_get_g_type): Type for recursive value.
5332         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5333         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5334         (dbus_g_value_free): Prototypes.
5335         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5336         (dbus_g_proxy_set_interface): Prototype.
5337         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5338         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5339         types.
5340         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5341         Accessors.
5342         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5343         doing async invocations.
5344         (dbus_g_method_return, dbus_g_method_return_error):
5345         Prototypes.
5346         * doc/dbus-tutorial.xml: Update GLib section.
5347         
5348         * tools/dbus-viewer.c (load_child_nodes): Update
5349         for new invocation type of dbus_g_proxy_end_call.
5350         (load_from_service_thread_func): Ditto.
5351
5352         * tools/print-introspect.c (main): Ditto.
5353
5354         * tools/dbus-names-model.c (have_names_notify)
5355         (names_model_reload, names_model_set_connection)
5356         Use GTypes.
5357
5358         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5359         needed since Python bindings use GLib bindings.
5360
5361         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5362         Add --prefix argument.
5363
5364         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5365         unneeded --ignore-unsupported arg.
5366         
5367         * test/glib/test-service-glib.c: 
5368         * test/glib/test-service-glib.xml:
5369         * test/glib/test-dbus-glib.c: Add many more tests.
5370
5371 2005-06-06  David Zeuthen  <davidz@redhat.com>
5372
5373         * doc/TODO: Add item about need to remove deprecated functions.
5374
5375         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5376
5377         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5378         to repair the ABI which was broken with the last commit.
5379
5380 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5381
5382         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5383         (dbus_connection_disconnect): renamed to dbus_connection_close 
5384         for API symmetry with dbus_connection_open
5385         (_dbus_connection_open_internal): 
5386         s/dbus_connection_disconnect/dbus_connection_close
5387
5388         * dbus/dbus-bus.c (dbus_bus_get):
5389         s/dbus_connection_disconnect/dbus_connection_close
5390
5391         * bus/connection.c (bus_connections_unref, 
5392         bus_connections_setup_connection, bus_connections_expire_incomplete):
5393         s/dbus_connection_disconnect/dbus_connection_close
5394
5395         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5396         kill_client_connection_unchecked, check_hello_connection):
5397         s/dbus_connection_disconnect/dbus_connection_close
5398
5399         * bus/bus.c (new_connection_callback):
5400         s/dbus_connection_disconnect/dbus_connection_close
5401
5402         * tools/dbus-send.c (main):
5403         s/dbus_connection_disconnect/dbus_connection_close
5404
5405         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5406         s/dbus_connection_disconnect/dbus_connection_close
5407         
5408         * test/test-service.c (path_message_func, filter_func):
5409         s/dbus_connection_disconnect/dbus_connection_close
5410         
5411         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5412         
5413 2005-05-25  Colin Walters  <walters@verbum.org>
5414
5415         * dbus/dbus-protocol.h: Move various bus service #defines such
5416           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5417           dbus/dbus-shared.h.
5418         * dbus/dbus-shared.h: Various defines moved here.
5419         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5420
5421 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5422
5423         * python/__init__.py: Python bindings deserve a minor version
5424         update.  Upped to (0, 40, 2)
5425
5426 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5427
5428         * python/decorators.py: add explicitly_pass_message decorator
5429         for passing in the dbus message as keyword for edge case signal
5430         handling
5431
5432         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5433         to conform with what dbus expects for match rules
5434         (SignalMatchRule.execute): add the dbus message as a keyword
5435         if the signal handler has requested it
5436
5437         * python/examples/example/signal-recipient.py: added some more
5438         examples on how to hook up to signals
5439
5440 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5441
5442         * python/decorators.py: import dbus_bindings
5443
5444         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5445         SignalMatchNode): new classes that implement wildcard signal
5446         callback matching using a tree lookup. Heavily modified from a
5447         patch sent by Celso Pinto (fd.o bug #3241)
5448
5449         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5450         use new match classes to handle signals.
5451
5452 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5453         
5454         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5455
5456 2005-05-18  Havoc Pennington  <hp@redhat.com>
5457
5458         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5459         gettext. Not really worth requiring yet perhaps, but any
5460         production quality 1.0 would require it so we should go ahead and
5461         get things set up. We do have a couple token calls to
5462         bindtextdomain in the code already.
5463
5464 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5465
5466         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5467         when using recursive g_main_loops
5468
5469         * python/_dbus.py (class Bus): add the ProxyObjectClass
5470         alias for ProxyObject to make it easier for the Twisted 
5471         networking framework to integrate dbus.
5472
5473         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5474         alias for ProxyMethod to make it easier for the Twisted 
5475         networking framework to integrate dbus. 
5476
5477 2005-05-11  Ross Burton  <ross@openedhand.com>
5478
5479         * glib/dbus-glib-tool.c: Add --prefix argument.
5480         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5481         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5482         Add prefix argument.
5483         (generate_glue): Pass prefix argument down.
5484         (dbus_binding_tool_output_glib_server): Pass prefix to
5485         glib-genmarshal.
5486         
5487 2005-05-11  Colin Walters  <walters@verbum.org>
5488
5489         * tools/dbus-send.c (append_array): New function.
5490         (append_arg): Broken out from main.
5491         (main): Add cheesy hack to send arrays and variants.
5492         (usage): Update.
5493         * tools/dbus-print-message.c (print_iter): Broken out
5494         from main.
5495
5496 2005-05-11  Colin Walters  <walters@verbum.org>
5497
5498         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5499         New function, returns signature string for signature iter.
5500         * dbus/dbus-signature.h: Prototype it.
5501         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5502         New function, returns signature string for message iter.
5503         (dbus_message_iter_get_array_len): New function, returns
5504         length of array.
5505         (dbus_message_iter_get_fixed_array): Fix assertion; this
5506         function should be used when the iter is pointing to the
5507         contents of an array
5508         * dbus/dbus-message.h: Prototypes.
5509         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5510         New function; returns length of an array.
5511         * dbus/dbus-marshal-recursive.h: Prototype it.
5512         
5513 2005-05-11  Colin Walters  <walters@verbum.org>
5514
5515         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5516         compilation error.
5517         
5518 2005-05-08  Havoc Pennington  <hp@redhat.com>
5519
5520         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5521         daemon's pid, not the parent's pid, to the file descriptor.
5522         Reported by Taj Morton.
5523
5524 2005-05-05  Havoc Pennington  <hp@redhat.com>
5525
5526         * configure.in (LT_*): add notes on how the libtool versioning
5527         works to save thinking. Increment soname to indicate protocol
5528         breakage (though really the library interface hasn't changed I
5529         guess)
5530
5531         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5532         verify the GUID received from server matches what we were
5533         expecting, if we had an expectation
5534
5535         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5536         (_dbus_auth_get_guid_from_server): new function
5537         (send_begin): parse the OK args
5538
5539         * doc/dbus-specification.xml: add GUID to the auth protocol
5540
5541 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5542
5543         * Fix my name in previous changelog ;)
5544
5545         * python/proxies.py (ProxyObject.__getattr__): add further patch
5546         from Anthony Baxter to throw an AttributeError when python 
5547         __special__ functions are called instead of marshling them over 
5548         the bus (Bug#1685 comment 3).
5549
5550 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5551
5552         * python/Makefile.am: changed to use pyexecdir for the binding
5553         shared libraries (Bug#2494)
5554
5555         * python/exceptions.py: bring exceptions over from the bindings
5556         so they can be used in applications (Bug#2036)
5557         Make all exceptions derive from DBusException
5558
5559         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5560         of classes so that print obj doesn't throw an exception (Bug #1685)
5561
5562 2005-05-03  Ross Burton  <ross@openedhand.com>
5563
5564         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5565         Return if we get an error during registration.  Set up a
5566         weak reference on object to unregister if object is destroyed.
5567         (unregister_gobject): New function.
5568         
5569 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5570
5571         * python/dbus_bindings.pyx.in: 
5572         - added new type classes for hinting to the marashaler what type 
5573         to send over the wire
5574         - added int16 and uint16 marshalers
5575         - Fixed a bug in the type constants that caused int32 to go out
5576         as uint16 over the wire
5577         * python/dbus.py: split up into different files and renamed _dbus.py
5578         * python/__init__.py, python/_util.py, python/decorators.py, 
5579         python/exceptions.py, python/proxies.py, python/services.py,
5580         python/types.py: new files split off from dbus.py
5581         * python/Makefile.am: Add new files, remove dbus.py and 
5582         install all python files to <python module dir>/dbus
5583         * python/examples/*: Added #!/usr/bin/env python to the top of
5584         every example.  Patch provided by Tatavarty Kalyan
5585
5586 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5587
5588         * NEWS: Update to 0.33
5589
5590 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5591
5592         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5593         method for doing async calls
5594         (_pending_call_notification): New C function for handling pendning call
5595         callbacks
5596         (set_notify): New method for setting pending call notification
5597         
5598         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5599         Async capabilities added to remote method calls
5600         (Sender): class removed
5601         (RemoteService): class removed
5602         (ObjectTree): class removed for now
5603         (RemoteObject): Renamed to ProxyObject
5604         (RemoteMethod): Renamed to ProxyMethod
5605         (method): Decorator added for decorating python methods as dbus methods
5606         (signal): Decorator added for decorating python methods as signal emitters
5607         (ObjectType): Metaclass added for generating introspection data and the
5608         method callback vtable
5609         (Interface): Wrapper class added to wrap objects in a dbus interface
5610         (Object): Uses ObjectType as its metaclass and exports Introspect
5611         of the org.freedesktop.DBus.Introspectable interface
5612         (ValidationException, UnknownMethodException): new exceptions
5613
5614         * python/examples/*: Modified to fit with the new bindings
5615
5616 2005-04-23  Havoc Pennington  <hp@redhat.com>
5617
5618         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5619         reported by Tony Houghton
5620
5621         * test/test-service.c (main): test
5622         dbus_connection_get_object_path_data()
5623
5624         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5625         the exact_match
5626         (_dbus_object_tree_get_user_data_unlocked): new function used by
5627         dbus_connection_get_object_path_data()
5628         (do_register): add assertion test for get_user_data_unlocked
5629         (object_tree_test_iteration): more tests
5630
5631         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5632         new function from Dan Reed to let you get the user data from 
5633         dbus_connection_register_object_path()
5634
5635 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5636
5637         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5638         in numerous places that did not account for the NULL terminator
5639         (signature_from_seed): changed the manual string copy loop to 
5640         just use strcpy instead
5641         make check should now pass
5642
5643 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5644
5645         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5646         so that it allows messages that are not signals to pass in 
5647         NULL as the interface.
5648
5649 2005-04-18  David Zeuthen  <davidz@redhat.com>
5650
5651         * glib/dbus-gmain.c (io_handler_destroy_source): 
5652         (timeout_handler_destroy_source, connection_setup_free): 
5653         Also unref the source to avoid memory leaks.
5654
5655 2005-04-13  David Zeuthen  <davidz@redhat.com>
5656
5657         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5658         more reasonable, yet still totally arbitrary, value :-). 
5659
5660 2005-04-13  David Zeuthen  <davidz@redhat.com>
5661
5662         * doc/TODO: Added an "important for 1.0" item about selinux
5663         allow/deny messages
5664
5665 2005-04-13  David Zeuthen  <davidz@redhat.com>
5666
5667         * bus/selinux.c: Add c-file-style to top of file
5668         (log_audit_callback): Don't free the data here anymore
5669         (bus_selinux_check): Don't take spid and tpid since appending
5670         that to auxdata may OOM.
5671         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5672         to the caller if we are OOM by taking an error object.
5673         (bus_selinux_allows_send): -do-
5674
5675         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5676         and bus_selinux_allows_send
5677
5678         * bus/bus.c (bus_context_check_security_policy): Pass error and
5679         pass on OOM thrown by bus_selinux_allows_send()
5680
5681         * bus/services.c (bus_registry_acquire_service): Pass error and
5682         pass on OOM thrown by bus_selinux_allows_acquire_service()
5683
5684 2005-04-13  Havoc Pennington  <hp@redhat.com>
5685
5686         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5687         message at a time to avoid monopolizing the main loop, bug 
5688         #2953 from Benjamin Otte
5689
5690 2005-04-09  Havoc Pennington  <hp@redhat.com>
5691
5692         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5693         possible overlap, fix from Daniel Reed
5694         (fixup_alignment): fix signedness warnings
5695         (_dbus_string_append_unichar): ditto
5696
5697 2005-04-09  Havoc Pennington  <hp@redhat.com>
5698
5699         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5700
5701         * glib/dbus-glib-tool.c (main): fix warning
5702
5703         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5704
5705         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5706         add a new function that can be used in simple applications that
5707         don't have a main loop and are willing to block
5708
5709 2005-04-05  David Zeuthen  <davidz@redhat.com>
5710
5711         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5712
5713         * glib/dbus-gmain.c:
5714         (io_handler_destroy_source): Remove from list of IO handlers
5715         of the ConnectionSetup object
5716         (timeout_handler_destroy_source): -do- for timeout handlers
5717         (io_handler_source_finalized): Don't remove from list since
5718         we now do that in io_handler_destroy_source(). Renamed from
5719         io_handler_source_destroyed
5720         (timeout_handler_source_destroyed): -do- for timeout handlers
5721         (connection_setup_free): It is now safe to iterate over all
5722         IO and timeout handlers as the _destroy_source removes them
5723         from the list synchronously
5724
5725 2005-03-30  Havoc Pennington  <hp@redhat.com>
5726
5727         * configure.in: change check to gtk 2.4
5728
5729         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5730         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5731         to 2.4
5732
5733 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5734
5735         * News: Update 0.32
5736
5737         * HACKING: Fixed realease instructions.  configure.in should be updated to
5738           the next release by the person who made the last release.
5739
5740 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5741
5742         * python/lvalue_cast_post_process.py - removed.  Patch has been
5743           submitted to Pyrex maintainers that fixes gcc4.0 errors
5744
5745         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5746
5747 2005-03-24  Daniel Reed  <n@ml.org>
5748
5749         * tools/Makefile.am: Make print-introspect and
5750         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5751
5752 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5753
5754         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5755
5756         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5757           had in Red Hat packages for a while but for some reason never 
5758           got merged upstream
5759           (_dbus_is_a_number): New checks if a string
5760           can be converted to a number and does the conversion if it can
5761           (_dbus_user_database_lookup): Add check to see if the given username
5762           is a udi.  This allows udi's to be used instead of usernames in the
5763           config file.
5764           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5765           is a gdi.  This allows gdi's to be used instead of groupnames in the
5766           config file.
5767
5768 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5769
5770         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5771           code so that it compiles with gcc4.0
5772
5773         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5774           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5775           results back to dbus_binding.c
5776
5777 2005-03-20  Colin Walters  <walters@verbum.org>
5778
5779         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5780
5781         * configure.in: Require GTK+ 2.6.
5782         
5783 2005-03-20  Colin Walters  <walters@verbum.org>
5784
5785         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5786
5787 2005-03-17  Tom Parker  <palfrey@tevp.net>
5788
5789         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5790         print DBUS_UID_UNSET; instead print passed username.  Also
5791         be sure to actually use gid looked up in cache.
5792         
5793         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5794         for DBUS_GID_UNSET and groupname.
5795
5796 2005-03-17  Colin Walters  <walters@verbum.org>
5797
5798         * bus/print-introspect.c: Move to tools/.
5799         * bus/run-with-tmp-session-bus.sh: Ditto.
5800         
5801         * glib/Makefile.am (dbus-glib-bindings.h): Move
5802         generation to tools/Makefile.am.
5803
5804         * test/glib/run-test.sh: Update to handle move
5805         of run-with-tmp-session-bus.sh.
5806
5807         * test/glib/test-service-glib.c: Update to handle
5808         move of dbus-glib-bindings.h.
5809
5810         * tools/print-introspect.c: Moved here
5811         from bus/, and ported to GLib bindings.
5812
5813         * tools/run-with-tmp-session-bus.sh: Moved here
5814         from bus/.
5815
5816         * tools/Makefile.am: Generate dbus-glib-bindings.h
5817         and dbus-bus-introspect.xml here.
5818
5819         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5820         Update.
5821
5822 2005-03-17  Colin Walters  <walters@verbum.org>
5823
5824         * bus/driver.c (write_args_for_direction): Use
5825         _dbus_string_get_const_data to retrieve string;
5826         _dbus_string_get_const_data_len doesn't actually return
5827         a NULL-terminated substring.
5828
5829         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5830         (main): Change to use org_freedesktop_DBus_request_name
5831         instead of using g_proxy_begin_call/end_call.
5832
5833 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5834
5835         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5836         generating the finalizer.  Fixes from Ben Maurer.
5837
5838 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5839
5840         * mono/BusDriver.cs: Update method names: ListServices
5841         becomes ListNames; GetOwner becomes GetNameOwner.
5842
5843         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5844         onto the eval stack when removing the delegate.
5845
5846 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5847
5848         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5849         LT_CURRENT.  Set it to the autoconf variable.
5850                                                                                 
5851         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5852         classes that disconnects the signal handler delegate from the
5853         service object.  Fixes a big leak of proxy objects on the
5854         client side of things.  Patch from Ben Maurer
5855         <bmaurer@ximian.com>
5856
5857 2005-03-12  Colin Walters  <walters@verbum.org>
5858
5859         * bus/driver.c (write_args_for_direction): New function,
5860         parses a type signature into arguments and outputs to
5861         XML.
5862         (bus_driver_handle_introspect): Use it instead of
5863         hardcoding XML for certain signatures.
5864         
5865         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5866         dependency on dbus-daemon.
5867
5868         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5869         argument, pass it to dbus_binding_tool_output_glib_client.
5870
5871         * glib/dbus-binding-tool-glib.c
5872         (generate_client_glue): Protect against multiple inclusion.
5873         (dbus_binding_tool_output_glib_client): Add
5874         G_BEGIN_DECLS/G_END_DECLS.
5875
5876         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5877         Change to just take iface prefix directly.
5878         (write_formal_parameters): Clarify error message.
5879         (check_supported_parameters): New function; checks to see type
5880         signatures of method parameters are supported.
5881         (generate_client_glue): Handle ignore_unsupported flag.
5882         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5883         parameter.
5884
5885         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5886         --ignore-unsupported by default until glib bindings
5887         support arrays.
5888
5889 2005-03-11  Colin Walters  <walters@verbum.org>
5890
5891         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5892         install it.
5893
5894         * bus/print-introspect.c: New file; prints introspection
5895         data for a given name and object path.
5896
5897         * bus/run-with-tmp-session-bus.sh: New file, refactored
5898         from test/glib/run-test.sh.  Creates a temporary session
5899         bus and runs another program.
5900
5901         * test/glib/run-test.sh: Refactor to invoke
5902         run-with-tmp-session-bus.sh.
5903
5904         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5905         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5906         macros instead of hardcoding.
5907
5908         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5909
5910 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5911
5912         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5913         this unref; it doesn't match up evenly in some codepaths.
5914         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5915         this evenly matches with the ref near the top of this function.
5916
5917 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5918
5919         * dbus/dbus-object-tree.c
5920         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5921         and we try to unregister a path that's not registered, still go
5922         through the process of unlocking and don't just return.
5923
5924 2005-03-09  Colin Walters  <walters@verbum.org>
5925
5926         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5927         to this are generated for client-side wrappers.  Invokes a
5928         D-BUS method and returns reply values.  
5929
5930         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5931         function; writes signature string for argument direction.
5932         (write_args_for_direction): Change to pass input values directly
5933         instead of via address, and fix indentation.
5934         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5935         make generated wrappers inlineable.
5936
5937         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5938         note about using dbus_type_is_fixed.
5939
5940         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5941         dbus/dbus-signature.c as dbus_type_is_fixed.
5942
5943         All callers updated.
5944
5945         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5946         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5947
5948         * dbus/dbus-signature.h: Prototype.
5949
5950         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5951         error printf code.
5952
5953         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5954         appropriate instead of just freeing it.
5955         (main): Free returned strings using g_free.
5956
5957         * test/glib/Makefile.am (test-service-glib-glue.h)
5958         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5959
5960         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5961         simply maps a simple D-BUS type to GType.
5962         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5963         GType.
5964         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5965         initialize the value with it.
5966         (dbus_gvalue_binding_type_from_type): Unused, delete.
5967         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5968         various types instead of unmarshalling to value data directly.
5969         Remove can_convert boolean.
5970         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5971         returning directly instead of using can_convert boolean.
5972         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5973         Stores a GValue in a pointer to a value of its corresponding C
5974         type.
5975
5976         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5977         add dbus_gvalue_store.
5978
5979 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5980
5981         Fix a bunch of lifecycle and memory management problems
5982         in the mono bindings.
5983
5984         * mono/Arguments.cs (Arguments): Implement IDisposable
5985
5986         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5987         strictly a static class.
5988
5989         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5990         delegates into this file.
5991         (Connection): Implement IDisposable.
5992         (Dispose): Disconnect the connection and set the raw connection
5993         pointer to IntPtr.Zero.
5994         (~Connection): Call Dispose().
5995         (RegisterObjectPath): Added.  Manages the registration of object
5996         paths so we can cleanly disconnect them at dispose/finalize time.
5997         (UnregisterObjectPath): Ditto.
5998         (set_RawConnection): Unregister all of the object paths when
5999         changing the underlying DBusConnection.  Add them back onto the
6000         new connection, if any.
6001
6002         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
6003         more unmanaged resources anymore, so it's not necessary.  Move all
6004         the DBusObjectPathVTable stuff out of here.
6005         (Handler): Save references to our delegates so that they don't get
6006         finalized.  Call Connection.RegisterObjectPath() instead of
6007         dbus_connection_register_object_path() directly.
6008         (Message_Called): Dispose the message after we're finished with
6009         it.
6010
6011         * mono/Message.cs (Message): Implement IDisposable.
6012         (Dispose): Dispose the Arguments, and set the RawMessage to
6013         IntPtr.Zero.
6014         (SendWithReplyAndBlock): We own the ref to the reply that comes
6015         back from dbus_connection_send_with_reply_and_block() so add a
6016         comment about that and unref it after we've constructed a managed
6017         MethodReturn class around it.  Fixes a big, big leak.
6018
6019         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
6020         method.
6021         (BuildSignalHandler): After we've sent the Signal message, dispose
6022         of it.
6023         (BuildMethod): Dispose of the method call and reply messages after
6024         we've sent the message and extracted the data we want from the
6025         reply.
6026
6027         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
6028         anymore.
6029         (Service_FilterCalled): Dispose of the message after we're
6030         finished with it.
6031
6032 2005-03-08  Joe Shaw  <joeshaw@novell.com>
6033
6034         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
6035         After we attach our pending call to the connection, unref
6036         it.  Fixes a leak.
6037  
6038         * mono/Connection.cs (set_RawConnection): Disconnect our
6039         filter and match callbacks from the old connection and
6040         reconnect them to the new connection, if any.
6041
6042         * mono/DBusType/Array.cs: "Code" is a static member, so
6043         don't use "this" to refer to it.  Fix for stricter checking
6044         in Mono 1.1.4.
6045  
6046         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
6047         object path that we pass into unmanaged code.
6048  
6049         * mono/DBusType/String.cs (Append): Don't leak the string
6050         that we pass into unmanged code.
6051
6052 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
6053         * NEWS: Update for 0.31
6054
6055         * configure.in: Release 0.31
6056         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
6057
6058         * qt/Makefile.am: fixed build
6059
6060         * dbus/Makefile.am: soname bump for libdbus
6061
6062         * glib/Makefile.am: soname bump for libdbus-glib
6063
6064 2005-03-05  Havoc Pennington  <hp@redhat.com>
6065
6066         * dbus/dbus-sysdeps.c:
6067         (pseudorandom_generate_random_bytes_buffer): fix to have no return
6068         value
6069         (_dbus_generate_random_bytes_buffer): fix return value
6070
6071         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
6072         checks actually work, from Tom Parker <fdo@tevp.net>
6073
6074 2005-03-01  Colin Walters  <walters@verbum.org>
6075
6076         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
6077         functions copied from dbus-glib-tool.c.
6078         (main): Convert lots of error code to use them.
6079         Also add some testing for introspection bits.
6080
6081 2005-03-01  Colin Walters  <walters@verbum.org>
6082         
6083         * doc/TODO: Remove introspection signature TODO.
6084
6085 2005-02-27  Colin Walters  <walters@verbum.org>
6086
6087         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
6088         Change return value to const char * instead of int so we can do
6089         full signatures.
6090         (struct PropertyInfo, struct ArgInfo): Store char *.
6091         (property_info_new, arg_info_new): Update parameters, strdup.
6092         (property_info_unref, arg_info_unref): Free.
6093
6094         * glib/dbus-gidl.h: Update prototypes.
6095
6096         * glib/dbus-gparser.c (basic_type_from_string): Delete.
6097         (validate_signature): New function, just validates signature and
6098         sets GError.
6099         (parse_property, parse_arg): Invoke validate_signature.  Store
6100         signature instead of just type code.
6101
6102         * glib/dbus-gvalue.c (base_type_from_signature): New utility
6103         function to return a primary type for a signature, dropping
6104         information about types in container types.
6105         (dbus_gvalue_genmarshal_name_from_type)
6106         (dbus_gvalue_binding_type_from_type)
6107         (dbus_gvalue_ctype_from_type): Update to take full signature
6108          instead of type code.
6109         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
6110
6111         * glib/dbus-gvalue.h: Update prototypes for above.
6112
6113         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
6114         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
6115         (introspect_properties, introspect_signals, write_interface):
6116         Update to handle signatures, and remove usage of
6117         _dbus_gutils_type_to_string.
6118         (handle_introspect): Print out type codes instead of e.g. "string"
6119         in hardcoded introspection XML; also use x_AS_STRING constants
6120         instead of hardcoding in string.
6121
6122         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
6123         to string.  Remove usage of _dbus_gutils_type_to_string.
6124
6125         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
6126
6127         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
6128         deletion.
6129         
6130         * glib/dbus-binding-tool-glib.c (compute_marshaller)
6131         (compute_marshaller_name, generate_glue): Handle signature change
6132         to string.
6133         (write_formal_parameters, write_args_for_direction): Ditto, and
6134         remove FIXME.
6135
6136         * tools/dbus-tree-view.c (type_to_string): Delete.
6137         (info_set_func_text): Update to print full signatures.
6138
6139         * test/glib/test-service-glib.xml: Change types to new
6140         introspection format.
6141
6142 2005-02-26  Havoc Pennington  <hp@redhat.com>
6143
6144         * doc/TODO: remove the "guid" item
6145
6146         * test/glib/test-profile.c (no_bus_thread_func): use open_private
6147         (with_bus_thread_func): use open_private
6148
6149         * dbus/dbus-connection.c (dbus_connection_open_private): new
6150         function that works like the old dbus_connection_open()
6151         (dbus_connection_open): now returns an existing connection if
6152         possible
6153
6154         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
6155         through the GUID to the transport
6156
6157         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
6158         GUID in hex-encoded form.
6159
6160         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
6161         pass GUID argument in to the transport
6162
6163         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
6164         guid argument
6165
6166         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
6167
6168         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
6169
6170 2005-02-25  Havoc Pennington  <hp@redhat.com>
6171
6172         * doc/dbus-specification.xml: document the GUID thing
6173
6174         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
6175         globally unique ID for the server, and put a "guid=hexencoded"
6176         field in the address
6177
6178         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
6179
6180         * dbus/dbus-message.c: ditto
6181
6182         * dbus/dbus-dataslot.c: ditto
6183
6184         * dbus/dbus-list.c: ditto
6185
6186         * dbus/dbus-internals.h: wait, just include
6187         dbus-threads-internal.h here
6188         
6189         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
6190         use in main library
6191
6192         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
6193
6194 2005-02-24  Colin Walters  <walters@verbum.org>
6195
6196         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
6197
6198 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
6199
6200         * glib/Makefile.am: added dbus-gobject.h to sources list
6201         so distcheck doesn't fail
6202         
6203 2005-02-24  Havoc Pennington  <hp@redhat.com>
6204
6205         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
6206         you must disconnect before unref, since locking and other things
6207         are screwed up otherwise. Fix assorted other locking stuff.
6208
6209         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
6210         fix compilation
6211
6212         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
6213         into a private header and don't export from the library
6214
6215         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
6216
6217 2005-02-24  Colin Walters  <walters@verbum.org>
6218         
6219         * dbus/dbus-signature.c: New file; implements various functions
6220         related to type signatures.  Includes an interator for parsing,
6221         validation functions.
6222         (dbus_type_is_basic): Moved here from
6223         dbus-marshal-basic.c:_dbus_type_is_basic.
6224         (dbus_type_is_container): Moved here from
6225         dbus-marshal-basic.c:_dbus_type_is_container.
6226
6227         All callers of _dbus_type_is_container and _dbus_type_is_basic
6228         updated, and include dbus-signature.h.
6229
6230         * dbus/dbus-signature.h: New file; prototypes for the above.
6231
6232         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
6233         dbus-signature.h.
6234
6235         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
6236         function factored out of _dbus_first_type_in_signature.
6237         (_dbus_first_type_in_signature_c_str): New function; returns first
6238         type code for a type signature character.
6239
6240         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
6241         handle function moves.
6242
6243         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
6244
6245         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
6246         function; skips to next complete type in type signature.
6247         Implemented using previous skip_one_complete_type.  Now
6248         skip_one_complete_type just delegates to
6249         _dbus_type_signature_next.
6250
6251         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
6252         to dbus-signature.c
6253         (_dbus_type_is_container): Ditto.
6254
6255         * doc/dbus-specification.xml: Update introspection sample to
6256         use real type signatures.
6257
6258         * dbus/dbus-test.h: Prototype signature test.
6259
6260         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
6261         signature tests.
6262
6263         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
6264
6265 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
6266
6267         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
6268         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
6269
6270 2005-02-21  Colin Walters  <walters@verbum.org>
6271
6272         * dbus/dbus-test-main.c (main): Take optional specific test
6273         argument.
6274
6275         * dbus/dbus-test.c (run_test): New function, runs a test function
6276         with no data directory.
6277         (run_data_test): Like above, but takes data directory.
6278         (dbus_internal_do_not_use_run_tests): Take
6279         specific test argument.  Replace lots of cut n' paste code
6280         with run_test and run_data_test.
6281
6282         * dbus/dbus-test.h: Update prototype for
6283         dbus_internal_do_not_use_run_tests.
6284
6285 2005-02-20  Havoc Pennington  <hp@redhat.com>
6286
6287         Fix bugs reported by Daniel P. Berrange
6288         
6289         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
6290         (protected_change_watch): new function
6291         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
6292         (_dbus_server_add_watch): change to work like the
6293         dbus-connection.c equivalents; like those, probably kind of
6294         busted, but should at least mostly work for now
6295         (dbus_server_disconnect): drop the lock if we were already
6296         disconnected, patch from Daniel P. Berrange
6297
6298         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
6299         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
6300         same stuff
6301
6302         * doc/TODO: todo about unscrewing this mess
6303
6304 2005-02-19  Colin Walters  <walters@verbum.org>
6305
6306         * glib/dbus-binding-tool-glib.c
6307         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6308
6309         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6310         as errno.h and sys/stat.h.
6311         (lose): New function, prints error with
6312         newline and exits.
6313         (lose_gerror): Similar, but takes GError for message.
6314         (main): Add --output argument to specify output file to write to,
6315         instead of always printing to stdout.  In this mode, determine
6316         timestamps on source files to see whether any are newer than the
6317         target file.  If not, exit.  Also convert a number of error
6318         messages to use lose (since it's shorter), and switch to using
6319         g_io_channel_shutdown.
6320
6321 2005-02-19  Havoc Pennington  <hp@redhat.com>
6322
6323         * glib/dbus-gobject.c
6324         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6325
6326         * glib/dbus-glib.c: fix doxygen warnings
6327
6328         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6329         is found on an <arg>
6330
6331 2005-02-17  Colin Walters  <walters@verbum.org>
6332
6333         * glib/dbus-gobject.h: Don't export
6334         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6335         
6336         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6337         (invoke_object_method): Handle it.
6338
6339         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6340         Handle rename.
6341         
6342 2005-02-17  Colin Walters  <walters@verbum.org>
6343
6344         * bus/.cvsignore, doc/.cvsignore
6345         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6346         Update.
6347
6348 2005-02-17  Colin Walters  <walters@verbum.org>
6349         
6350         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6351         Rename to DBUS_SERVICE_DBUS.
6352         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6353         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6354         Change the value from "org.freedesktop.Local"
6355         to "org.freedesktop.DBus.Local".
6356         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6357         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6358         DBUS_INTERFACE_INTROSPECTABLE.
6359         Change the value from "org.freedesktop.Introspectable"
6360         to "org.freedesktop.DBus.Introspectable".
6361         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6362         DBUS_INTERFACE_PROPERTIES.
6363         Change the value from "org.freedesktop.Properties"
6364         to "org.freedesktop.DBus.Properties".
6365         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6366         DBUS_INTERFACE_PEER.
6367         Change the value from "org.freedesktop.Peer"
6368         to "org.freedesktop.DBus.Peer".
6369         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6370         DBUS_INTERFACE_LOCAL.
6371         Change the value from "org.freedesktop.Local"
6372         to "org.freedesktop.DBus.Local".
6373
6374         All other users of those constants have been changed.
6375
6376         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6377
6378         * glib/dbus-gobject.c (handle_introspect): Use constants.
6379
6380         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6381
6382 2005-02-17  Colin Walters  <walters@verbum.org>
6383
6384         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6385         (parse_node, parse_interface, parse_method, parse_signal)
6386         (parse_property, parse_annotation): Lose if we're currently in an
6387         annotation.
6388         (parse_annotation): New function.
6389         (parser_start_element, parser_end_element): Handle annotation.
6390         (parse_method, parse_interface): Remove support for c_name attribute,
6391         switch to annotations.
6392
6393         * glib/dbus-gidl.h (interface_info_get_binding_names)
6394         (method_info_get_binding_names)
6395         (interface_info_get_binding_name, method_info_get_binding_name)
6396         (interface_info_set_binding_name, method_info_set_binding_name):
6397         Remove.
6398         (interface_info_get_annotations, method_info_get_annotations)
6399         (interface_info_get_annotation, method_info_get_annotation)
6400         (interface_info_add_annotation, method_info_add_annotation):
6401         Prototype.
6402
6403         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6404         for "bindings".
6405         (struct MethodInfo): Ditto.
6406         Straightfoward conversion of binding methods into annotation methods
6407         as prototyped.
6408
6409         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6410
6411         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6412
6413         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6414         Use new annotation API.
6415
6416         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6417         annotation element.
6418         
6419         * doc/dbus-specification.xml: Discuss introspection annotations,
6420         include list of well-known annotations.
6421
6422         * test/glib/test-service-glib.xml: Make validate against new DTD.
6423
6424 2005-02-17  Colin Walters  <walters@verbum.org>
6425
6426         This patch is based on initial work from
6427         Paul Kuliniewicz <kuliniew@purdue.edu>.
6428
6429         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6430         initialization of GValue from dbus type to here.
6431         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6432         for the "glib-genmarshal" program from a DBus type.
6433         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6434         into the C name for it we use in the glib bindings.
6435         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6436         glib C type (not GValue).
6437         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6438
6439         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6440         from dbus-gobject.c.
6441
6442         * glib/dbus-gutils.h: Prototype it.
6443
6444         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6445         (marshal_dbus_message_to_g_marshaller): Use new shared function
6446         dbus_glib_marshal_dbus_message_to_gvalue_array.
6447
6448         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6449         Will be changed once we have annotations.
6450
6451         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6452         GStaticRWLock.  Callers updated.
6453         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6454         (string_table_next): New function for iterating over zero-terminated
6455         string value array.
6456         (string_table_lookup): New function; retrieves specific entry in
6457         array.
6458         (get_method_data): New function; look up method data in object data chunk.
6459         (object_error_domain_prefix_from_object_info)
6460         (object_error_code_from_object_info): New functions, but not implemented yet.
6461         (method_interface_from_object_info): New function; retrieve interface name.
6462         (method_name_from_object_info): New function; retrieve method name.
6463         (method_arg_info_from_object_info): New function; retrieve argument data.
6464         (arg_iterate): New function; iterates over serialized argument data.
6465         (method_dir_signature_from_object_info): New function; returns a
6466         GString holding type signature for arguments for just one
6467         direction (input or output).
6468         (method_input_signature_from_object_info)
6469         (method_output_signature_from_object_info): New functions.
6470         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6471         converts dbus message arguments into a GValue array.  Used for both
6472         signal handling and method invocation.
6473         (struct DBusGlibWriteIterfaceData): New utility structure.
6474         (write_interface): New function; generate introspection XML for
6475         an interface.
6476         (introspect_interfaces): New function; gathers all interface->methods,
6477         generates introspection XML for them.
6478         (handle_introspect): Invoke introspect_interfaces.
6479         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6480         (lookup_object_and_method): New function; examines an incoming message
6481         and attempts to match it up (via interface, method name, and argument
6482         signature) with a known object and method.
6483         (gerror_domaincode_to_dbus_error_name): New function; converts a
6484         GError domain and code into a DBus error name.  Needs GError data
6485         added to object introspection to work well.
6486         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6487         GError.
6488         (invoke_object_method): New function to invoke an object method
6489         looked up via lookup_object_and_method.  Parses the incoming
6490         message, turns it into a GValue array, then invokes the marshaller
6491         specified in the DBusGMethodInfo.  Creates a new message with
6492         either return values or error message as appropriate.
6493         (gobject_message_function): Invoke lookup_object_and_method and
6494         invoke_object_method.
6495
6496         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6497         (enum DBusBindingOutputMode): New enum for binding output modes.
6498         (pretty_print): Print binding names.
6499         (dbus_binding_tool_error_quark): GError bits.
6500         (version): Fix typo.
6501         (main): Create GIOChannel for output.  Parse new --mode argument,
6502         possible values are "pretty-print", "glib-server", "glib-client".
6503         Use mode to invoke appropriate function.
6504         
6505         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6506
6507         * glib/dbus-glib-tool.h: New header, just includes GError bits
6508         for now.
6509
6510         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6511         maps binding style to name.
6512         (struct MethodInfo): Ditto.
6513         (get_hash_keys, get_hash_key): Utility function, returns keys for
6514         a GHashTable.
6515         (interface_info_new, method_info_new): Initialize bindings.
6516         (interface_info_unref, method_info_unref): Destroy bindings.
6517         (method_info_get_binding_names, method_info_get_binding_name)
6518         (interface_info_get_binding_names, interface_info_get_binding_name):
6519         Functions for retrieving binding names.
6520         (method_info_set_binding_name, interface_info_set_binding_name):
6521         Functions for setting binding names.
6522
6523         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6524         for glib binding generation.
6525
6526         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6527         and client-side glib glue generation.
6528
6529         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6530         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6531         dbus-glib-tool.h.
6532
6533         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6534         of using GClosureMarshal directly.
6535         (struct DBusGObjectInfo): Add n_infos member.
6536
6537         * test/glib/test-service-glib.xml: New file; contains introspection data
6538         for MyTestObject used in test-service-glib.c.
6539
6540         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6541         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6542         (my_object_uppercase, my_object_many_args): New test methods.
6543         (main): Use dbus_g_object_class_install_info to include generated object
6544         info.
6545
6546         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6547         as well as client-side bindings.
6548
6549         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6550         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6551         using both the dbus_gproxy stuff directly as well as the generated bindings.
6552
6553 2005-02-15  Havoc Pennington  <hp@redhat.com>
6554
6555         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6556         complete a pending call, don't run filters first.
6557
6558         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6559         dbus_pending_call_steal_reply
6560
6561         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6562         _dbus_connection_block_pending_call
6563         (dbus_pending_call_get_reply): change to steal_reply and return a
6564         ref
6565
6566         * dbus/dbus-connection.c
6567         (dbus_connection_send_with_reply_and_block): port to work in terms
6568         of DBusPendingCall
6569         (_dbus_connection_block_pending_call): replace block_for_reply
6570         with this
6571
6572 2005-02-14  Havoc Pennington  <hp@redhat.com>
6573
6574         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6575         properly handle looking up group information by name; fix 
6576         from j@bootlab.org
6577
6578 2005-02-13  Havoc Pennington  <hp@redhat.com>
6579
6580         * dbus/dbus-connection.c (dbus_connection_return_message) 
6581         (dbus_connection_borrow_message): hold dispatch lock while message
6582         is outstanding
6583         (_dbus_connection_block_for_reply): hold dispatch lock while we
6584         block for the reply, so nobody steals our reply
6585         (dbus_connection_pop_message): hold the dispatch lock while we
6586         pluck the message
6587
6588 2005-02-13  Havoc Pennington  <hp@redhat.com>
6589
6590         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6591         (_dbus_connection_release_dispatch)
6592         (_dbus_connection_acquire_io_path)
6593         (_dbus_connection_release_io_path): make the mutex and condvar
6594         control access to the "acquired" flag. Drop the connection lock
6595         while waiting on the condvar. Hopefully these are baby steps in
6596         roughly the right direction.
6597
6598 2005-02-13  Havoc Pennington  <hp@redhat.com>
6599
6600         * dbus/dbus-connection.c: use separate mutexes for the condition
6601         variables; this is some kind of baseline for sanity, but the
6602         condition variables still aren't used correctly afaict
6603
6604 2005-02-13  Havoc Pennington  <hp@redhat.com>
6605
6606         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6607         fix a double-unlock
6608
6609         * dbus/dbus-connection.c
6610         (_dbus_connection_detach_pending_call_unlocked): add this
6611
6612         Initial semi-correct pass through to fix thread locking; there are
6613         still some issues with the condition variable paths I'm pretty
6614         sure
6615         
6616         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6617         lock/unlock calls
6618
6619         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6620         rename to add _unlocked
6621         (struct DBusConnection): move "dispatch_acquired" and
6622         "io_path_acquired" to use only one bit each.
6623         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6624         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6625         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6626         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6627         (_dbus_connection_remove_timeout) 
6628         (_dbus_connection_toggle_timeout): drop lock when calling out to
6629         user functions; done in a hacky/bad way.
6630         (_dbus_connection_send_and_unlock): add a missing unlock
6631         (_dbus_connection_block_for_reply): add a missing unlock
6632
6633         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6634         drop lock in a hacky probably unsafe way to call out to user
6635         function
6636
6637 2005-02-12  Havoc Pennington  <hp@redhat.com>
6638
6639         * tools/dbus-tree-view.c (info_set_func_text): display more
6640         details on args
6641
6642         * bus/driver.c (bus_driver_handle_list_services): list the bus
6643         driver
6644
6645         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6646
6647         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6648         (method_info_get_n_args): new function
6649
6650 2005-02-12  Havoc Pennington  <hp@redhat.com>
6651
6652         * bus/driver.c (bus_driver_handle_introspect): add introspection
6653         for bus driver
6654
6655 2005-02-12  Havoc Pennington  <hp@redhat.com>
6656
6657         * bus/driver.c: put the signature of each bus driver method in the
6658         table of handlers and check it on incoming calls; this isn't
6659         really useful, but going to add introspect support in a minute.
6660
6661 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6662
6663         * mono/Connection.cs: The unpredictability of finalizers in mono
6664         prevents us from deterministically disconnecting the filters from
6665         the Service class's finalizer, so move tracking of filters and
6666         matches here.  Add API for that.
6667
6668         * mono/Service.cs: Remove the code, add code which calls the
6669         methods now on the Connection class.
6670
6671 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6672
6673         * python/dbus.py (class Sender): added to support dbus signals better
6674         (Bus::add_signal_receiver): added expand_args parameter which defaults
6675         to True.  When expand args is True the signal handler will pass the 
6676         message arguments as parameters to the signal handler.  If False
6677         revert to previous behavior where the signal handler must get the
6678         argument list from the message.  This is to help port applications
6679         like HAL that have a tendancy to send variable length argument lists.
6680         self._match_rule_to_receivers is now a dict of dicts.
6681         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6682         removing it from a list
6683         (Bus::_signal_func): change signal handlers so that interface,
6684         signal_name, service, path and message are packed into a Sender
6685         object and that is passed to the handler.  If expand_args is True
6686         extract the args list from the message and append it to the parameter
6687         list
6688         
6689         * python/dbus_bindings.pyx.in (class Signature): added to support 
6690         signiature types
6691         (MessageIter::__init__): changed iteration limit to match D-BUS
6692         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6693         STRUCT and VARIENT type support
6694         (MessageIter::python_value_to_dbus_sig): made recursive to support
6695         recursive types
6696         (MessageIter::append*): added Signature, dict, tuple 
6697         support
6698
6699         * python/examples/example-client.py: added examples of getting tuples
6700         and dicts
6701
6702         * python/examples/example-service.py: added examples of sending tuples
6703         and dicts
6704
6705         * python/examples/example-signal-recipient.py: Fixed to handle new
6706         signal callback format
6707
6708 2005-02-10  Havoc Pennington  <hp@redhat.com>
6709
6710         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6711         (call dbus_g_proxy_add_signal)
6712
6713         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6714         escape the hostname
6715         (_dbus_server_new_for_domain_socket): escape the path
6716
6717         * dbus/dbus-address.c (dbus_address_escape_value): new
6718         (dbus_address_unescape_value): new
6719         (dbus_parse_address): unescape values
6720
6721         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6722
6723         * doc/dbus-specification.xml: explain how to escape values in
6724         addresses
6725
6726 2005-02-10  Havoc Pennington  <hp@redhat.com>
6727
6728         * dbus/dbus-message-factory.c (generate_special): modify test to
6729         avoid using a non-basic dict key
6730
6731         * dbus/dbus-marshal-validate-util.c: add test for the below
6732
6733         * doc/dbus-specification.xml: require that dict keys are a basic
6734         type
6735
6736         * dbus/dbus-marshal-validate.c
6737         (_dbus_validate_signature_with_reason): require that dict key is a
6738         basic type
6739
6740 2005-02-10  Havoc Pennington  <hp@redhat.com>
6741
6742         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6743         change to be _and_unlock instead of _unlocked
6744
6745         * dbus/dbus-connection.c
6746         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6747         have no_update so we can find this bug quickly in future
6748
6749 2005-02-10  Havoc Pennington  <hp@redhat.com>
6750
6751         * dbus/dbus-message-util.c (verify_test_message): tests for string
6752         array
6753
6754         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6755         support for arrays of string/signature/path
6756
6757 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6758
6759         * dbus/dbus-connection.c
6760         (_dbus_connection_queue_received_message_link,
6761         _dbus_connection_message_sent): Add the path to
6762         the verbose output.
6763         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6764         _dbus_connection_send_preallocated_unlocked(), updated the
6765         dispatch status, and unlocks.  Fixes a bug where certain
6766         situations (like a broken pipe) could cause a Disconnect message
6767         to not be sent, tricking the bus into thinking a service was still
6768         there when the process had quit.
6769         (_dbus_connection_send_preallocated): Call
6770         _dbus_connection_send_preallocated_and_unlock().
6771         (_dbus_connection_send_and_unlock): Added.  Calls
6772         _dbus_connection_send_preallocated_and_unlock().
6773         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6774         (dbus_connection_send_with_reply): Update the dispatch status and
6775         unlock.
6776
6777         * mono/Service.cs (~Service): Added.  Removes the filter so that
6778         we don't get unmanaged code calling back into a GCed delegate.
6779         (RemoveFilter); Added.
6780
6781 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6782
6783         * dbus/dbus-message.c (dbus_message_iter_open_container):
6784         - Removed check for iterator type being an array because
6785         get_arg_type does not work with writer iterators
6786         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6787
6788 2005-02-07  Havoc Pennington  <hp@redhat.com>
6789
6790         * doc/dbus-specification.xml: some more language cleanups; add
6791         stuff about how to deal with invalid protocol and extension
6792         points; add _ to allowed chars in auth commands; add EXTENSION_
6793         auth command prefix
6794
6795 2005-02-06  Havoc Pennington  <hp@redhat.com>
6796
6797         * s/expected/required/ in a couple places for clarity
6798
6799 2005-02-07  Colin Walters  <walters@verbum.org>
6800
6801         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6802         sender or proposed_recipient.
6803
6804 2005-02-06  Havoc Pennington  <hp@redhat.com>
6805
6806         * dbus/dbus-message-factory.c (generate_special): more tests
6807
6808         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6809         array length that exceeds the maximum
6810
6811 2005-02-05  Havoc Pennington  <hp@redhat.com>
6812
6813         * dbus/dbus-message-factory.c (generate_special): more test cases,
6814         increasing coverage
6815
6816         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6817         reason why a signature was invalid
6818
6819         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6820         skip the length of the string before we look at it in validation
6821
6822         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6823         equal_substring
6824
6825         * dbus/dbus-message.c (_dbus_message_loader_new): default
6826         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6827
6828 2005-02-05  Havoc Pennington  <hp@redhat.com>
6829
6830         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6831         if the signature of a variant was empty
6832         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6833         struct with no element type)
6834
6835         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6836         mangled messages to break things
6837
6838 2005-02-04  Havoc Pennington  <hp@redhat.com>
6839
6840         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6841         g_quark_try_string() so it actually can return 0
6842         (dbus_g_proxy_connect_signal): ditto
6843
6844 2005-02-04  Havoc Pennington  <hp@redhat.com>
6845
6846         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6847         bogus warning
6848         (tristring_from_message): assert cleanly on null path/interface
6849         (should not be possible though I decided later)
6850         (dbus_g_proxy_dispose): move proxy manager unregistration here
6851         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6852         g_return_if_fail() checks
6853
6854 2005-02-04  Havoc Pennington  <hp@redhat.com>
6855
6856         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6857
6858         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6859         (with some minor changes)
6860
6861         * doc/dbus-specification.xml: add deprecated attribute to
6862         introspection format
6863
6864 2005-01-31  Havoc Pennington  <hp@redhat.com>
6865
6866         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6867         think it's sort of right
6868
6869 2005-01-30  Havoc Pennington  <hp@redhat.com>
6870
6871         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6872
6873 2005-01-30  Havoc Pennington  <hp@redhat.com>
6874
6875         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6876
6877         * autogen.sh: change to autotools 1.9
6878
6879         * glib/dbus-gproxy.c: completely change how signals work
6880         (dbus_g_proxy_add_signal): new function to specify signature of a
6881         signal
6882         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6883         and g_warning if the incoming message has the wrong signature.
6884
6885 2005-01-30  Havoc Pennington  <hp@redhat.com>
6886
6887         * tools/dbus-names-model.c (have_names_notify): fix this
6888
6889         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6890         up the string array handling a bit 
6891
6892 2005-01-30  Havoc Pennington  <hp@redhat.com>
6893
6894         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6895         (dbus_g_pending_call_cancel): new function
6896
6897         * dbus/dbus-glib.h: move GType decls for connection/message here;
6898         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6899         here, just kind of rationalizing how we handle all that
6900
6901         * tools/dbus-names-model.c: new file for a tree model listing the
6902         services on a bus
6903
6904         * tools/dbus-tree-view.c (model_new): use proper typing on the
6905         model rows
6906
6907 2005-01-30  Havoc Pennington  <hp@redhat.com>
6908
6909         * glib/dbus-gmain.c: add a custom GSource back that just checks
6910         whether the message queue has anything in it; otherwise, there are 
6911         cases where we won't see messages in the queue since there was no 
6912         IO visible to the glib main loop
6913
6914         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6915         increase default message timeout to 25 seconds
6916
6917 2005-01-30  Havoc Pennington  <hp@redhat.com>
6918
6919         * test/glib/test-profile.c (no_bus_stop_server): remove the
6920         warning about the g_warning that I just fixed
6921
6922         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6923         custom source, seems to be a lot easier to understand and work
6924         better.
6925
6926 2005-01-30  Havoc Pennington  <hp@redhat.com>
6927
6928         I think this main loop thing is conceptually broken, but here are 
6929         some band aids. I'll maybe rewrite it in a minute.
6930         
6931         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6932         custom GSource, so don't pass it in; confusing
6933         (gsource_server_finalize, gsource_connection_finalize): add
6934         finalize handlers that remove all the watches.  
6935
6936 2005-01-30  Havoc Pennington  <hp@redhat.com>
6937
6938         * glib/dbus-gobject.c (introspect_properties): fix the XML
6939         generated
6940
6941         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6942         which effectively detects the use of freed messages
6943
6944         * glib/dbus-gobject.c (handle_introspect): modify and return the
6945         reply message instead of the incoming message
6946
6947         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6948         gee, maybe it should SEND THE XML instead of just making a string
6949         and freeing it again ;-)
6950
6951         * tools/dbus-print-message.c (print_message): improve printing of
6952         messages
6953
6954         * configure.in: add debug-glib.service to the output
6955
6956 2005-01-30  Havoc Pennington  <hp@redhat.com>
6957
6958         dbus-viewer introspected and displayed the bus driver
6959         
6960         * dbus/dbus-object-tree.c 
6961         (object_tree_test_iteration): add tests for a handler registered on "/"
6962
6963         * dbus/dbus-object-tree.c
6964         (_dbus_decompose_path): fix to handle path "/" properly
6965         (run_decompose_tests): add tests for path decomposition
6966         
6967         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6968         properly
6969
6970         * glib/dbus-gobject.c (handle_introspect): fix quotes
6971
6972         * test/glib/run-test.sh: support launching the bus, then running
6973         dbus-viewer
6974
6975         * test/glib/test-service-glib.c (main): put in a trivial gobject
6976         subclass and register it on the connection
6977
6978         * bus/driver.c (bus_driver_handle_introspect): implement
6979         introspection of the bus driver service
6980
6981         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6982         identifiers, doctype decl
6983
6984         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6985         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6986         returning the service unchanged.
6987         (bus_driver_handle_message): remove old check for reply_serial in
6988         method calls, now the message type deals with that
6989         (bus_driver_handle_message): handle NULL interface
6990
6991         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6992
6993         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6994         -1 for len
6995
6996         * tools/dbus-viewer.c: add support for introspecting a service on
6997         a bus
6998
6999         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
7000         (dbus_g_pending_call_unref): add
7001
7002 2005-01-29  Havoc Pennington  <hp@redhat.com>
7003
7004         * tools/dbus-tree-view.c: add support for displaying properties.
7005         (run dbus-viewer with an introspect xml file as arg, then resize
7006         the window so the tree elements show up, not sure what that is)
7007
7008         * glib/dbus-gobject.c (handle_introspect): return
7009         org.freedesktop.Properties and org.freedesktop.Introspectable
7010         interfaces when we are introspected.
7011
7012         * doc/dbus-specification.xml: allow empty interface name when 
7013         Get/Set a property
7014
7015 2005-01-29  Havoc Pennington  <hp@redhat.com>
7016
7017         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
7018         though it uses glib, it could be extended for any binding in
7019         principle
7020
7021         * glib/dbus-gobject.c (gobject_message_function): change to the
7022         new way properties work
7023
7024         * dbus/dbus-protocol.h: add the new interfaces
7025
7026         * doc/dbus-specification.xml: document the introspection format,
7027         Introspectable interface, and add an org.freedesktop.Properties
7028         interface.
7029
7030         * glib/dbus-gparser.c: add support for a <property> element
7031
7032         * glib/dbus-gidl.c: add PropertyInfo
7033
7034         * glib/dbus-gobject.c (handle_introspect): put the outermost
7035         <node> outside the signal and property descriptions.
7036         (introspect_properties): export properties as <property> rather
7037         than as method calls
7038
7039 2005-01-28  Havoc Pennington  <hp@redhat.com>
7040
7041         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
7042         related to authentication protocol
7043
7044 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
7045
7046         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
7047                 - BUS_ACTIVATION -> BUS_STARTER
7048                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
7049                 - class MessageIter (__init__): Added recursion checking 
7050                 so we throw a nice error instead of just disconnecting from the
7051                 bus.
7052                 (get): Added arg_type parameter for recursion.
7053                 Removed the nil type
7054                 Added signiture type placeholder (not implemented)
7055                 Added struct type placeholder (not implemented)
7056                 Added varient type placeholder (not implemented)
7057                 Commented out dict type for now     
7058                 (get_element_type): renamed from get_array_type
7059                 (get_*): changed to use the dbus_message_iter_get_basic API
7060                 (get_*_array): removed in favor of recursive get_array method
7061                 (get_array): new recursive method which calls get to marshal
7062                 the elements of the array
7063                 (value_to_dbus_sig): New method returns the corrasponding
7064                 dbus signiture to a python value
7065                 (append): Comment out dict handling for now
7066                 Handle lists with the new recursive API
7067                 Comment out None handling for now
7068                 (append_nil): removed
7069                 (append_*): changed to use dbus_message_iter_append_basic API
7070                 (append_*_array): removed in favor of recursive append_array 
7071                 method
7072                 (__str__): Make it easier to print out recursive iterators
7073                 for debugging
7074                 - class Message (__str__): moved type inspection to the
7075                 MessageIter class' __str__ method
7076                 (get_iter): Added an append parameter wich defaults to False
7077                 If True use the new API's to create an append iterator
7078
7079         * python/dbus.py: Update to use new bindings API
7080                 - TYPE_ACTIVATION -> TYPE_STARTER
7081                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
7082                 - class ActivationBus -> class StarterBus
7083                 - class RemoteObject (__call__): get an append iterator
7084                 - (_dispatch_dbus_method_call): get an append iterator
7085                 - class Object (emit_signal): get an append iterator
7086
7087         * python/examples/: Fixed up the examples to work with the new API
7088                 
7089 2005-01-28  Joe Shaw  <joeshaw@novell.com>
7090
7091         * configure.in: Bump version up to 0.30.
7092
7093         * HACKING: Add a release item to bump the version number up after 
7094         a release.
7095
7096 2005-01-28  Havoc Pennington  <hp@redhat.com>
7097
7098         * doc/dbus-specification.xml: update to describe 16-bit types and
7099         dict entries
7100
7101         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
7102         assertion
7103
7104         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
7105         type
7106
7107         * dbus/dbus-marshal-recursive.c: implement
7108
7109 2005-01-27  Havoc Pennington  <hp@redhat.com>
7110
7111         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
7112
7113         * configure.in: find the right type for 16 and 32 bit ints as well
7114         as 64
7115
7116         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
7117         the 16-bit types so people don't have to stuff them in 32-bit or
7118         byte arrays.
7119
7120 2005-01-27  Havoc Pennington  <hp@redhat.com>
7121
7122         * dbus/dbus-message.c: byteswap the message if you init an
7123         iterator to read/write from it
7124         
7125         * dbus/dbus-marshal-byteswap.c: new file implementing 
7126         _dbus_marshal_byteswap()
7127
7128         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
7129
7130 2005-01-26  Havoc Pennington  <hp@redhat.com>
7131         
7132         * dbus/dbus-marshal-validate-util.c: break this out (and fix
7133         build, apparently - nobody noticed?)
7134         
7135 2005-01-26  Havoc Pennington  <hp@redhat.com>
7136
7137         * dbus/dbus-marshal-recursive.h: remove todo comment
7138
7139 2005-01-25  Joe Shaw  <joeshaw@novell.com>
7140
7141         * Land the mono binding changes to conform to the new APIs.
7142
7143         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
7144         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
7145
7146         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
7147         type code as a string.
7148         (InitAppending): Rename dbus_message_append_iter_init() to
7149         dbus_message_iter_init_append().
7150
7151         * mono/BusDriver.cs: Rename ServiceEventHandler to
7152         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
7153         Rename ServiceOwnerChanged to NameOwnerChanged.
7154
7155         * mono/Connection.cs: Rename BaseService to UniqueName, and the
7156         underlying C call.
7157
7158         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
7159
7160         * mono/Service.cs: Rename Exists to HasOwner, internally rename
7161         dbus_bus_acquire_service() to dbus_bus_request_name().
7162
7163         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
7164         of Type.UnderlyingSystemType to get the correct element type for
7165         the array.
7166         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
7167         dbus_message_get_{element|arg}_type() instead of
7168         dbus_message_iter_init_array_iterator().
7169         (Append): Replace dbus_message_iter_append_array() with
7170         dbus_message_iter_open_container() and
7171         dbus_message_iter_close_container().
7172
7173         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
7174         types have been removed.
7175         
7176         * mono/DBusType/*.cs: Replace calls of
7177         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
7178         but specify the type in the DllImport extern declaration.  Ditto
7179         for dbus_message_iter_append_[type]() ->
7180         dbus_message_iter_append_basic().
7181
7182         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
7183         NameOwnerChangedHandler.
7184
7185 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
7186
7187         * python/dbus_bindings.pyx.in: Rename of methods and bindings
7188                 - get_base_service -> get_unique_name
7189                 - bus_get_base_service -> bus_get_unique_name
7190                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
7191                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
7192                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
7193                 - bus_activate_service -> bus_start_service_by_name
7194                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
7195                 - bus_acquire_service -> bus_request_name
7196                 - dbus_bus_acquire_service -> dbus_bus_request_name
7197                 - bus_service_exists -> bus_name_has_owner
7198                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
7199
7200         * python/dbus.py: Rename of methods
7201                 - activate_service -> start_service_by_name
7202                 - bus_acquire_service -> bus_request_name
7203                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
7204                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
7205
7206         
7207 2005-01-24  Joe Shaw  <joeshaw@novell.com>
7208
7209         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
7210         signature for the method that can't be found.
7211
7212         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
7213         the message has any arguments, we need to call
7214         _dbus_type_reader_get_current_type(), not
7215         _dbus_type_reader_has_next().
7216
7217 2005-01-24  Havoc Pennington  <hp@redhat.com>
7218
7219         * dbus/dbus-message-factory.c: more testing of message validation
7220
7221         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
7222         header
7223
7224 2005-01-23  Havoc Pennington  <hp@redhat.com>
7225
7226         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
7227         get this all working, not many tests in the framework yet though
7228
7229 2005-01-22  Havoc Pennington  <hp@redhat.com>
7230
7231         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
7232         tutorial, based on work from David Wheeler.
7233
7234 2005-01-21  Havoc Pennington  <hp@redhat.com>
7235
7236         * dbus/dbus-bus.c: add more return_if_fail checks
7237
7238         * dbus/dbus-message.c (load_message): have the "no validation"
7239         mode (have to edit the code to toggle the mode for now though)
7240
7241         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
7242         skips all validation; I want to use this at least for benchmark
7243         baseline, I'm not sure if it should be a publicly-available switch.
7244
7245 2005-01-21  Havoc Pennington  <hp@redhat.com>
7246
7247         * glib/dbus-gmain.c: don't put the GLib bindings in the same
7248         toplevel doxygen group as the low-level API stuff
7249
7250         * dbus/dbus.h: note that libdbus is the low-level API
7251
7252 2005-01-20  Havoc Pennington  <hp@redhat.com>
7253
7254         * update-dbus-docs.sh: script to update docs on the web site, only
7255         works for me though. neener.
7256
7257 2005-01-20  Havoc Pennington  <hp@redhat.com>
7258
7259         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
7260         code can reveal bugs in it
7261
7262 2005-01-20  Havoc Pennington  <hp@redhat.com>
7263
7264         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
7265         select() version, patches from Tor Lillqvist
7266
7267 2005-01-20  Havoc Pennington  <hp@redhat.com>
7268
7269         * doc/dbus-tutorial.xml: replace > with &gt;
7270
7271         * bus/services.c (bus_registry_acquire_service): validate the name
7272         and return a better error if it's no good.
7273
7274         * doc/dbus-specification.xml: note NO_AUTO_START change
7275
7276         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
7277         from AUTO_START, we're toggling the default
7278
7279         * bus/dispatch.c: adapt the tests to change of auto-start default
7280
7281 2005-01-18  Havoc Pennington  <hp@redhat.com>
7282
7283         * rename dbus-daemon-1 to dbus-daemon throughout
7284
7285 2005-01-18  Havoc Pennington  <hp@redhat.com>
7286
7287         * Throughout, grand renaming to strip out the use of "service",
7288         just say "name" instead (or "bus name" when ambiguous).  Did not
7289         change the internal code of the message bus itself, only the
7290         programmer-facing API and messages.
7291         
7292         * doc/dbus-specification.xml: further update the message bus section
7293         
7294         * bus/config-parser.c (all_are_equiv): fix bug using freed string
7295         in error case
7296
7297 2005-01-17  Havoc Pennington  <hp@redhat.com>
7298
7299         * dbus/dbus-types.h: remove 16-bit types since we don't use them
7300         ever
7301
7302         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7303         "invalid name character" not only non-ASCII
7304
7305         * doc/dbus-specification.xml: further update spec, message bus 
7306         parts are still out-of-date but the marshaling etc. stuff is now
7307         accurate-ish
7308
7309 2005-01-17  Havoc Pennington  <hp@redhat.com>
7310
7311         * doc/dbus-specification.xml: partially update spec
7312
7313 2005-01-17  Havoc Pennington  <hp@redhat.com>
7314
7315         * Throughout, align variant bodies according to the contained
7316         type, rather than always to 8. Should save a fair bit of space in
7317         message headers.
7318         
7319         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7320         fix handling of case where p == end
7321
7322         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7323
7324 2005-01-17  Havoc Pennington  <hp@redhat.com>
7325
7326         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7327
7328         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7329         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7330         are marshaling/unmarshaling a boolean.
7331
7332 2005-01-16  Havoc Pennington  <hp@redhat.com>
7333
7334         This is about it on what can be disabled/deleted from libdbus
7335         easily, back below 150K anyhow. Deeper cuts are more work than 
7336         just turning the code off as I've done here.
7337         
7338         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7339         signed int convenience funcs
7340
7341         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7342         verbose mode
7343
7344         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7345         things out of libdbus
7346
7347         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7348         
7349         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7350         tests-enabled-only, though it should probably be deleted)
7351
7352         * dbus/dbus-message-util.c: same stuff
7353
7354         * dbus/dbus-auth-util.c: same stuff
7355
7356 2005-01-16  Havoc Pennington  <hp@redhat.com>
7357
7358         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7359
7360         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7361         way for stripping down dbus-userdb.c stuff included in libdbus.
7362         Rename _dbus_parse_uid for consistency.
7363
7364 2005-01-16  Havoc Pennington  <hp@redhat.com>
7365
7366         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7367         name the assertion failed in
7368
7369         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7370         (_dbus_return_val_if_fail): assert that the name of the function
7371         containing the check doesn't start with '_', since we only want to 
7372         use checks on public functions
7373         
7374         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7375         checks to assertions
7376
7377         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7378         change checks to asserts for private function
7379
7380         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7381         to asserts for private function
7382
7383         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7384         broken assertion that was breaking make check
7385         (_dbus_type_reader_array_is_empty): remove this rather than fix
7386         it, was only used in assertions
7387
7388 2005-01-16  Havoc Pennington  <hp@redhat.com>
7389
7390         * test/unused-code-gc.py: hacky script to find code that's used
7391         only by the bus (not libdbus) or used only by tests or not used at
7392         all. It has some false alarms, but looks like we can clean up a
7393         lot of size from libdbus.
7394
7395         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7396         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7397         
7398 2005-01-16  Havoc Pennington  <hp@redhat.com>
7399
7400         * Add and fix docs according to Doxygen warnings throughout
7401         source.
7402         
7403         * dbus/dbus-marshal-recursive.c
7404         (_dbus_type_reader_array_is_empty): change this to just call
7405         array_reader_get_array_len() and make it static
7406
7407         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7408         from get_array_type
7409         (dbus_message_iter_init_append): rename from append_iter_init
7410
7411         * dbus/dbus-marshal-recursive.c
7412         (_dbus_type_reader_get_element_type): rename from
7413         _dbus_type_reader_get_array_type
7414
7415 2005-01-15  Havoc Pennington  <hp@redhat.com>
7416
7417         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7418
7419         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7420         when DBUS_DISABLE_ASSERT
7421         (_dbus_marshal_set_basic): be sure we align for the string length
7422
7423         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7424         this look faster
7425
7426         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7427         inline macro version
7428         (_dbus_string_set_byte): provide inline macro version
7429
7430 2005-01-15  Havoc Pennington  <hp@redhat.com>
7431
7432         * Land the new message args API and type system.
7433
7434         This patch is huge, but the public API change is not 
7435         really large. The set of D-BUS types has changed somewhat, 
7436         and the arg "getters" are more geared toward language bindings;
7437         they don't make a copy, etc.
7438
7439         There are also some known issues. See these emails for details
7440         on this huge patch:
7441         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7442         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7443         
7444         * dbus/dbus-marshal-*: all the new stuff
7445
7446         * dbus/dbus-message.c: basically rewritten
7447
7448         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7449         freed blocks to be all non-nul bytes so using freed memory is less
7450         likely to work right
7451
7452         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7453         DBUS_FAIL_MALLOC=N environment variable, so you can do
7454         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7455         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7456         thorough.
7457
7458         * qt/message.cpp: port to the new message args API
7459         (operator<<): use str.utf8() rather than str.unicode()
7460         (pretty sure this is right from the Qt docs?)
7461
7462         * glib/dbus-gvalue.c: port to the new message args API
7463
7464         * bus/dispatch.c, bus/driver.c: port to the new message args API
7465
7466         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7467         "locked" flag to TRUE and align_offset to 0; I guess we never
7468         looked at these anyhow, but seems cleaner.
7469
7470         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7471         move allocation padding macro to this header; use it to implement
7472         (_DBUS_STRING_STATIC): ability to declare a static string.
7473
7474         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7475         change to return TRUE if the interface is not set.
7476
7477         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7478         to dbus-marshal-validate.[hc]
7479
7480         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7481         dbus-internals.c
7482
7483         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7484         to dbus-marshal-*.[hc]
7485
7486         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7487         function here from dbus-marshal.c
7488
7489 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7490
7491         * NEWS: Update for 0.23.
7492
7493         * configure.in: Release 0.23.
7494
7495 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7496
7497         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7498         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7499         behind.
7500
7501         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7502         uninstall"
7503
7504         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7505         is an enum, get the enum's underlying type.  Another mono
7506         1.1.3 fix.
7507
7508 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7509
7510         Patch from Sjoerd Simons <sjoerd@luon.net>
7511
7512         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7513         DESTDIR.  It breaks stuff.
7514
7515 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7516
7517         Patch from Tambet Ingo <tambet@ximian.com>
7518
7519         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7520         calling type.GetElementType().  The code previously depended on
7521         broken Mono behavior, which was fixed in Mono 1.1.3.
7522
7523         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7524         Activator.CreateInstance() so that the class's constructor is
7525         called with the right parameters.
7526
7527 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7528
7529         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7530
7531         * dbus/dbus-connection.c
7532         (_dbus_connection_queue_received_message_link): Call
7533         _dbus_connection_remove_timeout() instead of the _locked()
7534         variant, since it's always called from
7535         _dbus_connection_handle_watch(), which handles the locking.
7536         Removed the _locked() variant since it's no longer used.
7537
7538 2005-01-03  Havoc Pennington  <hp@redhat.com>
7539
7540         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7541         return
7542         
7543 2004-12-26  Havoc Pennington  <hp@redhat.com>
7544
7545         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7546
7547 2005-01-03  Havoc Pennington  <hp@redhat.com>
7548
7549         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7550         floating point
7551
7552         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7553
7554 2005-01-02  Havoc Pennington  <hp@redhat.com>
7555
7556         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7557
7558 2005-01-01  Havoc Pennington  <hp@redhat.com>
7559
7560         * configure.in: add -Wfloat-equal
7561
7562 2005-01-01  Havoc Pennington  <hp@redhat.com>
7563
7564         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7565         for a variety of reasons '==' doesn't do this.
7566
7567 2004-12-31  Havoc Pennington  <hp@redhat.com>
7568
7569         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7570         I keep wishing I had
7571
7572 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7573
7574         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7575
7576 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7577
7578         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7579         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7580         dbus-protocol.h.  Because they are defines and not enums they are not
7581         autogenerated.
7582
7583 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7584
7585         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7586         dbus_bus_activate_service
7587
7588         * python/dbus.py (Bus.activate_service): activate a service on the
7589         bus.
7590
7591 2004-12-24  Havoc Pennington  <hp@redhat.com>
7592
7593         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7594         file format has also changed and I haven't adapted to that yet
7595         
7596         * Makefile.am: load .gcno files from latest gcc
7597
7598 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7599         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7600
7601         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7602         lowlevel binding
7603
7604         * python/dbus.py (get_unix_user): Added binding to 
7605         call dbus_bindings.bus_get_unix_user
7606
7607         * python/extract.py: Modified the proto_pat regex to
7608         handle unsigned long
7609
7610 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7611
7612         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7613         better POSIX compliance.
7614
7615 2004-12-19  Havoc Pennington  <hp@redhat.com>
7616
7617         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7618         (_dbus_string_insert_8_aligned): new functions
7619
7620         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7621
7622 2004-12-18  Havoc Pennington  <hp@redhat.com>
7623
7624         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7625         macro
7626
7627         * dbus/dbus-message.c: fix a comment, and add a still-unused
7628         not-implemented function
7629
7630         * dbus/dbus-marshal.h: fix comment
7631
7632         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7633
7634 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7635
7636         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7637         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7638         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7639         Type.UnderlyingSystemType to get the actual system type
7640         underneath.  This code previously depended on the broken Mono
7641         behavior, which was fixed in 1.1.3.
7642
7643 2004-11-27  Havoc Pennington  <hp@redhat.com>
7644
7645         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7646         are disabled
7647         (_dbus_string_get_const_data): inline when asserts are disabled
7648
7649         * dbus/dbus-message.c: record the _dbus_current_generation of
7650         creation so we can complain if dbus_shutdown() is used improperly.
7651         Do this only if checks are enabled.
7652
7653         * dbus/dbus-connection.c: ditto
7654         
7655 2004-11-26  Havoc Pennington  <hp@redhat.com>
7656
7657         * test/glib/test-profile.c: add with_bus mode to profile echoes
7658         that go through the bus.
7659
7660         * test/glib/run-test.sh: add ability to run test-profile
7661
7662         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7663         config file reload.
7664
7665 2004-11-26  Havoc Pennington  <hp@redhat.com>
7666
7667         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7668         thing was implemented
7669
7670 2004-11-26  Havoc Pennington  <hp@redhat.com>
7671
7672         * test/glib/test-profile.c: tweak a bit, add support for some
7673         made-up minimal malloc overhead with plain sockets, since in 
7674         real life some sort of buffers are unavoidable thus we could 
7675         count them in the theoretical best case
7676
7677 2004-11-26  Havoc Pennington  <hp@redhat.com>
7678
7679         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7680         where I was trying to cache one too many messages
7681
7682 2004-11-26  Havoc Pennington  <hp@redhat.com>
7683
7684         * dbus/dbus-message.c: reimplement message cache as an array which 
7685         makes the cache about twice as fast and saves maybe 1.5% overall
7686
7687 2004-11-26  Havoc Pennington  <hp@redhat.com>
7688
7689         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7690         message cache lock here
7691
7692 2004-11-26  Havoc Pennington  <hp@redhat.com>
7693
7694         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7695         the "char byte_order" next to each other to save 4 bytes
7696         (dbus_message_new_empty_header): reduce preallocation, since the
7697         message cache should achieve a similar effect
7698         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7699         message cache that keeps a few DBusMessage around in a pool,
7700         another 8% speedup or so.
7701
7702         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7703
7704 2004-11-25  Havoc Pennington  <hp@redhat.com>
7705
7706         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7707         to write, without reading or blocking, try it before the poll()
7708         and skip the poll() if nothing remains to write. This is about a
7709         3% speedup in the echo client/server
7710
7711 2004-11-25  Havoc Pennington  <hp@redhat.com>
7712
7713         The primary change here is to always write() once before adding
7714         the write watch, which gives us about a 10% performance increase.
7715         
7716         * dbus/dbus-transport-unix.c: a number of modifications to cope
7717         with removing messages_pending
7718         (check_write_watch): properly handle
7719         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7720         messages_pending stuff
7721         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7722         AUTHENTICATED cases
7723         (unix_handle_watch): after writing, see if the write watch can be
7724         removed
7725         (unix_do_iteration): assert that write_watch/read_watch are
7726         non-NULL rather than testing that they aren't, since they 
7727         aren't allowed to be NULL. check_write_watch() at the end so 
7728         we add the watch if we did not finish writing (e.g. got EAGAIN)
7729
7730         * dbus/dbus-transport-protected.h: remove messages_pending call,
7731         since it resulted in too much inefficient watch adding/removing; 
7732         instead we now require that the transport user does an iteration 
7733         after queueing outgoing messages, and after trying the first
7734         write() we add a write watch if we got EAGAIN or exceeded our 
7735         max bytes to write per iteration setting
7736
7737         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7738         function
7739
7740         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7741         freed and then accessed, valgrind flagged this bug, fix it
7742
7743         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7744         as the last valid field plus 1, where really it is equal to the
7745         last valid field. Corrects some message corruption issues.
7746
7747         * dbus/dbus-mainloop.c: verbosity changes
7748
7749         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7750         instead of aborting in one of the test codepaths
7751
7752         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7753         caused not printing the pid ever again if a verbose was missing
7754         the newline at the end
7755         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7756
7757         * dbus/dbus-connection.c: verbosity changes; 
7758         (dbus_connection_has_messages_to_send): new function
7759         (_dbus_connection_message_sent): no longer call transport->messages_pending
7760         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7761         try to write() immediately, so we can avoid the write watch. This
7762         is the core purpose of this patchset
7763         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7764         dump the outgoing message queue, so nobody will get confused
7765         trying to send them or thinking stuff is pending to be sent
7766
7767         * bus/test.c: verbosity changes
7768
7769         * bus/driver.c: verbosity/assertion changes
7770
7771         * bus/dispatch.c: a bunch of little tweaks to get it working again
7772         because this patchset changes when/where you need to block.
7773
7774 2004-11-23  Havoc Pennington  <hp@redhat.com>
7775
7776         * test/glib/test-profile.c: modify to accept a plain_sockets
7777         argument in which case it will bench plain sockets instead of
7778         libdbus, for comparison purposes.
7779
7780 2004-11-22  Havoc Pennington  <hp@redhat.com>
7781
7782         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7783         threads for more time, so sysprof can get a grip on it.
7784
7785         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7786         pointless variable
7787
7788 2004-11-13  Havoc Pennington  <hp@redhat.com>
7789
7790         * test/glib/test-profile.c: fix this thing up a bit
7791
7792         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7793         preallocation sizes by a fair bit; not sure if this will be an
7794         overall performance win or not, but it does reduce reallocs.
7795
7796         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7797         the test hack that forced constant realloc if asserts are
7798         disabled, so we can profile sanely. Sprinkle in some
7799         _DBUS_UNLIKELY() which are probably pointless, but before I
7800         noticed the real performance problem I put them in.
7801         (_dbus_string_validate_utf8): micro-optimize this thing a little
7802         bit, though callgrind says it didn't help; then special-case
7803         ascii, which did help a lot; then be sure we detect nul bytes as
7804         invalid, which is a bugfix.
7805         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7806         superstition; use memset to nul the padding instead of a manual
7807         loop.
7808         (_dbus_string_get_length): inline this as a
7809         macro; it showed up in the profile because it's used for loop
7810         tests and so forth
7811
7812 2004-11-10  Colin Walters  <walters@verbum.org>
7813
7814         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7815         for extra paranoia.
7816
7817 2004-11-09  Colin Walters  <walters@verbum.org>
7818
7819         * dbus/dbus-string.c (_dbus_string_get_length): New
7820         function, writes DBusString to C buffer.
7821
7822         * dbus/dbus-string.h: Prototype it.
7823
7824         * dbus/dbus-message.c (dbus_message_type_to_string): New
7825         function, converts message type into C string.
7826
7827         * dbus/dbus-message.h: Prototype it.
7828
7829         * bus/selinux.c (bus_selinux_check): Take source pid,
7830         target pid, and audit data.  Pass audit data to
7831         avc_has_perm.
7832         (log_audit_callback): New function, appends extra
7833         audit information.
7834         (bus_selinux_allows_acquire_service): Also take
7835         service name, add it to audit data.
7836         (bus_selinux_allows_send): Also take message
7837         type, interface, method member, error name,
7838         and destination, and add them to audit data.
7839         (log_cb): Initialize func_audit.
7840         
7841         * bus/selinux.h (bus_selinux_allows_acquire_service)
7842         (bus_selinux_allows_send): Update prototypes 
7843
7844         * bus/services.c (bus_registry_acquire_service): Pass
7845         service name to bus_selinux_allows_acquire_service.
7846
7847         * bus/bus.c (bus_context_check_security_policy): Pass
7848         additional audit data.  Move assignment of dest
7849         to its own line.
7850
7851 2004-11-07  Colin Walters  <walters@verbum.org>
7852
7853         * dbus/dbus-transport-unix.c (do_authentication): Always
7854         initialize auth_completed.
7855         
7856 2004-11-07  Colin Walters  <walters@verbum.org>
7857
7858         * bus/bus.c (load_config): Break into three
7859         separate functions: process_config_first_time_only,
7860         process_config_every_time, and process_config_postinit.
7861         (process_config_every_time): Move call of
7862         bus_registry_set_service_context_table into
7863         process_config_postinit.
7864         (process_config_postinit): New function, does
7865         any processing that needs to happen late
7866         in initialization (and also on reload).
7867         (bus_context_new): Instead of calling load_config,
7868         open config parser here and call process_config_first_time_only
7869         and process_config_every_time directly.  Later, after
7870         we have forked but before changing UID,
7871         invoke bus_selinux_full_init, and then call
7872         process_config_postinit.
7873         (bus_context_reload_config): As in bus_context_new,
7874         load parse file inside here, and call process_config_every_time
7875         and process_config_postinit.
7876
7877         * bus/services.h, bus/services.c
7878         (bus_registry_set_service_context_table): Rename
7879         from bus_registry_set_sid_table.  Take string hash from config
7880         parser, and convert them here into SIDs.
7881
7882         * bus/config-parser.c (struct BusConfigParser): Have
7883         config parser only store a mapping of service->context
7884         string.
7885         (merge_service_context_hash): New function.
7886         (merge_included): Merge context string hashes instead
7887         of using bus_selinux_id_table_union.
7888         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7889         simply create a new string hash.
7890         (bus_config_parser_unref): Unref it.
7891         (start_selinux_child): Simply insert strings into hash,
7892         don't call bus_selinux_id_table_copy_over.
7893
7894         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7895         (bus_selinux_id_table_copy_over): Delete.
7896
7897 2004-11-03  Colin Walters  <walters@verbum.org>
7898
7899         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7900         variables.
7901         
7902 2004-11-03  Colin Walters  <walters@verbum.org>
7903
7904         * bus/test-main.c (test_pre_hook): Fix test logic,
7905         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7906
7907 2004-11-02  Colin Walters  <walters@redhat.com>
7908
7909         * bus/selinux.c (bus_selinux_init): Split into two functions,
7910         bus_selinux_pre_init and bus_selinux_post_init.
7911         (bus_selinux_pre_init): Just determine whether SELinux is
7912         enabled.
7913         (bus_selinux_post_init): Do everything else.
7914
7915         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7916         config file, and bus_selinux_post_init after.  This ensures that
7917         we don't lose the policyreload notification thread that
7918         bus_selinux_init created before forking previously.
7919         
7920         * bus/test-main.c (test_pre_hook): Update for split.
7921
7922 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7923
7924         Patch from Johan Fischer <linux@fischaz.com>
7925         
7926         * mono/doc/Makefile.am (install-data-local): Added directory
7927         install for DESTDIR
7928
7929 2004-10-29  Colin Walters  <walters@redhat.com>
7930
7931         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7932         parameter for fd to write pid to.       
7933
7934         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7935         
7936         * bus/bus.c (bus_context_new): Pass print_pid_fd
7937         to _dbus_become_daemon (bug #1720)
7938
7939 2004-10-29  Colin Walters  <walters@redhat.com>
7940
7941         Patch from Ed Catmur <ed@catmur.co.uk>
7942
7943         * mono/doc/Makefile.am (install-data-local): Handle
7944         DESTDIR.
7945
7946 2004-10-29  Colin Walters  <walters@redhat.com>
7947
7948         * bus/.cvsignore, qt/.cvsignore: Update.
7949
7950 2004-10-29  Colin Walters  <walters@redhat.com>
7951
7952         Patch from Kristof Vansant <de_lupus@pandora.be>
7953
7954         * configure.in: Detect Slackware.
7955         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7956         * bus/rc.messagebus.in: New file.
7957
7958 2004-10-29  Colin Walters  <walters@redhat.com>
7959
7960         * tools/dbus-monitor.c (filter_func): Return
7961         DBUS_HANDLER_RESULT_HANDLED in filter function
7962         for now.  See:
7963         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7964
7965 2004-10-29  Colin Walters  <walters@redhat.com>
7966
7967         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7968
7969         * bus/services.c (bus_registry_acquire_service): 
7970         Correctly retrieve service name from DBusString
7971         for printing.
7972
7973 2004-10-29  Colin Walters  <walters@redhat.com>
7974
7975         * dbus/dbus-glib.h: Update documentation to not
7976         refer to internal APIs.
7977
7978 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7979
7980         * mono/Arguments.cs (GetDBusTypeConstructor):
7981         type.UnderlyingSystemType will return "System.Byte" if you do it
7982         on "byte[]", which is not what we want.  So check the type.IsArray
7983         property and use System.Array instead.
7984
7985 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7986
7987         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7988         the DBusUserInfo structure since this is passed into the function.
7989         This would cause a double free when the function that allocated
7990         the structure would try to free it when an error occured.
7991
7992         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7993         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7994         for service activation to avoid 32bit/64bit parallel install issues
7995
7996 2004-10-21  Colin Walters  <walters@verbum.org>
7997
7998         * AUTHORS: Fix my email address, the @gnu.org one
7999         has been bouncing for some time.  Also add J5.
8000         
8001 2004-10-21  Colin Walters  <walters@verbum.org>
8002
8003         * dbus/dbus-transport-unix.c (do_authentication): Return
8004         authentication status to callers.
8005         (unix_handle_watch): If we completed authentication this round,
8006         don't do another read.  Instead wait until the next iteration,
8007         after we've read any pending data in the auth buffer.
8008         (unix_do_iteration): Ditto.
8009         (unix_handle_watch): Updated for new do_authentication prototype.
8010
8011 2004-10-18  Colin Walters  <walters@verbum.org>
8012
8013         * bus/selinux.c (bus_selinux_enabled): Handle
8014         --disable-selinux case.
8015         
8016 2004-10-18  Colin Walters  <walters@verbum.org>
8017
8018         * bus/selinux.h: Add bus_selinux_enabled.
8019         
8020         * bus/selinux.c (bus_selinux_enabled): Implement it.
8021         
8022         * bus/config-parser.c (struct include): Add
8023         if_selinux_enabled member.
8024         (start_busconfig_child): Parse if_selinux_enabled
8025         attribute for include.
8026         (bus_config_parser_content): Handle it.
8027
8028         * bus/session.conf.in, bus/system.conf.in: Add
8029         inclusion of context mapping to default config files;
8030         conditional on SELinux being enabled.
8031         
8032         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
8033         
8034         * test/data/invalid-config-files/badselinux-1.conf, 
8035         test/data/invalid-config-files/badselinux-2.conf:
8036         Test files for bad syntax.
8037         
8038 2004-10-17  Colin Walters  <walters@verbum.org>
8039
8040         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
8041         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
8042         format specifier mismatches.
8043
8044 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8045
8046         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
8047         format string.
8048
8049         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
8050         pointer (bug #1540, Leonardo Boiko).
8051
8052 2004-09-28  Jon Trowbridge  <trow@ximian.com>
8053
8054         * mono/BusDriver.cs: Changed BusDriver struct to remove
8055         the ServiceCreated and ServiceDeleted events and replace them
8056         with the new ServiceOwnerChanged event.
8057
8058         * mono/example/BusListener.cs: Added a new example program,
8059         which listens for and reports any ServiceOwnerChanged events
8060         on the bus driver.
8061
8062         * mono/example/Makefile.am (DESTDIR): Build changes for the
8063         new BusListener.cs example.
8064
8065 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8066
8067         * bus/signals.c (bus_match_rule_parse): validate the components of
8068         match rules (bug #1439).
8069
8070         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
8071
8072 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8073
8074         * doc/dbus-specification.xml: document ServiceOwnerChanged
8075         signal.
8076         
8077         * bus/driver.c, bus/driver.h, bus/services.c: Use
8078         ServiceOwnerChanged signal instead of ServiceCreated and
8079         ServiceDeleted.
8080         
8081         * bus/dispatch.c: update testcase for the new signal.
8082
8083 2004-09-20  Jon Trowbridge  <trow@ximian.com>
8084
8085         Patch from Nat Friedman <nat@novell.com>
8086
8087         * mono/Makefile.am: A number of small build fixes to allow "make
8088         distcheck" to succeed.
8089
8090         * mono/example/Makefile.am: "make distcheck" fixes.
8091
8092         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
8093         key in @srcdir@.
8094
8095         * test/Makefile.am: "make distcheck" fixes.
8096
8097 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8098
8099         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
8100
8101         * doc/busconfig.dtd: update the DTD for the at_console attribute.
8102
8103         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
8104         messages after the first one (bug #1389).
8105         
8106         * bus/dispatch.c (check_double_hello_message): add a test case for
8107         the double hello message bug.
8108         (check_existent_service_activation): fix check of spawning error.
8109         
8110 2004-09-16  David Zeuthen  <david@fubar.dk>
8111
8112         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
8113
8114 2004-09-12  David Zeuthen  <david@fubar.dk>
8115
8116         Patch from Kay Sievers <kay.sievers@vrfy.org>
8117
8118         * bus/bus.c (bus_context_new):
8119         * bus/bus.h:
8120         * bus/main.c (usage)
8121         (main):
8122         Add commandline option --nofork to override configuration file
8123         setting.
8124
8125 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8126
8127         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
8128         compilers don't like it (bug #974).
8129
8130 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
8131
8132         * qt/connection.*: Applied patch by Jérôme Lodewyck
8133         <lodewyck@clipper.ens.fr> to integrate an existing
8134         connection into the Qt eventloop
8135
8136 2004-08-30  Jon Trowbridge  <trow@ximian.com>
8137
8138         * mono/BusDriver.cs: Added.  This is a class for interacting with
8139         the org.freedesktop.DBus service.
8140
8141         * mono/Message.cs: Added a mechanism to expose the message that is
8142         currently being dispatched via the static Message.Current
8143         property.  Added Message.Sender and Message.Destination
8144         properties.
8145
8146         * mono/Handler.cs: Expose the dispatched message via
8147         Message.Current when handling method calls.
8148
8149         * mono/Service.cs: Expose the dispatched message via
8150         Message.Current when handling signal emissions.
8151         
8152         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
8153         Connection.BaseService property.
8154
8155 2004-08-28  Havoc Pennington  <hp@redhat.com>
8156
8157         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
8158
8159         More fixes from Steve Grubb
8160         
8161         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
8162         (_dbus_listen_tcp_socket): fix fd leak
8163
8164         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
8165         EINTR to a bit lower in the code
8166
8167 2004-08-26  Jon Trowbridge  <trow@ximian.com>
8168
8169         * bus/driver.c (bus_driver_handle_service_exists): Respond with
8170         TRUE if we are inquiring about the existence of the built-in
8171         org.freedesktop.DBus service.
8172
8173 2004-08-25  John Palmieri  <johnp@redhat.com>
8174         * bus/config-parser.c:
8175         (struct PolicyType): Add POLICY_CONSOLE
8176         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
8177         (start_busconfig_child): Sets up console element when
8178         <policy at_console=""> is encountered in a policy file
8179         (append_rule_from_element): Convert console elements to console
8180         rules.
8181
8182         * bus/policy.c: 
8183         (bus_policy_create_client_policy): Add console rules to the client
8184         policy based on if the client is at the console
8185         (bus_policy_append_console_rule): New function for adding a
8186         console rule to a policy
8187         (bus_policy_merge): Handle console rule merging
8188
8189         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
8190         where we check for console user files
8191         
8192         * dbus/dbus-sysdeps.c:
8193         (_dbus_file_exists): New function which checks if the given
8194         file exists
8195         (_dbus_user_at_console): New function which does the system
8196         specific process of checking if the user is at the console
8197
8198         * dbus/dbus-userdb.c:
8199         (_dbus_is_console_user): New function converts a UID to user name
8200         and then calls the system specific _dbus_user_at_console to 
8201         see if the user is at the console and therefor a console user
8202
8203 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8204
8205         * bus/config-parser.c (set_limit):
8206         * bus/dbus-daemon-1.1.in:
8207         * test/data/valid-config-files/many-rules.conf: set the
8208         max_match_rules_per_connection limt from the config file. 
8209
8210         * doc/busconfig.dtd: update the DTD.
8211
8212         * bus/driver.c: remove some unused variables.
8213
8214 2004-08-24  Mikael Hallendal  <micke@imendio.com>
8215
8216         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
8217         it's been replaced by dbus_g_bus_get
8218
8219 2004-08-23  Colin Walters  <walters@redhat.com>
8220
8221         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8222
8223         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
8224
8225         * bus/selinux.c: Create a thread for policy reload notification.
8226         (bus_selinux_get_policy_root): Implement.
8227
8228         * bus/config-parser.c (start_busconfig_child)
8229         (bus_config_parser_content): Support SELinux-root relative
8230         inclusion.
8231
8232         * configure.in <HAVE_SELINUX>: Add -lpthread.
8233         
8234         * bus/test-main.c (test_pre_hook, test_post_hook): New.
8235         (test_post_hook): Move memory checking into here.
8236         (test_pre_hook, test_post_hook): Move SELinux checks in
8237         here, but conditional on a DBUS_TEST_SELINUX environment
8238         variable.  Unfortunately we can't run the SELinux checks
8239         as a normal user, since they won't have any permissions
8240         for /selinux.  So this will have to be tested manually
8241         for now, until we have virtualization for most of
8242         libselinux.
8243         
8244 2004-08-23  Havoc Pennington  <hp@redhat.com>
8245
8246         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
8247         drop supplementary groups, suggested by Steve Grubb
8248
8249 2004-08-20  Colin Walters  <walters@redhat.com>
8250
8251         * bus/config-parser.c (start_busconfig_child): Remove some unused
8252         variables.
8253         
8254         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
8255         warning.
8256
8257 2004-08-17  Joe Shaw  <joeshaw@novell.com>
8258
8259         * configure.in: If --enable-mono is passed in, if we can't find
8260         mono error out.
8261
8262         * mono/Makefile.am: Use /gacutil to install assemblies into the
8263         GAC and not /root.
8264
8265 2004-08-12  Havoc Pennington  <hp@redhat.com>
8266
8267         * NEWS: update for 0.22
8268
8269         * configure.in: release 0.22
8270
8271 2004-08-11  Colin Walters  <walters@redhat.com>
8272
8273         * tools/dbus-send.c (main, usage): Add --reply-timeout
8274         argument.
8275
8276 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8277
8278         * bus/bus.c (process_config_first_time_only): get rid of an unused
8279         DBusError that was causing a memoy leak (bug #989).
8280
8281         * dbus/dbus-keyring.c, dbus/dbus-message.c:
8282         fix compilation on Solaris/Forte C (bug #974)
8283
8284         * bus/main.c (main): plug two minuscule memleaks.
8285
8286 2004-08-10  Havoc Pennington  <hp@redhat.com>
8287
8288         * doc/dbus-tutorial.xml: add some more info on GLib bindings
8289
8290 2004-08-09  Havoc Pennington  <hp@redhat.com>
8291
8292         * COPYING: switch to Academic Free License version 2.1 instead of
8293         2.0, to resolve complaints about patent termination clause.
8294
8295 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
8296
8297         * README: added documentation for the --enable-python 
8298         configure switch.
8299
8300 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8301
8302         * bus/config-parser.c (bus_config_parser_new): fix an invalid
8303         _unref in the SELinux support.
8304
8305         * doc/busconfig.dtd: update DTD for SELinux support.
8306
8307         * bus/config-loader-libxml.c: fix error handler and parser
8308         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8309
8310         * configure.in: remove the warning about libxml2.
8311
8312         * dbus/dbus-bus.c: silence doxygen warning.
8313
8314 2004-07-31  Colin Walters  <walters@redhat.com>
8315
8316         * configure.in: Move #error in SELinux check to its own line.
8317
8318 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8319
8320         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8321         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8322         dbus_error_set.
8323
8324         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8325         broken by the change in the _SET_OOM macros.
8326
8327 2004-07-31  Colin Walters  <walters@redhat.com>
8328
8329         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8330         BUS_SET_OOM.
8331
8332 2004-07-31  Colin Walters  <walters@redhat.com>
8333
8334         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8335         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8336         AC_MSG_CHECKING.
8337
8338 2004-07-24  Havoc Pennington  <hp@redhat.com>
8339
8340         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8341
8342         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8343         functionality
8344
8345         * configure.in: add --enable-selinux
8346         
8347         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8348
8349         * bus/main.c (main): initialize and shut down selinux
8350
8351         * bus/connection.c: store SELinux ID on each connection, to avoid 
8352         repeated getting of the string context and converting it into 
8353         an ID
8354
8355         * bus/bus.c (bus_context_get_policy): new accessor, though it
8356         isn't used
8357         (bus_context_check_security_policy): check whether the security
8358         context of sender connection can send to the security context of
8359         recipient connection
8360
8361         * bus/config-parser.c: add parsing for <selinux> and <associate>
8362         
8363         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8364         implement dbus_connection_get_unix_fd()
8365
8366         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8367         function, used by the selinux stuff
8368         
8369 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8370
8371         * bus/config-loader-libxml.c: complete the implementation of
8372         libxml backend for config file loader. Doesn't work with full OOM
8373         test yet. 
8374         
8375         * configure.in: change error when selecting libxml into a warning.
8376         
8377         * test/data/invalid-config-files: add two non-well-formed XML
8378         files. 
8379         
8380         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8381         
8382         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8383         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8384         be necessary to read all the buffer. (bug #894)
8385
8386         * bus/activation.c (bus_activation_activate_service): fix a
8387         potential assertion failure (bug #896). Small optimization in the
8388         case of auto-activation messages.
8389
8390         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8391         add test case for byte-through-vararg bug (#901). patch by Kimmo
8392         Hämäläinen. 
8393
8394 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8395
8396         * python/dbus.py:
8397         * python/dbus_bindings.pyx.in:
8398         Add dbus.init_gthreads (), allow emit_signal to pass
8399         arguments to the signal.
8400         
8401 2004-07-24  Havoc Pennington  <hp@redhat.com>
8402
8403         * AUTHORS: add some people, not really comprehensively, let me
8404         know if I missed you
8405
8406 2004-07-24  Havoc Pennington  <hp@redhat.com>
8407
8408         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8409         Owen
8410
8411         * test/Makefile.am (DIST_SUBDIRS): here also
8412
8413 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8414
8415         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8416         breaking build on Solaris, reported by Farhad Saberi on the ML.
8417
8418         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8419         va_arg invocation to account for integer promotion in the case of
8420         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8421
8422         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8423         _dbus_list_get_first_link, not _dbus_list_get_first.
8424
8425         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8426
8427         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8428         handler functions so that the asserts in _dbus_object_subtree_unref
8429         do not fail.
8430
8431         * dbus/dbus-transport-unix.c (do_reading):
8432         _dbus_transport_queue_messages return value is of type
8433         dbus_bool_t, not DBusDispatchStatus.
8434         
8435 2004-07-19  David Zeuthen  <david@fubar.dk>
8436
8437         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8438
8439         * bus/dispatch.c:
8440         (check_get_connection_unix_user): Debug says GetProperty; but the
8441         method is called GetConnectionUnixUser
8442         (check_get_connection_unix_process_id): New function
8443         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8444         also call check_get_connection_unix_process_id()
8445         
8446         * bus/driver.c:
8447         (bus_driver_handle_get_connection_unix_process_id): New function,
8448         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8449         interface
8450         
8451         * dbus/dbus-auth.c:
8452         (handle_server_data_external_mech): Set pid from the credentials
8453         obtained from the socket
8454         
8455         * dbus/dbus-connection.c:
8456         (dbus_connection_get_unix_process_id): New function
8457         
8458         * dbus/dbus-connection.h: 
8459         Add prototype for dbus_connection_get_unix_process_id
8460         
8461         * dbus/dbus-transport.c:
8462         (_dbus_transport_get_unix_process_id): New function
8463         
8464         * dbus/dbus-transport.h:
8465         Add prototype for _dbus_transport_get_unix_process_id
8466         
8467 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8468
8469         * dbus/dbus-message.c: Message counter fix, patch by Christian
8470         Hammond <chipx86@gnupdate.org>
8471
8472 2004-07-18  Seth Nickell  <seth@gnome.org>
8473
8474         * python/dbus.py:
8475         * python/dbus_bindings.pyx.in:
8476         * python/tests/test-client.py:
8477
8478         Add dbus.ByteArray and dbus_bindings.ByteArray
8479         types so that byte streams can be passed back.
8480
8481         Give jdahlin the heaps of credit that are so
8482         rightfully his.
8483         
8484 2004-07-12  Seth Nickell  <seth@gnome.org>
8485
8486         * python/dbus.py:
8487
8488         Add message argument to the default object_method_handler
8489         function.
8490         
8491         * python/dbus_bindings.pyx.in:
8492
8493         Automatically return NIL when passed an empty list
8494         (we can't pass back a list since lists are typed
8495         and we don't have any idea what type the the client
8496         intended the list to be... :-( )
8497         
8498 2004-07-10  Seth Nickell  <seth@gnome.org>
8499
8500         * python/examples/Makefile.am:
8501
8502         Fix distcheck breakage caused by new examples.
8503
8504 2004-07-10  Seth Nickell  <seth@gnome.org>
8505
8506         * python/dbus.py:
8507
8508         Add "message" argument to service-side dbus.Object
8509         methods. This will break existing services written
8510         using the python bindings, but will allow extraction
8511         of all the message information (e.g. who its from).
8512
8513         Add improved "object oriented" signal handling/emission.
8514         
8515         * python/examples/example-service.py:
8516
8517         Nix this example.
8518         
8519         * python/examples/example-signal-emitter.py:
8520         * python/examples/example-signal-recipient.py:
8521
8522         Two new examples that show how to emit and receive
8523         signals using the new APIs.
8524         
8525         * python/examples/example-signals.py:
8526         * python/examples/gconf-proxy-service.py:
8527         * python/examples/gconf-proxy-service2.py:
8528
8529         Add "message" argument to service methods.
8530
8531 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8532
8533         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8534         * dbus/bus.c (dbus_bus_get_unix_user)
8535         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8536         method of org.freedesktop.DBus interface.
8537
8538         * bus/dispatch.c: test case
8539
8540 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8541
8542         * python/Makefile.am: switched include directory from glib/ to dbus/
8543         since dbus-glib.h moved
8544  
8545 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8546
8547         * configure.in: prevent building the gcj stuff and libxml loader
8548         since they are broken.
8549
8550 2004-06-20  Havoc Pennington  <hp@redhat.com>
8551
8552         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8553         codes from the dbus error names
8554         
8555         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8556         as dbus/dbus-glib.h and that breakage is now visible due to 
8557         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8558         
8559         * glib/dbus-glib.h: s/gproxy/g_proxy/
8560
8561         * dbus/dbus-shared.h: new header to hold stuff shared with
8562         binding APIs
8563         
8564         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8565         than dbus-errors.h
8566
8567         * glib/dbus-glib.h (dbus_set_g_error): move to
8568         dbus-glib-lowlevel.h
8569
8570         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8571         of stuff to enable this
8572
8573         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8574
8575         * a bunch of other changes with the same basic "separate glib 
8576         bindings from dbus.h" theme
8577         
8578 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8579
8580         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8581
8582         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8583
8584 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8585
8586         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8587         the reply value of the ServiceExists message.
8588
8589 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8590
8591         * python/dbus_bindings.pyx.in: No longer need to parse path
8592         elements and pass them as arrays of strings.  The C API now
8593         accepts plain path strings.
8594         (_build_parsed_path): removed 
8595
8596 2004-06-07  Havoc Pennington  <hp@redhat.com>
8597
8598         * doc/TODO: remove auto-activation item since it's done; sort
8599         items by importance/milestone
8600
8601 2004-06-07  Havoc Pennington  <hp@redhat.com>
8602
8603         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8604         random signature when using REQUIRED_FIELDS (this hack won't work
8605         in the long term)
8606
8607         * dbus/dbus-message.c: change the signature to be a header field,
8608         instead of message->signature special-case string. Incremental
8609         step forward. Then we can fix up code to send the signature in the
8610         message, then fix up code to validate said signature, then fix up
8611         code to not put the typecodes inline, etc.
8612         (load_one_message): don't make up the signature after the fact
8613         (decode_header_data): require signature field for the known
8614         message types
8615
8616         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8617
8618         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8619
8620 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8621
8622         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8623
8624         * mono/Handler.cs: Updated to follow new path argument for
8625         (un-)registering objects.
8626
8627         * mono/example/Makefile.am:
8628         * mono/Makefile.am:
8629         * configure.in: Bumped required version for mono and use new -pkg
8630         syntax for deps
8631
8632 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8633
8634         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8635         registration functions take the path argument as char* instead of
8636         char**.
8637
8638         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8639         split off the path decompostion part of
8640         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8641         warnings. 
8642
8643         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8644         
8645 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8646  
8647         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8648         machine approach.  A state is implemented as a function that
8649         handles incoming events as specified for that state.
8650         
8651         * doc/dbus-specification.xml: Update auth protocol state machine
8652         specification to match implementation.  Remove some leftover
8653         base64 examples.
8654
8655 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8656
8657         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8658         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8659         quiet doxygen.
8660
8661         * Doxyfile.in: remove deprecated options.
8662
8663         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8664         glib/test-thread.h, glib/test-thread-client.c,
8665         glib/test-thread-server.c, glib/test-profile.c,
8666         glib/test-dbus-glib.c: remove these unused files.
8667
8668 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8669
8670         * dbus/dbus-object-tree.c
8671         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8672         non-fallback handlers (bug #684).
8673         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8674         (find_subtree_recurse): report wether the returned subtree is an
8675         exact match or a "fallback" match higher up in the tree.
8676         (object_tree_test_iteration): update test case.
8677
8678 2004-06-01  Seth Nickell  <seth@gnome.org>
8679
8680         * python/dbus_bindings.pyx.in:
8681         * python/tests/test-client.py:
8682
8683         Round off basic type support. Add dicts (yay!), and 
8684         remaining array types.
8685
8686         Make MessageIter more general so it works for dicts too.
8687
8688         Mark all loop variables as C integers.
8689         
8690 2004-05-31  Havoc Pennington  <hp@redhat.com>
8691
8692         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8693         "in" before "out"
8694
8695         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8696
8697         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8698         option that runs the tests, and start filling in some code
8699         including for starters just dumping the interfaces to stdout
8700
8701         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8702
8703         * test/data/valid-introspection-files/lots-of-types.xml: test of
8704         an example introspection file
8705
8706         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8707         "node" (I think...)
8708
8709 2004-05-31  Seth Nickell  <seth@gnome.org>
8710
8711         * python/dbus_bindings.pyx.in:
8712         * python/tests/test-client.py:
8713
8714         Test Suite: 1
8715         Python Bindings: 0
8716
8717         Fix string array memory trashing bug... oops...
8718
8719 2004-05-30  Seth Nickell  <seth@gnome.org>
8720
8721         * python/dbus.py:
8722
8723         Add a nicer-but-less-flexible alternate API for handling 
8724         calls to virtual objects in dbus.ObjectTree.
8725
8726         Screw up the argument order to the dbus.Object constructor
8727         for consistency with dbus.ObjectTree (and to make dbus_methods
8728         optional for future extension)
8729         
8730         * python/examples/Makefile.am:
8731         * python/examples/gconf-proxy-service.py:
8732         * python/examples/gconf-proxy-service2.py:
8733
8734         Alternate implementation of gconf-proxy-service using the
8735         nicer dbus.ObjectTree API.
8736         
8737         * python/examples/example-service.py:
8738         * python/tests/test-server.py
8739
8740         Reverse the argument order to deal with dbus.Object constructor
8741         changes.
8742         
8743 2004-05-30  Seth Nickell  <seth@gnome.org>
8744
8745         * python/examples/example-client.py:
8746         * python/examples/example-service.py:
8747
8748         Take it back. Lists seem to work but they're broken
8749         in the test suite. Make the base examples use
8750         lists (works fine).
8751
8752 2004-05-30  Seth Nickell  <seth@gnome.org>
8753
8754         * python/dbus_bindings.pyx.in:
8755         * python/tests/test-client.py:
8756
8757         Add some more tests and fix errors that crop up.
8758         Unfortunately, currently it seems like marshalling
8759         and unmarshalling of lists is completely broken :-(
8760
8761 2004-05-30  Seth Nickell  <seth@gnome.org>
8762
8763         * python/dbus_bindings.pyx.in:
8764
8765         Add support for ObjectPath type.
8766
8767         * python/dbus.py:
8768
8769         Refactor message handling code to a common function.
8770         
8771         * python/tests/test-client.py:
8772         * python/tests/test-server.py:
8773
8774         Add tests that check to make sure values of all types
8775         can be echoed from a service w/o mangling.
8776         
8777 2004-05-29  Seth Nickell  <seth@gnome.org>
8778
8779         * python/dbus.py:
8780
8781         Add ObjectTree class which allows implementation
8782         of trees of "virtual" objects. Basically the python
8783         wrapper for "register_fallback".
8784         
8785         * python/examples/Makefile.am
8786         * python/examples/gconf-proxy-client.py:
8787         * python/examples/gconf-proxy-service.py:
8788
8789         Implement a simple GConf proxy service that supports
8790         get/set on string and int GConf keys using the ObjectTree.
8791         
8792 2004-05-29  Seth Nickell  <seth@gnome.org>
8793
8794         * python/dbus.py:
8795         * python/examples/example-client.py:
8796         * python/examples/example-service.py:
8797         * python/examples/list-system-services.py:
8798
8799         Add SessionBus, SystemBus and ActivationBus classes
8800         so you don't need to know the special little BUS_TYPE
8801         flag.
8802         
8803 2004-05-29  Havoc Pennington  <hp@redhat.com>
8804
8805         * bus/config-parser.c (process_test_valid_subdir): temporarily
8806         stop testing config parser OOM handling, since expat has issues
8807         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8808
8809         * bus/dbus-daemon-1.1.in: change requested_reply to
8810         send_requested_reply/receive_requested_reply so we can send the
8811         replies, not just receive them.
8812
8813         * bus/config-parser.c: parse the new
8814         send_requested_reply/receive_requested_reply
8815
8816         * bus/policy.c (bus_client_policy_check_can_send): add
8817         requested_reply argument and use it
8818
8819         * bus/bus.c (bus_context_check_security_policy): pass through
8820         requested_reply status to message send check
8821
8822         * bus/system.conf.in: adapt to requested_reply change
8823         
8824 2004-05-28  Havoc Pennington  <hp@redhat.com>
8825
8826         * test/glib/test-service-glib.c (main): remove unused variable
8827
8828         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8829
8830         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8831         from the enum, no longer in use.
8832
8833         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8834         works right.
8835
8836         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8837         whether error_name passed in is a valid error name.
8838
8839 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8840
8841         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8842         OBJECT_PATH and OBJECT_PATH_ARRAY
8843
8844 2004-05-28  Seth Nickell  <seth@gnome.org>
8845
8846         * python/examples/Makefile.am:
8847
8848         Forget to add Makefile.am. Do not pass go.
8849
8850 2004-05-28  Michael Meeks  <michael@ximian.com>
8851
8852         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8853         fix no int64 case.
8854
8855         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8856
8857         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8858         (_dbus_message_iter_get_basic_type_array): impl.
8859         drastically simplify ~all relevant _get methods to use these.
8860         (_dbus_message_iter_append_basic_array),
8861         (dbus_message_iter_append_basic): impl
8862         drastically simplify ~all relevant _append methods to use these.
8863
8864         * dbus/dbus-message-builder.c (parse_basic_type) 
8865         (parse_basic_array, lookup_basic_type): impl.
8866         (_dbus_message_data_load): prune scads of duplicate /
8867         cut & paste coding.
8868
8869         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8870         (_dbus_demarshal_basic_type): implement,
8871         (demarshal_and_validate_len/arg): beef up debug.
8872         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8873
8874 2004-05-27  Seth Nickell  <seth@gnome.org>
8875
8876         * configure.in:
8877         * python/Makefile.am:
8878
8879         Include the example python apps in the tarball.
8880         
8881         * python/examples/list-system-services.py
8882
8883         Add a python new example that fetches the list of services
8884         from the system bus.
8885         
8886 2004-05-27  Seth Nickell  <seth@gnome.org>
8887
8888         * python/dbus.py:
8889         * python/dbus_bindings.pyx.in:
8890
8891         Fix failure to notify that a signal was not handled,
8892         resulted in hung functions.
8893         
8894 2004-05-25  Colin Walters  <walters@redhat.com>
8895
8896         * tools/dbus-monitor.c (main): Monitor all types of messages.
8897
8898 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8899
8900         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8901         which unregisters the object path and disposes the handler.
8902
8903 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8904  
8905         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8906          
8907         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8908         operands to && so we call dbus_message_iter_next () for the last
8909         argument also.
8910
8911 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8912
8913         * dbus/dbus-object-tree.c
8914         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8915         children even if the requested path isn't registered.
8916         (object_tree_test_iteration): test object_tree_list_registered.
8917
8918         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8919         it to 0.
8920         
8921 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8922
8923         * doc/TODO: Remove resolved items.
8924
8925         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8926         field.
8927         
8928         * bus/connection.c (bus_connections_expect_reply): Enforce the
8929         per-connection limit on pending replies.
8930         
8931         Patch from Jon Trowbridge <trow@ximian.com>:
8932  
8933         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8934         up a watch that triggers a config reload when one end of the pipe
8935         becomes readable.
8936         (signal_handler): Instead of doing the config reload in our SIGHUP
8937         handler, just write to the reload pipe and let the associated
8938         watch handle the reload when control returns to the main loop.
8939  
8940         * bus/driver.c (bus_driver_handle_reload_config): Added.
8941         Implements a ReloadConfig method for requesting a configuration
8942         file reload via the bus driver.
8943  
8944 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8945
8946         * HACKING: Updated release instructions concerning the wiki page.
8947
8948 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8949
8950         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8951         filter against auth->allowed_mechs; we only add allowed mechs in
8952         record_mechanisms().
8953  
8954         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8955         ALLOWED_MECHS to auth-script format so we can set the list of
8956         allowed mechanisms.
8957  
8958         * data/auth/client-out-of-mechanisms.auth-script: New test to
8959         check client disconnects when it is out of mechanisms to try.
8960  
8961         * dbus/dbus-auth.c (process_command): Remove check for lines
8962         longer that 1 MB; we only buffer up maximum 16 kB.
8963  
8964         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8965         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8966         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8967         assume there might be unused bytes.
8968  
8969         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8970         client-out-of-mechs, it is handled in process_reject(). Move check
8971         for max failures to send_rejected(), as it's a server-only thing.
8972
8973         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8974         send_auth(), send_data(), send_rejected(), send_error(),
8975         send_ok(), send_begin() and send_cancel().
8976
8977 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8978
8979         Remove base64 encoding, replace with hex encoding. Original patch
8980         from trow@ximian.com, added error handling.
8981
8982         * dbus/dbus-string.c (_dbus_string_base64_encode)
8983         (_dbus_string_base64_decode): Remove.
8984         (_dbus_string_hex_decode): Add end_return argument so we can
8985         distinguish between OOM and invalid hex encoding.
8986         (_dbus_string_test): Remove base64 tests and add test case for
8987         invalid hex.
8988
8989         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8990         Replace base64 with hex.
8991
8992         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8993         for invalid hex encoded data in auth protocol.
8994
8995 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8996
8997         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8998         leak.
8999
9000 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
9001
9002         * mono/dbus-sharp.dll.config.in: Added for GAC
9003         * mono/dbus-sharp.snk: Added for GAC
9004         * mono/Assembly.cs.in: Added for GAC
9005         * mono/Makefile.am: Changes for GAC installation        
9006         * configure.in: Added refs for dbus-sharp.dll.config.in and
9007         Assembly.cs.in. More fixes for mono testing
9008         * mono/example/Makefile.am: Changed var to CSC
9009         * Makefile.am: Changed flag name to DBUS_USE_CSC
9010
9011 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
9012
9013         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
9014         * mono/doc/*: Added documentation framework
9015         * configure.in: Added monodoc check
9016         * README: Added description of mono configure flags
9017
9018 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
9019
9020         * doc/dbus-specification.xml: Added a "Required" column to the 
9021         header fields table and changed the "zero or more" verbage in
9022         the above paragraph to read "The header must contain the required 
9023         named header fields and zero or more of the optional named header 
9024         fields".
9025         * test/data/invalid-messages/*.message: Added the required PATH 
9026         named header field to the tests so that they don't fail on 
9027         'Missing path field'
9028
9029 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
9030
9031         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
9032         the stack by implicitly defining variable and parameter types and
9033         removing the hack of defining C pointers as python objects and later
9034         casting them.
9035
9036 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
9037
9038         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
9039
9040 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
9041
9042         * mono/DBusType/Dict.cs: Handle empty dicts
9043         * mono/DBusType/Array.cs: Handle empty arrays
9044         * mono/Arguments.cs: Handle empty arguments
9045
9046 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
9047
9048         * dbus-sharp.pc.in: Modified to include include Libs and Requires
9049         field
9050
9051 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
9052
9053         * test/data/valid-messages/standard-*.message: Update message
9054         test scripts to new header field names.
9055
9056 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
9057
9058         * test/break-loader.c (randomly_do_n_things): tracked down buffer
9059         overflow to times_we_did_each_thing array which would chop off the
9060         first character of the failure_dir string. Increased the size of
9061         the array to 7 to reflect the number of random mutation functions
9062         we have.
9063
9064 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
9065
9066         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
9067         unix_server->watch here, it is unreffed in disconnect.
9068         (_dbus_server_new_for_tcp_socket): convert NULL host to
9069         "localhost" here so we don't append NULL to address.
9070         
9071         * dbus/dbus-server.c (_dbus_server_test): Add test case for
9072         various addresses, including tcp with no explicit host.
9073
9074 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9075
9076         * dbus/dbus-message.c (decode_header_data, decode_string_field):
9077         fix incorrect setting of .name_offset in the HeaderField (it was
9078         off by two bytes, positioned right after the name and typecode)
9079
9080         * bus/bus.c (bus_context_new, bus_context_unref): test before
9081         calling dbus_server_free_data_slot and _dbus_user_database_unref
9082         in case of an error.
9083
9084         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
9085         by libdbus-gtool.
9086
9087 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
9088
9089         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
9090         _dbus_poll() instead of select().
9091
9092 2004-04-15  Jon Trowbridge  <trow@ximian.com>
9093
9094         * bus/main.c (signal_handler): Reload the configuration files
9095         on SIGHUP.
9096         (main): Set up our SIGHUP handler.
9097
9098         * bus/bus.c (struct BusContext): Store the config file, user and
9099         fork flag in the BusContext.
9100         (process_config_first_time_only): Added.  Contains the code
9101         (previously in bus_context_new) for setting up the BusContext from
9102         the BusConfigParser that should only be run the first time the
9103         config files are read.
9104         (process_config_every_time): Added.  Contains the code (previously
9105         in bus_context_new) for setting up the BusContext from the
9106         BusConfigParser that should be run every time the config files are
9107         read.
9108         (load_config): Added.  Builds a BusConfigParser from the config
9109         files and passes the resulting structure off to
9110         process_config_first_time_only (assuming this is the first time)
9111         and process_config_every_time.
9112         (bus_context_new): All of the config-related code has been moved
9113         to process_config_first_time_only and process_config_every_time.
9114         Now this function just does the non-config-related initializations
9115         and calls load_config.
9116         (bus_context_reload_config): Added.
9117
9118 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9119
9120         * bus/driver.c (bus_driver_handle_get_service_owner):
9121         implement a GetServiceOwner method.
9122         * doc/dbus-specification.xml: document it.
9123         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
9124         
9125         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
9126         implement, using the bus GetServiceOwner method.
9127
9128         * test/glib/test-dbus-glib.c:
9129         use dbus_gproxy_new_for_service_owner so that we can receive the
9130         signal. 
9131
9132 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
9133
9134         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9135         dbus/dbus-message.c, dbus/dbus-protocol.h
9136         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
9137
9138         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9139         dbus/dbus-message.c, dbus/dbus-protocol.h
9140         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
9141
9142         * dbus/dbus-internals.c (_dbus_header_field_to_string):
9143         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
9144         DBUS_HEADER_FIELD_SENDER resolves to "sender"
9145
9146         * doc/dbus-specification.xml (Header Fields Table):
9147         s/SERVICE/DESTINATION
9148         s/SENDER_SERVICE/SENDER
9149
9150
9151 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9152
9153         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
9154         a few seconds.
9155
9156 2004-04-13  Michael Meeks  <michael@ximian.com>
9157
9158         * glib/dbus-gobject.c (handle_introspect): split out
9159         (introspect_properties): this.
9160         (handle_introspect): implement this.
9161
9162         * test/glib/Makefile.am: use the absolute path so the bus
9163         daemon's chdir ("/") doesn't kill us dead.
9164
9165         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
9166
9167 2004-04-12  Jon Trowbridge  <trow@ximian.com>
9168
9169         * bus/config-parser.c (struct BusConfigParser): Added
9170         included_files field.
9171         (seen_include): Added.  Checks whether or not a file has already
9172         been included by any parent BusConfigParser.
9173         (bus_config_parser_new): Copy the parent's included_files.
9174         (include_file): Track which files have been included, and fail on
9175         circular inclusions.
9176         (process_test_valid_subdir): Changed printf to report if we are
9177         testing valid or invalid conf files.
9178         (all_are_equiv): Changed printf to be a bit clearer about
9179         what we are actually doing.
9180         (bus_config_parser_test): Test invalid configuration files.
9181
9182 2004-04-09  Jon Trowbridge  <trow@ximian.com>
9183
9184         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
9185         argument.  If non-null, the newly-constructed BusConfigParser will
9186         be initialized with the parent's BusLimits instead of the default
9187         values.
9188         (include_file): When including a config file, pass in
9189         the current parser as the parent and then copy the BusLimits
9190         from the included BusConfigParser pack to the current parser.
9191         (process_test_valid_subdir): Renamed from process_test_subdir.
9192         (process_test_equiv_subdir): Added.  Walks through a directory,
9193         descending into each subdirectory and loading the config files
9194         it finds there.  If any subdirectory contains two config files
9195         that don't produce identical BusConfigParser structs, fail.
9196         For now, the BusConfigParser's BusPolicies are not compared.
9197         (bus_config_parser_test): Call both process_test_valid_subdir and
9198         process_test_equiv_subdir.
9199
9200         * bus/config-loader-libxml.c (bus_config_load): Take a parent
9201         argument and pass it along to the call to bus_config_parser_new.
9202         Also made a few small changes to allow this code to compile.
9203
9204         * bus/config-loader-expat.c (bus_config_load): Take a parent
9205         argument and pass it along to the call to bus_config_parser_new.
9206
9207         * bus/bus.c (bus_context_new): Load the config file
9208         with a NULL parent argument.
9209
9210 2004-03-29  Michael Meeks  <michael@ximian.com>
9211
9212         * glib/dbus-gobject.c (introspect_properties): split
9213         out, fix mangled 'while' flow control.
9214         (introspect_signals): implement.
9215         (handle_introspect): update.
9216
9217 2004-03-29  Michael Meeks  <michael@ximian.com>
9218
9219         * glib/dbus-gobject.c (set_object_property): split out / 
9220         re-work, use the property type, and not the message type(!)
9221         (get_object_property): ditto.
9222
9223         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
9224         (dbus_gvalue_marshal): make this code re-usable, needed
9225         for signals too, also on both proxy and server side.
9226         Re-write for more efficiency / readability.
9227
9228 2004-03-29  Michael Meeks  <michael@ximian.com>
9229
9230         * dbus/dbus-message.c
9231         (dbus_message_new_error_printf): impl.
9232
9233         * dbus/dbus-connection.c
9234         (dbus_connection_unregister_object_path): fix warning.
9235
9236         * configure.in: fix no-mono-installed situation.
9237
9238 2004-03-27  Havoc Pennington  <hp@redhat.com>
9239
9240         Patch from Timo Teräs:
9241         
9242         * tools/dbus-send.c (main): if --print-reply, assume type is
9243         method call; support boolean type args
9244         
9245         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
9246         bunch of memleak and logic bugs
9247         
9248 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9249
9250         * mono/Arguments.cs:
9251         * mono/Introspector.cs:
9252         * mono/Handler.cs:
9253         * mono/InterfaceProxy.cs:
9254         * mono/Message.cs
9255         * mono/ProxyBuilder.cs:
9256         * mono/Service.cs:
9257         Added InterfaceProxy class to avoid building proxies for every
9258         object.
9259
9260         * dbus-message.h:
9261         * dbus-message.c (dbus_message_append_args_valist)
9262         (dbus_message_iter_get_object_path)
9263         (dbus_message_iter_get_object_path_array)
9264         (dbus_message_iter_append_object_path)
9265         (dbus_message_iter_append_object_path_array):
9266         Added object_path iter functions to handle OBJECT_PATH arguments
9267         
9268 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9269
9270         First checkin of mono bindings.
9271         * configure.in:
9272         * Makefile.am:
9273         Build stuff for the bindings
9274         * dbus-sharp.pc.in: Added for pkgconfig
9275         
9276 2004-03-21  Havoc Pennington  <hp@redhat.com>
9277
9278         * test/test-service.c (main): remove debug spew
9279
9280 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9281
9282         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
9283         arrays
9284
9285         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
9286         (dbus_message_iter_init_array_iterator)
9287         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
9288         indicate whether the iterator is empty
9289
9290         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
9291         warnings
9292
9293 2004-03-19  Havoc Pennington  <hp@redhat.com>
9294
9295         * NEWS: 0.21 updates
9296
9297         * configure.in: 0.21
9298
9299         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
9300         
9301         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
9302         you don't need pyrex to make dist
9303
9304         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
9305         sources; run moc
9306         
9307 2004-03-18  Richard Hult  <richard@imendio.com>
9308
9309         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9310         (dbus_message_set_auto_activation): Add doxygen docs.
9311
9312 2004-03-16  Richard Hult  <richard@imendio.com>
9313
9314         * bus/activation.c: (bus_activation_service_created),
9315         (bus_activation_send_pending_auto_activation_messages),
9316         (bus_activation_activate_service):
9317         * bus/activation.h:
9318         * bus/dispatch.c: (bus_dispatch),
9319         (check_nonexistent_service_auto_activation),
9320         (check_service_auto_activated),
9321         (check_segfault_service_auto_activation),
9322         (check_existent_service_auto_activation), (bus_dispatch_test):
9323         * bus/driver.c: (bus_driver_handle_activate_service):
9324         * bus/services.c: (bus_registry_acquire_service):
9325         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9326         (dbus_message_get_auto_activation):
9327         * dbus/dbus-message.h:
9328         * dbus/dbus-protocol.h: Implement auto-activation.
9329         
9330         * doc/dbus-specification.xml: Add auto-activation to the spec.
9331
9332 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9333
9334         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9335         fix a bug with CUSTOM types.
9336
9337         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9338         a unit test for this bug (used to fail).
9339
9340 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9341
9342         * bus/activation.c:
9343         (babysitter_watch_callback): notify all pending activations waiting for
9344           the same exec that the activation failed.
9345         (bus_activation_activate_service): shortcut the activation if we 
9346           already waiting for the same executable to start up.
9347
9348 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9349
9350         * bus/activation.c: 
9351         - Added service file reloading. 
9352           Each service files directory is kept in an hash table in 
9353           BusActivation and each BusActivationEntry knows what .service-file it
9354           was read from. So when you try to activate a service the bus will 
9355           check if it's been updated, removed or if new .service-files has 
9356           been installed.
9357         - Test code at the bottom for the service file reloading.
9358         * bus/test-main.c: (main):
9359         * bus/test.h:
9360         - added service reloading test.
9361         * dbus/dbus-sysdeps.c: 
9362         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9363
9364 2004-03-08  Michael Meeks  <michael@ximian.com>
9365
9366         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9367         bail immediately if disconnected, to avoid busy loop.
9368
9369         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9370         cleanup cut/paste/inefficiency.
9371
9372 2004-03-01  David Zeuthen  <david@fubar.dk>
9373
9374         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9375         bug where args were used twice. This bug resulted in a segfault
9376         on a Debian/PPC system when starting the messagebus daemon. Include
9377         dbus-sysdeps.h for DBUS_VA_COPY
9378
9379         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9380
9381         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9382         appropriate va_copy implementation. From GLib
9383         
9384 2004-02-24  Joe Shaw  <joe@ximian.com>
9385
9386         * bus/services.c (bus_registry_acquire_service): We need to pass
9387         in the service name to dbus_set_error() to prevent a crash.
9388
9389 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9390
9391         * AUTHORS: Reveal my True identity.
9392
9393 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9394
9395         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9396         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9397
9398 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9399
9400         * doc/TODO: Added not about better error check of configuration files.
9401
9402 2003-12-02  Richard Hult  <richard@imendio.com>
9403
9404         * Update AFL version to 2.0 throughout the source files to reflect
9405         the update that was done a while ago.
9406
9407 2003-12-02  Richard Hult  <richard@imendio.com>
9408
9409         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9410         wrote_dict_key to FALSE on the iter that the dict is appended to,
9411         just like when appending other types. Fixes a bug where a dict
9412         couldn't be put inside a dict.
9413         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9414         (message_iter_test, _dbus_message_test): Add test case for dict
9415         inside dict.
9416
9417 2003-12-01  David Zeuthen  <david@fubar.dk>
9418
9419         * python/dbus.py: Add the actual message when calling the reciever
9420         of a signal such that parameters can be inspected. Add the method
9421         remove_signal_receiver
9422         
9423 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9424
9425         * bus/*.[ch]:
9426         * dbus/*.[ch]:
9427         * glib/*.[ch]: Made ref functions return the pointer
9428
9429 2003-11-25  Zack Rusin  <zack@kde.org>
9430
9431         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9432
9433         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9434         wrappers,
9435
9436         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9437         the Integrator and to better fit with the server,
9438
9439 2003-11-24  Zack Rusin  <zack@kde.org>
9440
9441         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9442         the integrator handles it now
9443
9444         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9445         since QTimer wasn't really meant to be used the way DBusTimeout is
9446
9447 2003-11-24  Zack Rusin  <zack@kde.org>
9448
9449         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9450         Integrator class which integrates D-BUS with the Qt event loop,
9451
9452         * qt/connection.h, qt/connection.cpp: Move all the code which
9453         was dealing with D-BUS integration to the Integrator class,
9454         and start using Integrator,
9455
9456 2003-11-23  Zack Rusin  <zack@kde.org>
9457
9458         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9459         wrapper
9460
9461         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9462         switching namespaces to DBusQt, reworking the class,
9463
9464         * Makefile.cvs: switching dependencies so that it matches KDE 
9465         schematics,
9466         
9467         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9468         the library
9469
9470 2003-11-19  Havoc Pennington  <hp@redhat.com>
9471
9472         * NEWS: update
9473
9474         * configure.in: bump version to 0.20
9475
9476         * configure.in (have_qt): add yet another place to look for qt
9477         (someone hand trolltech a .pc file...)
9478
9479 2003-11-01  Havoc Pennington  <hp@redhat.com>
9480
9481         * doc/dbus-specification.xml: add state machine docs on the auth
9482         protocol; just a first draft, I'm sure it's wrong.      
9483
9484 2003-10-28  David Zeuthen  <david@fubar.dk>
9485
9486         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9487         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9488         
9489 2003-10-28  Havoc Pennington  <hp@redhat.com>
9490
9491         * dbus/dbus-message.c (get_next_field): delete unused function
9492
9493 2003-10-28  Havoc Pennington  <hp@redhat.com>
9494
9495         * bus/expirelist.c (do_expiration_with_current_time): detect
9496         failure of the expire_func due to OOM
9497
9498         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9499
9500         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9501         NoReply error that's now created by the bus when the service exits
9502
9503 2003-10-28  Havoc Pennington  <hp@redhat.com>
9504
9505         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9506         tests for set_path, set_interface, set_member, etc.
9507
9508         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9509
9510         * dbus/dbus-message.c (set_string_field): always just delete and
9511         re-append the field; accept NULL for deletion
9512         (re_align_fields_recurse): reimplement
9513         
9514 2003-10-26  Havoc Pennington  <hp@redhat.com>
9515
9516         * dbus/dbus-connection.c: fix docs to properly describe the
9517         disconnected message
9518         (_dbus_connection_notify_disconnected): remove this function; 
9519         we can't synchronously add the disconnected message, we have to 
9520         do it after we've queued any remaining real messages
9521         (_dbus_connection_get_dispatch_status_unlocked): queue the
9522         disconnect message only if the transport has finished queueing all
9523         its real messages and is disconnected.
9524         (dbus_connection_disconnect): update the dispatch status here
9525
9526 2003-10-22  Havoc Pennington  <hp@redhat.com>
9527
9528         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9529
9530         * bus/connection.c (bus_transaction_send_from_driver): set the
9531         destination to the connection's base service
9532
9533 2003-10-20  Havoc Pennington  <hp@redhat.com>
9534
9535         hmm, make check is currently not passing.
9536         
9537         * doc/dbus-specification.xml: add requirement that custom type
9538         names follow the same rules as interface names.
9539
9540         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9541         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9542         'map'
9543
9544         * doc/dbus-specification.xml: update type codes to match
9545         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9546         CUSTOM. Add type OBJECT_PATH to the spec.
9547
9548 2003-10-17  Havoc Pennington  <hp@redhat.com>
9549
9550         * bus/driver.c (create_unique_client_name): use "." as separator
9551         in base service names instead of '-'
9552
9553         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9554         byte at the end of the string
9555
9556         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9557         optimization macros since string validation seems to be a slow
9558         point.
9559         
9560         * doc/dbus-specification.xml: restrict valid
9561         service/interface/member/error names. Add test suite code for the
9562         name validation.
9563
9564         * dbus/dbus-string.c: limit service/interface/member/error names 
9565         to [0-9][A-Z][a-z]_
9566
9567         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9568         format arg to verbose spew
9569
9570         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9571         memory, return instead of g_error
9572
9573         * test/test-service.c (path_message_func): support emitting a
9574         signal on request
9575
9576         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9577         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9578         assuming the activation bus was the session bus so that services
9579         started manually will still register.
9580         (init_connections_unlocked): fix so that in OOM situation we get
9581         the same semantics when retrying the function
9582         
9583         * test/test-service.c (main): change to use path registration, to
9584         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9585         than DBUS_BUS_SESSION
9586
9587 2003-10-16  Havoc Pennington  <hp@redhat.com>
9588
9589         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9590
9591         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9592         coverage of the tests
9593         (coverage-report.txt): don't move the .da and .bbg files around
9594
9595 2003-10-16  Havoc Pennington  <hp@redhat.com>
9596
9597         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9598         to put there
9599
9600 2003-10-16  Havoc Pennington  <hp@redhat.com>
9601
9602         * bus/connection.c (bus_pending_reply_expired): either cancel or
9603         execute, not both
9604         (bus_connections_check_reply): use unlink, not remove_link, as we
9605         don't want to free the link; fixes double free mess
9606
9607         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9608         where no reply was received
9609
9610         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9611         fix a refcount leak
9612
9613         * bus/signals.c (match_rule_matches): add special cases for the
9614         bus driver, so you can match on sender/destination for it.
9615
9616         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9617         DBUS_PRINT_BACKTRACE is set
9618
9619         * dbus/dbus-internals.c: add pid to assertion failure messages
9620
9621         * dbus/dbus-connection.c: add message type code to the debug spew
9622
9623         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9624         sender=foo not service=foo
9625
9626         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9627         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9628         DBUS_ACTIVATION_ADDRESS instead
9629
9630         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9631         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9632
9633         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9634         context struct
9635
9636         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9637         (dbus_message_iter_get_object_path_array): new function (half
9638         finished, disabled for the moment)
9639         
9640         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9641         DBUS_MESSAGE_TYPE_ERROR
9642
9643         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9644         avoid redirecting stderr to /dev/null
9645         (babysit): close stdin if not doing the "exit_with_session" thing
9646
9647         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9648         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9649         stdout/stdin, so things don't get confused
9650         
9651         * bus/system.conf.in: fix to allow replies, I modified .conf
9652         instead of .conf.in again.
9653
9654 2003-10-14  David Zeuthen  <david@fubar.dk>
9655
9656         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9657         argtype to arg_type when raising unknown arg type exception.
9658         Changed type list to reflect the changes in dbus-protocol.h so 
9659         the bindings actually work.
9660
9661 2003-10-14  Havoc Pennington  <hp@redhat.com>
9662
9663         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9664         to have a bug keeping it from outputting the .da files sometimes
9665         (string_get_string): don't append garbage nul bytes to the string.
9666
9667 2003-10-15  Seth Nickell  <seth@gnome.org>
9668
9669         * python/Makefile.am:
9670
9671         Include dbus_h_wrapper.h in the dist tarball.
9672
9673 2003-10-14  Havoc Pennington  <hp@redhat.com>
9674
9675         * bus/bus.c (bus_context_check_security_policy): revamp this to
9676         work more sanely with new policy-based requested reply setup
9677
9678         * bus/connection.c (bus_transaction_send_from_driver): set bus
9679         driver messages as no reply
9680
9681         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9682         requested_reply attribute on allow/deny rules
9683
9684         * bus/system.conf: add <allow requested_reply="true"/>
9685
9686         * bus/driver.c (bus_driver_handle_message): fix check for replies
9687         sent to the bus driver, which was backward. How did this ever work
9688         at all though? I think I'm missing something.
9689
9690         * dbus/dbus-message.c (decode_header_data): require error and
9691         method return messages to have a reply serial field to be valid
9692         (_dbus_message_loader_queue_messages): break up this function;
9693         validate that reply serial and plain serial are nonzero; 
9694         clean up the OOM/error handling.
9695         (get_uint_field): don't return -1 from this
9696         (dbus_message_create_header): fix signed/unsigned bug
9697
9698         * bus/connection.c (bus_connections_expect_reply): save serial of
9699         the incoming message, not reply serial
9700
9701 2003-10-14  Havoc Pennington  <hp@redhat.com>
9702
9703         * bus/connection.c: implement pending reply tracking using
9704         BusExpireList
9705
9706         * bus/bus.c (bus_context_check_security_policy): verify that a
9707         reply is pending in order to allow a reply to be sent. Deny 
9708         messages of unknown type.
9709
9710         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9711
9712         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9713         (bus_context_get_reply_timeout): new
9714
9715 2003-10-13  Seth Nickell  <seth@gnome.org>
9716
9717         * python/Makefile.am:
9718
9719         Pass "make distcheck": remove a couple files from DIST_FILES
9720         that weren't included in the final version.
9721
9722 2003-10-12  Havoc Pennington  <hp@pobox.com>
9723
9724         Added test code that 1) starts an actual bus daemon and 2) uses
9725         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9726         more testing possible, but this is the basic framework.
9727         
9728         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9729         empty proxy lists from the proxy list hash
9730
9731         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9732         couple of return_if_fail checks
9733
9734         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9735         to allocate, so everything is cleared to NULL as it should be.
9736
9737         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9738         source as data to dbus_connection_set_timeout_functions() as the 
9739         timeout functions expected
9740
9741         * test/glib/run-test.sh: add a little script to start up a message
9742         bus and run tests using it
9743
9744         * tools/dbus-launch.1: updates
9745
9746         * tools/dbus-launch.c (main): add --config-file option
9747
9748         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9749         that could never be reached.
9750
9751         * dbus/dbus-message.c (dbus_message_new_method_return) 
9752         (dbus_message_new_error, dbus_message_new_signal): set the
9753         no-reply-expected flag on all these. Redundant, but may
9754         as well be consistent.
9755
9756 2003-10-11  Havoc Pennington  <hp@pobox.com>
9757
9758         * test/decode-gcov.c (function_solve_graph): make broken block
9759         graph a nonfatal error since it seems to be broken. Need to debug
9760         this.
9761
9762         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9763         can't just check type > INVALID < LAST anymore
9764
9765         * dbus/dbus-message.c (dbus_message_get_signature): new function
9766         (dbus_message_has_signature): new function
9767         (struct DBusMessage): add signature field (right now it isn't sent
9768         over the wire, just generated on the fly)
9769         (dbus_message_copy): copy the signature, and init strings to
9770         proper length to avoid some reallocs
9771         (dbus_message_iter_init_array_iterator): return void, since it
9772         can't fail
9773         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9774         (_dbus_message_loader_queue_messages): add silly temporary hack to
9775         fill in message->signature on load
9776
9777         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9778         characters, so they are relatively human-readable.
9779
9780 2003-10-11  Havoc Pennington  <hp@pobox.com>
9781
9782         * dbus/dbus-message.c (_dbus_message_test): add more test
9783         coverage, but #if 0 for now since they uncover a bug 
9784         not fixed yet; I think in re_align_field_recurse()
9785         (re_align_field_recurse): add FIXME about broken assertion
9786
9787         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9788
9789         * bus/connection.c: share a couple code bits with expirelist.c
9790
9791         * bus/expirelist.h, bus/expirelist.c: implement a generic
9792         expire-items-after-N-seconds facility, was going to share between
9793         expiring connections and replies, decided not to use for expiring
9794         connections for now.
9795
9796         * COPYING: include AFL 2.0 (still need to change all the file headers)
9797
9798 2003-10-09  Havoc Pennington  <hp@redhat.com>
9799
9800         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9801         gcc 3.3. Not that we do anything about it yet.
9802
9803         * bus/signals.c (bus_match_rule_parse): impose max length on the
9804         match rule text
9805
9806         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9807
9808 2003-10-09  Havoc Pennington  <hp@redhat.com>
9809
9810         Make matching rules theoretically work (add parser).
9811         
9812         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9813         the case where destination is explicitly specified as bus driver
9814         and someone else is eavesdropping.
9815         
9816         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9817         definition of eavesdropping and assertion
9818
9819         * tools/dbus-send.c (main): use dbus_message_type_from_string
9820
9821         * bus/signals.c (bus_match_rule_parse): implement
9822
9823         * dbus/dbus-message.c (dbus_message_type_from_string): new
9824
9825         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9826
9827 2003-10-02  Havoc Pennington  <hp@pobox.com>
9828
9829         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9830         dbus_gproxy_oneway_call
9831
9832         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9833         (dbus_server_setup_with_g_main): fix to allow calling them more
9834         than once on the same args
9835         (dbus_bus_get_with_g_main): new function
9836
9837 2003-10-02  Havoc Pennington  <hp@redhat.com>
9838
9839         * doc/dbus-tutorial.xml: write some stuff
9840
9841 2003-09-29  Havoc Pennington  <hp@pobox.com>
9842
9843         * configure.in: split checks for Doxygen from XML docs, check for
9844         xmlto
9845
9846         * doc/Makefile.am: XML-ify all the docs, and add a blank
9847         dbus-tutorial.xml
9848
9849 2003-09-29  Havoc Pennington  <hp@pobox.com>
9850
9851         * Merge dbus-object-names branch. To see the entire patch 
9852         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9853         it's huuuuge though.
9854         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9855         
9856 2003-09-28  Havoc Pennington  <hp@pobox.com>
9857
9858         * HACKING: update to reflect new server
9859
9860 2003-09-26  Seth Nickell  <seth@gnome.org>
9861
9862         * python/dbus.py:
9863         * python/examples/example-signals.py:
9864
9865         Start implementing some notions of signals. The API
9866         is really terrible, but they sort of work (with the
9867         exception of being able to filter by service, and to
9868         transmit signals *as* a particular service). Need to
9869         figure out how to make messages come from the service
9870         we registered :-(
9871         
9872         * python/dbus_bindings.pyx.in:
9873
9874         Removed duplicate message_handler callbacks.
9875         
9876 2003-09-25  Havoc Pennington  <hp@redhat.com>
9877
9878         * bus/session.conf.in: fix my mess
9879
9880 2003-09-25  Havoc Pennington  <hp@pobox.com>
9881
9882         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9883
9884 2003-09-25  Seth Nickell  <seth@gnome.org>
9885
9886         * python/examples/example-service.py:
9887
9888         Johan notices complete wrong code in example-service, but
9889         completely wrong in a way that works exactly the same (!).
9890         Johan is confused, how could this possibly work? Example
9891         code fails to serve purpose of making things clear.
9892         Seth fixes.
9893
9894 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9895
9896         * doc/dbus-specification.sgml: don't require header fields
9897         to be 4-byte aligned and specify that fields should be
9898         distinguished from padding by the fact that zero is not
9899         a valid field name.
9900         
9901         * doc/TODO: remove re-alignment item and add item to doc
9902         the OBJECT_PATH type.
9903         
9904         * dbus/dbus-message.c:
9905         (HeaderField): rename the original member to value_offset
9906         and introduce a name_offset member to keep track of where
9907         the field actually begins.
9908         (adjust_field_offsets): remove.
9909         (append_int_field), (append_uint_field),
9910         (append_string_field): don't align the start of the header
9911         field to a 4-byte boundary.
9912         (get_next_field): impl finding the next marhsalled field
9913         after a given field.
9914         (re_align_field_recurse): impl re-aligning a number of
9915         already marshalled fields.
9916         (delete_field): impl deleting a field of any type and
9917         re-aligning any following fields.
9918         (delete_int_or_uint_field), (delete_string_field): remove.
9919         (set_int_field), (set_uint_field): no need to re-check
9920         that we have the correct type for the field.
9921         (set_string_field): ditto and impl re-aligning any
9922         following fields.
9923         (decode_header_data): update to take into account that
9924         the fields aren't 4-byte aligned any more and the new
9925         way to distinguish padding from header fields. Also,
9926         don't exit when there is too much header padding.
9927         (process_test_subdir): print the directory.
9928         (_dbus_message_test): add test to make sure a following
9929         field is re-aligned correctly after field deletion.
9930         
9931         * dbus/dbus-string.[ch]:
9932         (_dbus_string_insert_bytes): rename from insert_byte and
9933         allow the insert of multiple bytes.
9934         (_dbus_string_test): test inserting multiple bytes.
9935
9936         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9937         warning note to docs about having to re-align any
9938         marshalled values following the string.
9939         
9940         * dbus/dbus-message-builder.c:
9941         (append_string_field), (_dbus_message_data_load):
9942         don't align the header field.
9943         
9944         * dbus/dbus-auth.c: (process_test_subdir): print the
9945         directory.
9946         
9947         * test/break-loader.c: (randomly_add_one_byte): upd. for
9948         insert_byte change.
9949         
9950         * test/data/invalid-messages/bad-header-field-alignment.message:
9951         new test case.
9952         
9953         * test/data/valid-messages/unknown-header-field.message: shove
9954         a dict in the unknown field.
9955
9956 2003-09-25  Seth Nickell  <seth@gnome.org>
9957
9958         * python/dbus.py:
9959         * python/dbus_bindings.pyx.in:
9960
9961         Handle return values.
9962         
9963         * python/examples/example-client.py:
9964         * python/examples/example-service.py:
9965
9966         Pass back return values from the service to the client.
9967         
9968 2003-09-24  Seth Nickell  <seth@gnome.org>
9969
9970         * python/dbus.py:
9971
9972         Connect Object methods (when you are sharing an object) up... pass
9973         in a list of methods to be shared. Sharing all the methods just
9974         worked out too weird. You can now create nice Services over the
9975         DBus in Python. :-)
9976         
9977         * python/dbus_bindings.pyx.in:
9978
9979         Keep references to user_data tuples passed into C functions so 
9980         Python doesn't garbage collect on us.
9981
9982         Implement MethodReturn and Error subclasses of Message for creating
9983         DBusMessage's of those types.
9984         
9985         * python/examples/example-client.py:
9986         * python/examples/example-service.py:
9987
9988         Simple example code showing both how create DBus services and objects,
9989         and how to use them.
9990
9991 2003-09-23  Havoc Pennington  <hp@pobox.com>
9992
9993         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9994
9995 2003-09-23  Havoc Pennington  <hp@redhat.com>
9996
9997         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9998         (dbus_gproxy_disconnect_signal): implement
9999         (dbus_gproxy_manager_remove_signal_match): implement
10000         (dbus_gproxy_manager_add_signal_match): implement
10001         (dbus_gproxy_oneway_call): implement
10002
10003 2003-09-23  Havoc Pennington  <hp@pobox.com>
10004
10005         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
10006         subclass. This means dropping the transparent thread safety of the
10007         proxy; you now need a separate proxy per-thread, or your own
10008         locking on the proxy. Probably right anyway.
10009         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
10010
10011 2003-09-22  Havoc Pennington  <hp@redhat.com>
10012
10013         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
10014
10015 2003-09-21  Seth Nickell  <seth@gnome.org>
10016
10017         First checkin of the Python bindings.
10018         
10019         * python/.cvsignore:
10020         * python/Makefile.am:
10021         * python/dbus_bindings.pyx.in:
10022         * python/dbus_h_wrapper.h:
10023
10024         Pieces for Pyrex to operate on, building a dbus_bindings.so
10025         python module for low-level access to the DBus APIs.
10026         
10027         * python/dbus.py:
10028
10029         High-level Python module for accessing DBus objects.
10030
10031         * configure.in:
10032         * Makefile.am:
10033
10034         Build stuff for the python bindings.
10035
10036         * acinclude.m4:
10037
10038         Extra macro needed for finding the Python C header files.
10039
10040 2003-09-21  Havoc Pennington  <hp@pobox.com>
10041
10042         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
10043         implementing the proxy manager, didn't get very far.
10044
10045         * dbus/dbus-bus.c (dbus_bus_add_match): new
10046         (dbus_bus_remove_match): new
10047
10048         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
10049         path_name argument; adjust the other not-yet-implemented 
10050         gproxy constructors to be what I think they should be.
10051
10052 2003-09-21  Havoc Pennington  <hp@pobox.com>
10053
10054         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
10055         by default for message bus connections.
10056
10057         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
10058         exit_on_disconnect flag is set and we process the disconnected
10059         signal.
10060         (dbus_connection_set_exit_on_disconnect): new function
10061
10062 2003-09-21  Havoc Pennington  <hp@pobox.com>
10063
10064         Get matching rules mostly working in the bus; only actually
10065         parsing the rule text remains. However, the client side of
10066         "signal connections" hasn't been started, this patch is only the
10067         bus side.
10068         
10069         * dbus/dispatch.c: fix for the matching rules changes
10070         
10071         * bus/driver.c (bus_driver_handle_remove_match)
10072         (bus_driver_handle_add_match): send an ack reply from these
10073         method calls
10074
10075         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
10076         arguments, reported by Seth Nickell
10077
10078         * bus/config-parser.c (append_rule_from_element): support
10079         eavesdrop=true|false attribute on policies so match rules 
10080         can be prevented from snooping on the system bus.
10081
10082         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
10083         and "destination" in attribute names; fix some docs bugs; 
10084         add eavesdrop=true|false attribute
10085
10086         * bus/driver.c (bus_driver_handle_add_match)
10087         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
10088         messages
10089
10090         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
10091         rid of broadcast service concept, signals are just always broadcast
10092
10093         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
10094         mostly implement matching rules stuff (currently only exposed as signal
10095         connections)
10096
10097 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
10098
10099         * doc/dbus-specification.sgml: Change the header field name
10100         to be an enum and update the rest of the spec to reference
10101         the fields using the conventinal name.
10102
10103         * dbus/dbus-protocol.h: update to reflect the spec.
10104
10105         * doc/TODO: add item to remove the 4 byte alignment requirement.
10106         
10107         * dbus/dbus-message.c: Remove the code to generalise the
10108         header/body length and serial number header fields as named
10109         header fields so we can reference field names using the 
10110         protocol values.
10111         (append_int_field), (append_uint_field), (append_string_field):
10112         Append the field name as a byte rather than four chars.
10113         (delete_int_or_uint_field), (delete_string_field): reflect the
10114         fact that the field name and typecode now occupy 4 bytes instead
10115         of 8.
10116         (decode_string_field), (decode_header_data): update to reflect
10117         protocol changes and move the field specific encoding from
10118         decode_string_field() back into decode_header_data().
10119         
10120         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
10121         Add utility to aid debugging.
10122         
10123         * dbus/dbus-message-builder.c:
10124         (append_string_field), (_dbus_message_data_load): Update to
10125         reflect protocol changes; Change the FIELD_NAME directive
10126         to HEADER_FIELD and allow it to take the field's conventional
10127         name rather than the actual value.
10128         
10129         * test/data/*/*.message: Update to use HEADER_FIELD instead
10130         of FIELD_NAME; Always align the header on an 8 byte boundary
10131         *before* updating the header length.
10132
10133 2003-09-15  Havoc Pennington  <hp@pobox.com>
10134
10135         * dbus/dbus-pending-call.c: add the get/set object data
10136         boilerplate as for DBusConnection, etc. Use generic object data
10137         for the notify callback.
10138
10139         * glib/dbus-gparser.c (parse_node): parse child nodes
10140
10141         * tools/dbus-viewer.c: more hacking on the dbus-viewer
10142         
10143         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
10144         contain functions shared between the convenience lib and the
10145         installed lib
10146
10147         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
10148         -export-symbols-regex to the GLib library
10149
10150         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
10151         fix the locking in here, and add a default handler for
10152         Introspect() that just returns sub-nodes.
10153
10154 2003-09-14  Havoc Pennington  <hp@pobox.com>
10155
10156         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
10157         rather than gfoo consistent
10158
10159         * glib/dbus-gproxy.h: delete for now, move contents to
10160         dbus-glib.h, because the include files don't work right since we
10161         aren't in the dbus/ subdir.
10162         
10163         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
10164         (dbus_gproxy_end_call): finish
10165         (dbus_gproxy_begin_call): finish
10166
10167         * glib/dbus-gmain.c (dbus_set_g_error): new
10168
10169         * glib/dbus-gobject.c (handle_introspect): include information
10170         about child nodes in the introspection
10171
10172         * dbus/dbus-connection.c (dbus_connection_list_registered): new
10173         function to help in implementation of introspection
10174
10175         * dbus/dbus-object-tree.c
10176         (_dbus_object_tree_list_registered_and_unlock): new function
10177
10178 2003-09-12  Havoc Pennington  <hp@pobox.com>
10179
10180         * glib/dbus-gidl.h: add common base class for all the foo_info
10181         types
10182
10183         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
10184         similar to kdcop
10185
10186         * test/Makefile.am: try test srcdir -ef . in addition to test
10187         srcdir = ., one of them should work (yeah lame)
10188         
10189         * glib/Makefile.am: build the "idl" parser stuff as a convenience
10190         library
10191         
10192         * glib/dbus-gparser.h: make description_load routines return
10193         NodeInfo* not Parser*
10194
10195         * Makefile.am (SUBDIRS): build test dir after all library dirs
10196
10197         * configure.in: add GTK+ detection
10198
10199 2003-09-07  Havoc Pennington  <hp@pobox.com>
10200
10201         * Make Doxygen contented.
10202
10203 2003-09-07  Havoc Pennington  <hp@pobox.com>
10204
10205         * doc/dbus-specification.sgml: more updates
10206
10207 2003-09-06  Havoc Pennington  <hp@pobox.com>
10208
10209         * doc/dbus-specification.sgml: partial updates
10210
10211         * bus/dbus-daemon-1.1.in: fix the config file docs for the
10212         zillionth time; hopefully I edited the right file this time.
10213
10214         * bus/config-parser.c (append_rule_from_element): support
10215         send_type, send_path, receive_type, receive_path
10216
10217         * bus/policy.c: add message type and path to the list of things
10218         that can be "firewalled"
10219
10220 2003-09-06  Havoc Pennington  <hp@pobox.com>
10221
10222         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
10223         (dbus_connection_register_object_path): make this not handle
10224         messages to paths below the given path
10225
10226 2003-09-03  Havoc Pennington  <hp@pobox.com>
10227
10228         * test/glib/Makefile.am: add this with random glib-linked test
10229         programs
10230
10231         * glib/Makefile.am: remove the random test programs from here,
10232         leave only the unit tests
10233
10234         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
10235         uscore/javacaps conversion, and fix     
10236         (get_object_property, set_object_property): change to .NET
10237         convention for mapping props to methods, set_FooBar/get_FooBar, 
10238         since one language has such a convention we may as well copy it. 
10239         Plus real methods in either getFooBar or get_foo_bar style won't 
10240         collide with this convention.
10241
10242 2003-09-01  Havoc Pennington  <hp@pobox.com>
10243
10244         * glib/dbus-gparser.c: implement
10245
10246         * glib/dbus-gobject.c: start implementing skeletons support
10247
10248         * configure.in: when disabling checks/assert, also define
10249         G_DISABLE_ASSERT and G_DISABLE_CHECKS
10250
10251 2003-09-01  Havoc Pennington  <hp@pobox.com>
10252
10253         * glib/Makefile.am: rearrange a bunch of files and get "make
10254         check" framework set up
10255
10256 2003-08-31  Havoc Pennington  <hp@pobox.com>
10257
10258         * fix build with --disable-tests
10259
10260 2003-08-30  Havoc Pennington  <hp@pobox.com>
10261
10262         * dbus/dbus-connection.c: purge DBusMessageHandler
10263
10264         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
10265         use callbacks everywhere
10266
10267 2003-08-30  Havoc Pennington  <hp@pobox.com>
10268
10269         * test/data/valid-config-files/system.d/test.conf: change to 
10270         root for the user so warnings don't get printed
10271
10272         * dbus/dbus-message.c: add dbus_message_get_path,
10273         dbus_message_set_path
10274         
10275         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
10276         dispatching to a path
10277
10278         * dbus/dbus-string.c (_dbus_string_validate_path): add
10279
10280         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
10281         (_dbus_marshal_object_path): implement
10282
10283         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
10284         to contain the path to the target object
10285         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
10286         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
10287
10288 2003-08-30  Havoc Pennington  <hp@pobox.com>
10289
10290         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
10291
10292 2003-08-29  Havoc Pennington  <hp@pobox.com>
10293
10294         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
10295         registered
10296         (struct DBusObjectSubtree): shrink this
10297         a lot, since we may have a lot of them
10298         (_dbus_object_tree_free_all_unlocked): implement
10299         (_dbus_object_tree_dispatch_and_unlock): implement
10300
10301 2003-08-29  Havoc Pennington  <hp@pobox.com>
10302
10303         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
10304
10305 2003-08-28  Havoc Pennington  <hp@pobox.com>
10306
10307         purge DBusObjectID
10308         
10309         * dbus/dbus-connection.c: port to no ObjectID, create a
10310         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10311
10312         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10313         everything except UnregisterFunction and MessageFunction
10314         
10315         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10316         add DBUS_TYPE_OBJECT_PATH
10317         
10318         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10319         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10320         path-based object IDs
10321
10322 2003-08-25  Havoc Pennington  <hp@pobox.com>
10323
10324         Just noticed that dbus_message_test is hosed, I wonder when I
10325         broke that. I thought make check was passing earlier...
10326         
10327         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10328         container tree, will replace most of dbus-object-registry
10329
10330         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10331         screwup
10332
10333 2003-08-19  Havoc Pennington  <hp@pobox.com>
10334
10335         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10336         (dbus_message_is_error): fix this function
10337
10338         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10339         match
10340
10341         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10342         reflect clarified man page
10343         (bus_client_policy_check_can_send): ditto
10344         
10345         * bus/session.conf.in: fixup
10346
10347         * bus/system.conf.in: fixup
10348
10349 2003-08-18  Havoc Pennington  <hp@redhat.com>
10350
10351         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10352
10353         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10354         dumb bug created earlier (wrong order of args to
10355         decode_header_data())
10356         
10357         * tools/dbus-send.c: port
10358
10359         * tools/dbus-print-message.c (print_message): port
10360
10361         * test/data/*messages: port all messages over
10362         
10363         * dbus/dbus-message-builder.c: support including 
10364         message type
10365         
10366         * bus/driver.c: port over
10367         
10368         * bus/dispatch.c: port over to new stuff
10369
10370         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10371         rename disconnect signal to "Disconnected"
10372
10373 2003-08-17  Havoc Pennington  <hp@pobox.com>
10374
10375         This doesn't compile yet, but syncing up so I can hack on it from
10376         work. What are branches for if not broken code? ;-)
10377         
10378         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10379         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10380         DBUS_HEADER_FIELD_ERROR_NAME
10381         
10382         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10383         for the interface+member pairs
10384         (string_hash): change to use g_str_hash algorithm
10385         (find_direct_function, find_string_function): refactor these to
10386         share most code.
10387         
10388         * dbus/dbus-message.c: port all of this over to support 
10389         interface/member fields instead of name field
10390
10391         * dbus/dbus-object-registry.c: port over
10392         
10393         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10394         from _dbus_string_validate_name
10395
10396         * bus/dbus-daemon-1.1: change file format for the 
10397         <deny>/<allow> stuff to match new message naming scheme
10398
10399         * bus/policy.c: port over
10400
10401         * bus/config-parser.c: parse new format
10402         
10403 2003-08-16  Havoc Pennington  <hp@pobox.com>
10404
10405         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10406         broken assertion
10407
10408         * glib/dbus-gproxy.c: some hacking
10409
10410 2003-08-15  Havoc Pennington  <hp@redhat.com>
10411
10412         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10413
10414         * dbus/dbus-connection.c
10415         (dbus_connection_send_with_reply_and_block): factor out internals;
10416         change to convert any error replies to DBusError instead of 
10417         returning them as a message
10418
10419 2003-08-15  Havoc Pennington  <hp@pobox.com>
10420
10421         * dbus/dbus-connection.c, 
10422         dbus/dbus-pending-call.c: Finish the pending call stuff
10423
10424 2003-08-14  Havoc Pennington  <hp@redhat.com>
10425
10426         * dbus/dbus-pending-call.c: start on new object that will replace
10427         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10428         replies
10429
10430         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10431         with remote interfaces
10432
10433         * dbus/dbus-gidl.c: do the boring boilerplate in here
10434         
10435 2003-08-12  Havoc Pennington  <hp@pobox.com>
10436
10437         * bus/dispatch.c (bus_dispatch): make this return proper 
10438         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10439
10440         * dbus/dbus-errors.c (dbus_set_error): use
10441         _dbus_string_append_printf_valist
10442
10443         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10444         (_dbus_string_append_printf): new
10445
10446         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10447         UNKNOWN_METHOD
10448
10449         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10450         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10451         message is unhandled.
10452
10453 2003-08-11  Havoc Pennington  <hp@pobox.com>
10454
10455         * bus/test.c (client_disconnect_handler): change to return
10456         HANDLED (would have been REMOVE_MESSAGE)
10457
10458         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10459         HANDLED/NOT_YET_HANDLED instead of
10460         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10461         should be used.
10462
10463 2003-08-10  Havoc Pennington  <hp@pobox.com>
10464
10465         * tools/dbus-send.c (main): add --type argument, for now
10466         supporting only method_call and signal types.
10467
10468         * tools/dbus-print-message.c: print message type
10469
10470         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10471         init connection->objects
10472
10473         * doc/dbus-specification.sgml: fix sgml
10474
10475         * bus/*.c: port over to object-instance API changes
10476
10477         * test/test-service.c: ditto
10478         
10479         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10480         name, we will have to fix up the rest of the code to also handle
10481         this
10482         (dbus_message_new): generic message-creation call
10483         (set_string_field): allow appending name field
10484
10485 2003-08-06  Havoc Pennington  <hp@pobox.com>
10486
10487         * dbus/dbus-object-registry.c: implement signal connection 
10488         and dispatch
10489
10490         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10491
10492         * dbus/dbus-internals.c (_dbus_memdup): new function
10493
10494 2003-08-02  Havoc Pennington  <hp@pobox.com>
10495
10496         * dbus/dbus-message.c (dbus_message_get_no_reply)
10497         (dbus_message_set_no_reply): add these and remove
10498         set_is_error/get_is_error
10499
10500         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10501         remove the ERROR flag, since there's now an ERROR type
10502
10503 2003-08-01  Havoc Pennington  <hp@pobox.com>
10504
10505         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10506         implement
10507
10508         * dbus/dbus-message.c (dbus_message_get_type): new function
10509
10510         * doc/dbus-specification.sgml: add "type" byte to messages
10511
10512 2003-08-01  Havoc Pennington  <hp@pobox.com>
10513
10514         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10515         a message type enum to distinguish kinds of message
10516         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10517         that need not be replied to
10518
10519 2003-08-01  Havoc Pennington  <hp@pobox.com>
10520
10521         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10522         (unpack_8_octets): fix no-64-bit-int bug
10523
10524         * dbus/dbus-object-registry.c (validate_id): validate the 
10525         connection ID bits, not just the instance ID.
10526
10527         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10528         the connection-global 33 bits of the object ID
10529
10530         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10531         object ID in the new way
10532
10533         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10534         define server/client/instance bits.
10535
10536 2003-07-30  Havoc Pennington  <hp@pobox.com>
10537
10538         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10539         build
10540
10541 2003-07-13  Havoc Pennington  <hp@pobox.com>
10542
10543         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10544         fields to DBusObjectVTable and DBusObjectInfo
10545
10546 2003-07-12  Havoc Pennington  <hp@pobox.com>
10547
10548         * dbus/dbus-object-registry.c: implement unit test,
10549         fix bugs discovered in process
10550
10551         * dbus/dbus-connection.c: remove handler_table and
10552         register_handler(), add DBusObjectRegistry usage
10553
10554         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10555         (dbus_object_id_set_null): new functions
10556
10557 2003-07-08  Havoc Pennington  <hp@pobox.com>
10558
10559         * dbus/dbus-object.c: implement some of this
10560
10561         * dbus/dbus-object-registry.c
10562         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10563         param
10564         (_dbus_object_registry_new): handle OOM
10565
10566 2003-07-08  Havoc Pennington  <hp@pobox.com>
10567
10568         * dbus/dbus-object.h: sketch out an API for registering objects
10569         with a connection, that allows us to use as little as 24 bytes
10570         per object and lets application code represent an object in 
10571         any conceivable way.
10572
10573         * dbus/dbus-object-registry.c: implement the hard bits of the
10574         DBusConnection aspect of object API. Not yet wired up.
10575         
10576 2003-07-06  Havoc Pennington  <hp@pobox.com>
10577
10578         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10579         (_dbus_marshal_object_id): new
10580         (_dbus_demarshal_object_id): new
10581         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10582         consolidate identical switch cases. Don't conditionalize handling
10583         of DBUS_TYPE_UINT64, need to handle the type always.
10584         (_dbus_marshal_validate_arg): consolidate identical cases, and
10585         handle DBUS_TYPE_OBJECT_ID
10586
10587         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10588
10589         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10590
10591 2003-09-28  Havoc Pennington  <hp@pobox.com>
10592
10593         * real 0.13 release
10594
10595 2003-09-28  Havoc Pennington  <hp@pobox.com>
10596
10597         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10598         to work with Debian db2html
10599
10600 2003-09-28  Havoc Pennington  <hp@pobox.com>
10601
10602         * configure.in: 0.13
10603
10604         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10605         stylesheet-images for benefit of Debian
10606         
10607         Change back to using filesystem-linked sockets for the system
10608         bus, so only root can create the default system bus address.
10609         
10610         * bus/system.conf.in: change to use
10611         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10612
10613         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10614         from here.
10615
10616         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10617         here, and AC_DEFINE DBUS_SYSTEM_PATH
10618
10619 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10620
10621         * doc/TODO:
10622         * doc/busconfig.dtd:
10623         Add busconfig DTD.
10624         
10625 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10626
10627         * doc/dbus-specification.sgml:
10628         Add activation reply values.
10629         
10630 2003-08-05  Havoc Pennington  <hp@redhat.com>
10631
10632         * configure.in: 0.12
10633
10634 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10635
10636         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10637         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10638         (add_watch), (remove_watch), (create_source):
10639         Refcount fds, fixes some reentrancy issues.
10640         
10641 2003-07-30  Havoc Pennington  <hp@redhat.com>
10642
10643         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10644         bus address to be abstract if we have abstract sockets
10645
10646         * NEWS: update
10647
10648 2003-07-28  Havoc Pennington  <hp@redhat.com>
10649
10650         * bus/messagebus.in: fix to avoid processname/servicename 
10651         confusion, from Michael Kearey
10652         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10653         
10654 2003-07-23  Havoc Pennington  <hp@pobox.com>
10655
10656         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10657         fix from Andy Hanton to remove broken "+1"
10658
10659 2003-07-16  Havoc Pennington  <hp@pobox.com>
10660
10661         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10662         babysitter process, as suggested by Thomas Leonard, so 
10663         an "eval `dbus-launch --exit-with-session`" will actually 
10664         return
10665
10666 2003-07-16  Havoc Pennington  <hp@pobox.com>
10667
10668         * configure.in: print out EXPANDED_* variables in the summary at
10669         the end; clean up the code that computes EXPANDED_ variables and
10670         get the ones using exec_prefix right. Should make things work
10671         when you build without --prefix
10672
10673 2003-06-29  Havoc Pennington  <hp@pobox.com>
10674
10675         * mono/Test.cs (class Test): fire up a main loop and run it
10676
10677         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10678         done once, the app has to do it
10679
10680 2003-06-26  Havoc Pennington  <hp@pobox.com>
10681
10682         * mono/Connection.cs: set up connection with the glib main loop
10683
10684 2003-07-01  Havoc Pennington  <hp@redhat.com>
10685
10686         * doc/dbus-specification.sgml: clarify the format of a type code,
10687         change suggested by Jim Blandy
10688
10689 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10690
10691         * doc/Makefile.am:
10692         * tools/Makefile.am: Don't assume srcdir == builddir.
10693
10694         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10695         the allocated block.
10696         (_dbus_memory_test): New function.
10697         * dbus/dbus-test.h: Add _dbus_memory_test ().
10698         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10699
10700         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10701         of %c%c%c%c.
10702         (dbus_message_new): Remove obsolete @todo.
10703
10704         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10705         (_dbus_marshal_set_uint64): Fix comment.
10706
10707         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10708         hardcode FIELD_REPLY_SERIAL.
10709
10710         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10711         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10712
10713         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10714         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10715
10716 2003-06-24  Havoc Pennington  <hp@pobox.com>
10717
10718         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10719
10720 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10721
10722         * configure.in:
10723         * gcj/.cvsignore:
10724         * gcj/Hello.java:
10725         * gcj/Makefile.am:
10726         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10727         * gcj/org/.cvsignore:
10728         * gcj/org/Makefile.am:
10729         * gcj/org/freedesktop/.cvsignore:
10730         * gcj/org/freedesktop/Makefile.am:
10731         * gcj/org/freedesktop/dbus/.cvsignore:
10732         * gcj/org/freedesktop/dbus/Makefile.am:
10733         * gcj/org/freedesktop/dbus/Message.java: (Message),
10734         (Message.Message):
10735         * gcj/org/freedesktop/dbus/natMessage.cc:
10736         Fix the build system.
10737
10738 2003-06-22  Havoc Pennington  <hp@pobox.com>
10739
10740         * mono/Connection.cs: add more bindings
10741
10742         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10743         more than once.
10744
10745 2003-06-22  Havoc Pennington  <hp@pobox.com>
10746
10747         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10748         Start wrapping more stuff.
10749
10750 2003-06-22  Havoc Pennington  <hp@pobox.com>
10751
10752         * mono/Message.cs: implement Message.Wrap() that ensures we only
10753         have a single C# wrapper per DBusMessage, assuming it works which
10754         it probably doesn't.
10755
10756         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10757         (dbus_message_free_data_slot): new
10758         (dbus_message_set_data): new
10759         (dbus_message_get_data): new
10760
10761 2003-06-22  Havoc Pennington  <hp@pobox.com>
10762
10763         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10764         (_dbus_data_slot_allocator_alloc): rework these to keep a
10765         reference count on each slot and automatically manage a global
10766         slot ID variable passed in by address
10767
10768         * bus/bus.c: convert to new dataslot API
10769
10770         * dbus/dbus-bus.c: convert to new dataslot API
10771
10772         * dbus/dbus-connection.c: convert to new dataslot API
10773
10774         * dbus/dbus-server.c: convert to new dataslot API
10775
10776         * glib/dbus-gmain.c: ditto
10777
10778         * bus/test.c: ditto
10779
10780         * bus/connection.c: ditto
10781
10782 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10783
10784         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10785         after the gcj checks so that the correct configuration tags
10786         will be added to libtool.
10787
10788         * dbus-glib-1.pc.in: No need to specify any includes since
10789         dbus-1.pc.in has those.
10790
10791 2003-06-22  Havoc Pennington  <hp@pobox.com>
10792
10793         * mono/*, gcj/*, configure.in, Makefile.am:
10794         Check in makefiles and subdirs for mono and gcj bindings.
10795         Neither binding actually exists, just trying to get through
10796         all the build and other boring bits.
10797
10798 2003-06-21  Philip Blundell  <philb@gnu.org>
10799
10800         * tools/dbus-monitor.1: Updated.
10801
10802         * tools/dbus-send.1: Likewise.
10803
10804 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10805
10806         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10807         for hangup and error after checking read so we won't discard
10808         pending data if both hangup and read are set.
10809
10810 2003-06-19  Philip Blundell  <philb@gnu.org>
10811
10812         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10813
10814         * tools/dbus-send.c: Accept both --system and --session.
10815
10816         * tools/dbus-monitor.c: Same here.
10817
10818 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10819
10820         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10821         from C++ (Patch by Miloslav Trmac).
10822
10823 2003-06-15  Joe Shaw  <joe@assbarn.com>
10824
10825         * configure.in: Check for socklen_t.
10826
10827         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10828
10829         * test/test-segfault.c: Add #include <sys/time.h>
10830
10831         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10832         dbus-launch needs it.
10833
10834 2003-06-09  Havoc Pennington  <hp@redhat.com>
10835
10836         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10837         SUN_LEN, it breaks abstract socket usage
10838
10839         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10840         starts of lines.
10841
10842 2003-06-04  Havoc Pennington  <hp@pobox.com>
10843
10844         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10845         using unix:abstract=/foo, and when listening in a tmpdir
10846         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10847
10848         * dbus/dbus-transport.c (_dbus_transport_open): support
10849         unix:abstract=/foo
10850
10851         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10852         support abstract sockets
10853
10854         * dbus/dbus-transport-unix.c
10855         (_dbus_transport_new_for_domain_socket): support abstract sockets
10856
10857         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10858         toggle as an argument, implement abstract namespace support
10859         (_dbus_listen_unix_socket): ditto
10860
10861         * configure.in: add --enable-abstract-sockets and implement
10862         a configure check for autodetection of the right value.
10863
10864 2003-06-01  Havoc Pennington  <hp@pobox.com>
10865
10866         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10867         in /tmp (though on Linux this will end up being useless,
10868         when we add abstract namespace support)
10869
10870         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10871         subst'ing it
10872
10873 2003-05-28  Colin Walters  <walters@verbum.org>
10874
10875         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10876
10877 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10878
10879         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10880
10881 2003-05-17  Colin Walters  <walters@gnu.org>
10882
10883         * tools/dbus-send.c: Don't exit with an error code if --help was
10884         passed.  Default to using the session bus instead of the system
10885         one.
10886
10887         * tools/dbus-launch.c: Ditto.
10888
10889         * tools/dbus-monitor.c: Ditto.
10890
10891         * tools/dbus-send.1: Update with new arguments.
10892
10893         * tools/dbus-launch.c: Emit code to export variables.  New
10894         arguments -s and -c to specify shell syntax, and a bit of code to
10895         autodetect syntax.  Also, allow specifying a program to run.
10896
10897         * tools/dbus-launch.1: Update with new arguments.
10898
10899         * tools/dbus-send.1: Ditto.
10900
10901         * tools/dbus-monitor.1: Ditto.
10902
10903 2003-05-17  Havoc Pennington  <hp@pobox.com>
10904
10905         * bus/config-parser.c (merge_included): merge in policies from
10906         child configuration file.
10907
10908         * bus/policy.c (bus_policy_merge): function to merge two policies
10909         together
10910
10911 2003-05-16  Havoc Pennington  <hp@redhat.com>
10912
10913         * dbus/dbus-connection.c: disable verbose lock spew
10914
10915         * tools/dbus-send.c: add --print-reply command line option
10916
10917         * tools/dbus-print-message.h (print_message): new util function
10918         shared by dbus-send and dbus-monitor
10919
10920         * tools/dbus-monitor.c (handler_func): exit on disconnect
10921
10922         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10923         disconnected, don't try to use the read_watch
10924
10925         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10926         so we can find this bug more easily
10927
10928 2003-05-16  Havoc Pennington  <hp@redhat.com>
10929
10930         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10931         NULL as DBusHashTable is annoyingly likely to do.
10932
10933 2003-05-16  Colin Walters  <walters@verbum.org>
10934
10935         * tools/dbus-monitor.c: Add --session argument and usage()
10936         function.
10937
10938         * tools/dbus-monitor.1: Update with new --session arg.
10939
10940         * bus/Makefile.am (install-data-hook): Create
10941         $(libdir)/dbus-1.0/services so that the session bus is happy.
10942
10943 2003-05-15  Havoc Pennington  <hp@redhat.com>
10944
10945         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10946         on non-x86. ifdef's are evil.
10947
10948 2003-05-15  Havoc Pennington  <hp@redhat.com>
10949
10950         * configure.in: 0.11
10951
10952         * NEWS: update
10953
10954         * bus/Makefile.am (initddir): apparently we are supposed to put
10955         init scripts in /etc/rc.d/init.d not /etc/init.d
10956
10957         * bus/Makefile.am: remove the "you must --enable-tests to make
10958         check" as it broke distcheck
10959
10960         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10961
10962 2003-05-13  James Willcox  <jwillcox@gnome.org>
10963
10964         * configure.in:
10965         * bus/activation.c: (bus_activation_service_created),
10966         (bus_activation_activate_service):
10967         * bus/driver.c: (bus_driver_send_service_deleted),
10968         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10969         (bus_driver_send_service_acquired),
10970         (bus_driver_send_welcome_message),
10971         (bus_driver_handle_list_services):
10972         * bus/session.conf.in:
10973         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10974         (dbus_bus_service_exists), (dbus_bus_activate_service):
10975         * dbus/dbus-bus.h:
10976
10977         Add some convenience API which lets you activate a service, and did a
10978         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10979         and dbus_message_get_args()
10980
10981 2003-05-11  Havoc Pennington  <hp@pobox.com>
10982
10983         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10984         calling _dbus_marshal_validate_arg() for every byte in a byte
10985         array, etc.
10986
10987         * dbus/dbus-message-handler.c: use atomic reference counting to
10988         reduce number of locks slightly; the global lock in here sucks
10989
10990         * dbus/dbus-connection.c
10991         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10992         update_dispatch_status that can be called with lock held; then use
10993         in a couple places to reduce locking/unlocking
10994         (dbus_connection_send): hold the lock over the whole function
10995         instead of acquiring it twice.
10996
10997         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10998
10999         * bus/connection.c (bus_connections_setup_connection): fix access
11000         to already-freed memory.
11001
11002         * dbus/dbus-connection.c: keep a little cache of linked list
11003         nodes, to avoid using the global linked list alloc lock in the
11004         normal send-message case. Instead we just use the connection lock
11005         that we already have to take.
11006
11007         * dbus/dbus-list.c (_dbus_list_find_last): new function
11008
11009         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
11010         change to use a struct for the atomic type; fix docs,
11011         they return value before increment, not after increment.
11012
11013         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
11014         (_dbus_string_append_8_aligned): new functions to try to
11015         microoptimize this operation.
11016         (reallocate_for_length): break this out of set_length(), to
11017         improve profile info, and also so we can consider inlining the
11018         set_length() part.
11019
11020         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
11021         strings with some preallocation, cuts down on our calls to realloc
11022         a fair bit. Though if we can get the "move entire string to empty
11023         string" optimization below to kick in here, it would be better.
11024
11025         * dbus/dbus-string.c (_dbus_string_move): just call
11026         _dbus_string_move_len
11027         (_dbus_string_move_len): add a special case for moving
11028         an entire string into an empty string; we can just
11029         swap the string data instead of doing any reallocs.
11030         (_dbus_string_init_preallocated): new function
11031
11032 2003-05-11  Havoc Pennington  <hp@pobox.com>
11033
11034         Write a "test-profile" that does echo client-server with threads;
11035         profile reveals lock contention, memcpy/realloc of buffers, and
11036         UTF-8 validation as hot spots. 20% of lock contention eliminated
11037         with dbus_atomic_inc/dec implementation on x86.  Much remaining
11038         contention is global mempool locks for GList and DBusList.
11039
11040         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
11041         x86 implementation
11042
11043         * dbus/dbus-connection.c (struct DBusConnection): use
11044         dbus_atomic_t for the reference count
11045
11046         * dbus/dbus-message.c (struct DBusMessage): declare
11047         dbus_atomic_t values as volatile
11048
11049         * configure.in: code to detect ability to use atomic integer
11050         operations in assembly, from GLib patch
11051
11052         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
11053         time, tired of it being wrong in threads and forked processes
11054
11055         * glib/test-profile.c: a little program to bounce messages back
11056         and forth between threads and eat CPU
11057
11058         * dbus/dbus-connection.c: add debug spew macros for debugging
11059         thread locks; include config.h at top; fix deadlock in
11060         dbus_connection_flush()
11061
11062 2003-05-08  Havoc Pennington  <hp@pobox.com>
11063
11064         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
11065         data from getting written, and there wasn't a good reason to
11066         use _exit really.
11067
11068         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
11069         dbus_verbose lines in test coverage
11070         (main): add list of functions sorted by # of untested blocks
11071         to the coverage report
11072
11073         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
11074
11075         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
11076
11077         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
11078         extend test coverage
11079
11080         * test/data/auth/cancel.auth-script: test canceling an
11081         authentication
11082
11083         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
11084         aren't used. in CVS history if we end up needing them.
11085
11086 2003-05-04  Havoc Pennington  <hp@pobox.com>
11087
11088         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
11089         unit test
11090
11091         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
11092         function, which assumed length was in # of strings, not bytes
11093
11094         * dbus/dbus-message.c (_dbus_message_test): add tests for some
11095         missing coverage
11096
11097         * dbus/dbus-connection.c
11098         (_dbus_connection_queue_received_message): disable function for
11099         now, we are only using it in test mode
11100
11101         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11102         remove a mistaken FIXME
11103
11104 2003-05-04  Havoc Pennington  <hp@pobox.com>
11105
11106         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
11107         unlock mutex on successful return, patch from Anders Gustafsson
11108
11109 2003-05-04  Havoc Pennington  <hp@pobox.com>
11110
11111         * dbus-glib-1.pc.in (Requires): fix dependencies, from
11112         Anders Gustafsson
11113
11114 2003-05-04  Havoc Pennington  <hp@pobox.com>
11115
11116         * tools/dbus-launch.c: implement
11117
11118         * bus/main.c (main), bus/bus.c (bus_context_new):
11119         implement --print-pid and --fork
11120
11121 2003-05-03  Havoc Pennington  <hp@redhat.com>
11122
11123         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
11124         the address had no value, and add to test suite. Fix and
11125         regression test from Miloslav Trmac
11126
11127 2003-05-03  Havoc Pennington  <hp@pobox.com>
11128
11129         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
11130         watch is invalid when handled
11131
11132         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
11133         dbus-launch utility to launch the bus from a shell script.  Didn't
11134         actually implement dbus-launch yet, it's just a placeholder still.
11135
11136 2003-05-03  Havoc Pennington  <hp@pobox.com>
11137
11138         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
11139         daemon; also documents daemon config file, so replaces
11140         doc/config-file.txt. Corrected some stuff from config-file.txt in
11141         the process of moving it.
11142
11143 2003-05-03  Havoc Pennington  <hp@pobox.com>
11144
11145         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
11146         add some man pages
11147
11148 2003-05-03  Colin Walters  <walters@verbum.org>
11149
11150         * dbus/dbus-sysdeps.c (fill_user_info): Test against
11151         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
11152
11153         * Makefile.am: Update to use new .pc versioning scheme.
11154
11155 2003-05-02  Havoc Pennington  <hp@redhat.com>
11156
11157         * bus/system.conf.in: allow send/receive to/from message bus
11158         service
11159
11160 2003-04-30  Havoc Pennington  <hp@redhat.com>
11161
11162         * configure.in: print a note when building with unit tests and
11163         without assertions
11164
11165 2003-04-30  Havoc Pennington  <hp@redhat.com>
11166
11167         * Makefile.am: add a check-local that complains if you didn't
11168         configure with --enable-tests
11169
11170 2003-04-29  Havoc Pennington  <hp@redhat.com>
11171
11172         * glib/dbus-gmain.c: docs cleanups
11173
11174         * dbus/dbus-types.h: add docs on int64 types
11175
11176         * dbus/dbus-memory.c: fix docs to avoid putting private API in
11177         public API docs section
11178
11179 2003-04-29  Havoc Pennington  <hp@redhat.com>
11180
11181         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
11182         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
11183         parallel install API version, not with the D-BUS package version.
11184
11185         * HACKING: move some of README over here
11186
11187         * README: updates, and document API/ABI policy
11188
11189         * configure.in: reindentation
11190
11191 2003-04-29  Havoc Pennington  <hp@redhat.com>
11192
11193         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
11194         to use this library" to be sure people have the right
11195         expectations.
11196
11197 2003-04-28  Havoc Pennington  <hp@redhat.com>
11198
11199         * configure.in: add --enable-docs which by default is auto yes if
11200         doxygen and db2html found, no otherwise; but can be forced on/off
11201
11202         * doc/Makefile.am: conditionalize whether to build docs on
11203         --enable-docs
11204
11205 2003-04-28  Havoc Pennington  <hp@redhat.com>
11206
11207         * configure.in: 0.10
11208
11209         * NEWS: update
11210
11211         * bus/system.conf.in: add <includedir>system.d</includedir>
11212
11213         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
11214         username was provided but not uid
11215
11216         * bus/config-parser.c (struct BusConfigParser): keep track of
11217         whether the parser is toplevel or was included; change some
11218         of the error handling if it's included.
11219
11220 2003-04-27  Havoc Pennington  <hp@pobox.com>
11221
11222         Unbreak my code...
11223
11224         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11225         report correct status if we finish processing authentication
11226         inside this function.
11227
11228         * bus/activation.c (try_send_activation_failure): use
11229         bus_transaction_send_error_reply
11230
11231         * bus/connection.c (bus_connection_get_groups): return an error
11232         explaining the problem
11233
11234         * bus/bus.c (bus_context_check_security_policy): implement
11235         restriction here that inactive connections can only send the
11236         hello message. Also, allow bus driver to send anything to
11237         any recipient.
11238
11239         * bus/connection.c (bus_connection_complete): create the
11240         BusClientPolicy here instead of on-demand.
11241         (bus_connection_get_policy): don't return an error
11242
11243         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
11244         sender field in message being replied to
11245
11246         * bus/bus.c (bus_context_check_security_policy): fix silly typo
11247         causing it to return FALSE always
11248
11249         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
11250         we checked sender rather than destination
11251
11252 2003-04-25  Havoc Pennington  <hp@redhat.com>
11253
11254         test suite is slightly hosed at the moment, will fix soon
11255
11256         * bus/connection.c (bus_connections_expire_incomplete): fix to
11257         properly disable the timeout when required
11258         (bus_connection_set_name): check whether we can remove incomplete
11259         connections timeout after we complete each connection.
11260
11261         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
11262         probably still broken.
11263
11264         * bus/services.c (bus_registry_acquire_service): implement max
11265         number of services owned, and honor allow/deny rules on which
11266         services a connection can own.
11267
11268         * bus/connection.c (bus_connection_get_policy): report errors here
11269
11270         * bus/activation.c: implement limit on number of pending
11271         activations
11272
11273 2003-04-25  Havoc Pennington  <hp@redhat.com>
11274
11275         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
11276         where we used >= 0 instead of != DBUS_UID_UNSET.
11277
11278 2003-04-25  Havoc Pennington  <hp@redhat.com>
11279
11280         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
11281         were toggled without add/remove, fix from Anders Gustafsson
11282
11283 2003-04-24  Havoc Pennington  <hp@redhat.com>
11284
11285         * test/data/valid-config-files/basic.conf: add <limit> tags to
11286         this test
11287
11288         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
11289         <limit> tag in configuration file.
11290
11291 2003-04-24  Havoc Pennington  <hp@redhat.com>
11292
11293         * bus/dispatch.c: somehow missed some name_is
11294
11295         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
11296         (_dbus_timeout_set_interval): new
11297
11298         * bus/connection.c (bus_connections_setup_connection): record time
11299         when each connection is first set up, and expire them after the
11300         auth timeout passes.
11301
11302 2003-04-24  Havoc Pennington  <hp@redhat.com>
11303
11304         * dbus/dbus-message.c (dbus_message_name_is): rename
11305         (dbus_message_service_is): rename
11306         (dbus_message_sender_is): rename
11307         (dbus_message_get_service): rename
11308
11309 2003-04-24  Havoc Pennington  <hp@redhat.com>
11310
11311         * configure.in: add --enable-checks
11312
11313         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11314
11315         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11316         to use thread locks.
11317         (_dbus_connection_handler_destroyed_locked): move some private
11318         functions into proper docs group
11319
11320         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11321         _dbus_return_val_if_fail
11322
11323         Throughout: use dbus_return_if_fail
11324
11325 2003-04-23  James Willcox  <jwillcox@gnome.org>
11326
11327         * glib/dbus-glib.h:
11328         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11329         (dbus_connection_setup_with_g_main),
11330         (dbus_server_setup_with_g_main):
11331         * glib/test-dbus-glib.c: (main):
11332         * glib/test-thread-client.c: (main):
11333         * glib/test-thread-server.c: (new_connection_callback), (main):
11334         * tools/dbus-monitor.c: (main):
11335
11336         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11337         and dbus_server_setup_with_g_main().
11338
11339 2003-04-20  Havoc Pennington  <hp@pobox.com>
11340
11341         * doc/dbus-specification.sgml: document the restrictions on
11342         message and service names
11343
11344 2003-04-22  Havoc Pennington  <hp@redhat.com>
11345
11346         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11347         support, and do some code cleanups to share more code and
11348         speed up array marshal/demarshal.
11349
11350         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11351
11352         * configure.in: generate dbus-arch-deps.h
11353
11354         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11355         64-bit typecodes
11356
11357 2003-04-22  Havoc Pennington  <hp@redhat.com>
11358
11359         * test/data/valid-messages/opposite-endian.message: fix test
11360         to use proper type for rply field
11361
11362         * test/data/invalid-messages: add tests for below validation
11363
11364         * dbus/dbus-message.c (decode_header_data): validate field types,
11365         and validate that named fields are valid names
11366         (decode_name_field): consider messages in the
11367         org.freedesktop.Local. namespace to be invalid.
11368
11369         * dbus/dbus-string.c (_dbus_string_validate_name): new
11370
11371 2003-04-19  Havoc Pennington  <hp@pobox.com>
11372
11373         * bus/driver.c (bus_driver_handle_hello): check limits and
11374         return an error if they are exceeded.
11375
11376         * bus/connection.c: maintain separate lists of active and inactive
11377         connections, and a count of each. Maintain count of completed
11378         connections per user. Implement code to check connection limits.
11379
11380         * dbus/dbus-list.c (_dbus_list_unlink): export
11381
11382         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11383         number of bytes in the message queue for a connection
11384
11385 2003-04-18  Havoc Pennington  <hp@pobox.com>
11386
11387         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11388
11389         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11390         memleaks
11391
11392         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11393         on realloc be sure to update the pointer in the keyring
11394
11395         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11396         offset to avoid writing to unallocated memory
11397
11398         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11399         try the next mechanism, so we properly handle OOM
11400
11401         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11402         on OOM.
11403         (_dbus_keyring_new): fix OOM bug
11404         (_dbus_keyring_new_homedir): always set error; impose a maximum
11405         number of keys we'll load from the file, mostly to speed up the
11406         test suite and make its OOM checks more useful, but also for
11407         general sanity.
11408
11409         * dbus/dbus-auth.c (process_error_server): reject authentication
11410         if we get an error from the client
11411         (process_cancel): on cancel, send REJECTED, per the spec
11412         (process_error_client): send CANCEL if we get an error from the
11413         server.
11414
11415 2003-04-18  Havoc Pennington  <hp@pobox.com>
11416
11417         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11418         debug spew
11419
11420         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11421         handling problem
11422
11423         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11424         about DBUS_TEST_HOMEDIR once
11425
11426         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11427         the environment
11428
11429         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11430         config file so we test the right thing
11431
11432         Throughout: assorted docs improvements
11433
11434 2003-04-18  Havoc Pennington  <hp@pobox.com>
11435
11436         * glib/dbus-gmain.c: adapt to watch changes
11437
11438         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11439
11440         * dbus/dbus-server.h: remove dbus_server_handle_watch
11441
11442         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11443
11444         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11445         like DBusTimeout, so we don't need dbus_connection_handle_watch
11446         etc.
11447
11448 2003-04-17  Havoc Pennington  <hp@redhat.com>
11449
11450         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11451         database usage so it all goes via the DBusUserDatabase cache.
11452
11453 2003-04-17  Havoc Pennington  <hp@redhat.com>
11454
11455         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11456         there was an OOM watch we skipped, we always return TRUE so we
11457         iterate again to have a look at it again. Fixes test suite hang.
11458         Code rearrangement also lets us lose some memset and only iterate
11459         over callbacks once.
11460
11461         * bus/driver.c (bus_driver_handle_message): sense of test for
11462         reply was backward
11463
11464 2003-04-16  Havoc Pennington  <hp@pobox.com>
11465
11466         * doc/dbus-specification.sgml: make spec say serials are unsigned
11467
11468         * dbus/dbus-message.h: change message serials to unsigned
11469
11470         * dbus/dbus-connection.c: adapt to message serials being unsigned
11471
11472 2003-04-15  Havoc Pennington  <hp@pobox.com>
11473
11474         * bus/bus.c: create and keep around a shared DBusUserDatabase
11475         object.
11476
11477         * bus/connection.c (bus_connection_get_groups): don't cache
11478         groups for user in the connection object, since user database
11479         object now does that.
11480
11481 2003-04-16  Havoc Pennington  <hp@redhat.com>
11482
11483         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11484         list of size counters
11485         (_dbus_message_loader_putback_message_link): put back a popped link
11486
11487         * dbus/dbus-connection.c
11488         (dbus_connection_set_max_live_messages_size): rename
11489         max_received_size
11490         (dbus_connection_get_outgoing_size): get size of outgoing
11491         queue
11492         (_dbus_connection_set_connection_counter): remove this cruft
11493
11494 2003-04-14  Havoc Pennington  <hp@redhat.com>
11495
11496         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11497         caching, but at some point we might want to be able to use a
11498         different database.
11499
11500         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11501         SHA1 conf file to test the sha1 auth mechanism, since the regular
11502         test always uses EXTERNAL when available.
11503
11504         * configure.in,
11505         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11506         add conf file that requires use of sha1 auth
11507
11508 2003-04-13  Havoc Pennington  <hp@pobox.com>
11509
11510         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11511         from Philip Blundell to send messages and monitor them.
11512
11513 2003-04-13  Havoc Pennington  <hp@pobox.com>
11514
11515         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11516         callbacks
11517
11518         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11519         users
11520
11521         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11522         fix to only recover unused bytes if we're already authenticated
11523         (_dbus_transport_get_is_authenticated): fix to still mark us
11524         authenticated if there are unused bytes.
11525
11526         * bus/dispatch.c: implement security policy checking
11527
11528         * bus/connection.c (bus_transaction_send_from_driver): new
11529
11530         * bus/bus.c (bus_context_check_security_policy): new
11531
11532         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11533         now we just set the DBusError and it gets converted to an error
11534         reply.
11535
11536         * bus/connection.c (allow_user_function): enable code using actual
11537         data from the config file
11538
11539         * bus/policy.c (list_allows_user): handle wildcard rules for
11540         user/group connection perms
11541
11542 2003-04-13  Havoc Pennington  <hp@pobox.com>
11543
11544         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11545
11546         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11547
11548         * bus/policy.c (bus_policy_append_mandatory_rule)
11549         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11550         (bus_policy_append_group_rule): new functions
11551
11552 2003-04-12  Havoc Pennington  <hp@pobox.com>
11553
11554         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11555
11556         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11557         the pid/gid/uid, just for paranoia.
11558
11559         * test/break-loader.c (randomly_do_n_things): find a byte
11560         containing a type code, and randomly change it to a different
11561         type code.
11562
11563 2003-04-12  Havoc Pennington  <hp@pobox.com>
11564
11565         * bus/policy.h: change BusPolicy to be the thing from the config
11566         file, and rename old BusPolicy to BusClientPolicy
11567
11568         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11569         match change in how policy works
11570
11571         * dbus/dbus-internals.h: mark assert_not_reached as
11572         __attribute((noreturn))__
11573
11574 2003-04-11  Havoc Pennington  <hp@redhat.com>
11575
11576         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11577         the broadcast service. Use boolean return for ServiceExists.
11578
11579 2003-04-11  Havoc Pennington  <hp@redhat.com>
11580
11581         * configure.in: add another directory to look for qt in.
11582
11583 2003-04-11  Havoc Pennington  <hp@redhat.com>
11584
11585         * AUTHORS: add Colin Walters
11586
11587 2003-04-11  Havoc Pennington  <hp@redhat.com>
11588
11589         * NEWS: update
11590
11591         * configure.in: 0.9
11592
11593 2003-04-11  Havoc Pennington  <hp@redhat.com>
11594
11595         * bus/messagebus.in: remove pid file when stopping the
11596         message bus, since the bus won't have privileges to remove it
11597         itself.
11598
11599 2003-04-11  Havoc Pennington  <hp@redhat.com>
11600
11601         * bus/bus.c (bus_context_new): move credentials change after
11602         creating pidfile
11603
11604 2003-04-11  Havoc Pennington  <hp@pobox.com>
11605
11606         * test/decode-gcov.c: add "below average functions" to the
11607         coverage report, and change how some of the code works.
11608
11609         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11610         not in the coverage stats.
11611
11612         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11613         couple places so running the test suite doesn't result in megaspam.
11614
11615 2003-04-11  Havoc Pennington  <hp@pobox.com>
11616
11617         * bus/dispatch.c (check_existent_service_activation): accept a no
11618         memory error in a place we didn't before
11619
11620         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11621         in case the first one failed," since the test suite is less
11622         broken now.
11623
11624 2003-04-10  Havoc Pennington  <hp@pobox.com>
11625
11626         * bus/dispatch.c (check_segfault_service_activation): add test
11627         for launching an executable that just crashes.
11628
11629         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11630         don't leave a million cores. We'll see how portable this is.
11631
11632 2003-04-10  Havoc Pennington  <hp@pobox.com>
11633
11634         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11635         the possible parent failures before we fork, so that we don't
11636         fail to create a babysitter after creating the child.
11637
11638         * bus/activation.c (bus_activation_activate_service): kill child
11639         if we don't successfully complete the activation.
11640
11641 2003-04-10  Havoc Pennington  <hp@redhat.com>
11642
11643         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11644         the connection if it's disconnected
11645
11646         * bus/activation.c (bus_activation_service_created): use new
11647         transaction features to roll back removal of pending activation if
11648         we don't successfully create the service after all. Don't remove
11649         pending activation if the function fails.
11650
11651         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11652         (_dbus_list_insert_after_link): new code to facilitate
11653         services.c fixes
11654
11655         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11656         new functionality, so we can preallocate the ability to insert
11657         into a hash table.
11658
11659         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11660         allowing us to put custom hooks in a transaction to be used for
11661         cancelling said transaction
11662
11663         * doc/dbus-specification.sgml: add some discussion of secondary
11664         service owners, and disallow zero-length service names
11665
11666         * bus/services.c (bus_registry_acquire_service): new function,
11667         splits out part of bus_driver_handle_acquire_service() and fixes
11668         a bug where we didn't remove the service doing the acquiring
11669         from the secondary queue if we failed to remove the current owner
11670         from the front of the queue.
11671
11672 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11673
11674         * doc/dbus-specification.sgml:
11675         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11676
11677 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11678
11679         * bus/.cvsignore:
11680         * glib/.cvsignore:
11681         * test/.cvsignore:
11682         Added files to cvsignore
11683
11684         * dbus/dbus-message.h:
11685         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11686         Make get_named() take two out argument and return a boolean.
11687         (dbus_message_iter_get_args_valist):
11688         Update usage of get_named().
11689         (dbus_message_iter_append_byte):
11690         Fix typo
11691         (dbus_message_iter_append_named)
11692         Fix typo
11693         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11694         More tests.
11695
11696 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11697
11698         * dbus/dbus-marshal.[ch]:
11699         Add array_type_pos argument to _dbus_marshal_validate_arg.
11700         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11701
11702         * dbus/dbus-message.[ch]:
11703         Multi-dimensional arrays have full type specification in the
11704         outermost array. Iter code re-arranged to handle this.
11705         Added some more iter tests.
11706
11707         * doc/dbus-specification.sgml:
11708         Add me to authors.
11709         Remove old FIXME.
11710         Update new array encoding description.
11711         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11712
11713         * test/data/invalid-messages/array-with-mixed-types.message:
11714         * test/data/valid-messages/array-of-array-of-uint32.message:
11715         Change to the new array format.
11716
11717         * test/data/invalid-messages/too-short-dict.message:
11718         Fix bug in test.
11719
11720         * test/data/valid-messages/recursive-types.message:
11721         Fix up and extend test.
11722
11723 2003-04-10  Havoc Pennington  <hp@pobox.com>
11724
11725         * bus/dispatch.c: lots of fixes
11726
11727         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11728         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11729         that was crack, broke the test service.
11730
11731         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11732         handling to avoid piling up errors if we get a failure on the
11733         first address.
11734
11735         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11736         pid in assertion failures.
11737
11738         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11739         to some fixed size of file descriptor array. Don't return TRUE
11740         anytime a timeout exists, that led to lots of busy loop silliness
11741         in the tests.
11742
11743 2003-04-09  Havoc Pennington  <hp@redhat.com>
11744
11745         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11746         I'd checked this in earlier but hadn't.
11747
11748 2003-04-09  Havoc Pennington  <hp@redhat.com>
11749
11750         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11751         the activation test (man this is getting old!)
11752
11753 2003-04-09  Havoc Pennington  <hp@redhat.com>
11754
11755         * test/test-utils.c: use dispatch status function to fix this up
11756
11757         * bus/connection.c (connection_watch_callback): don't dispatch
11758         from here
11759         (connection_timeout_callback): don't dispatch from here
11760         (bus_connections_setup_connection): set the dispatch status function
11761         (bus_connection_disconnected): unset it
11762
11763         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11764         used to add a connection to be dispatched
11765         (_dbus_loop_iterate): do the dispatching at the end of each
11766         iteration
11767
11768         * dbus/dbus-connection.c
11769         (dbus_connection_set_dispatch_status_function): new function
11770         allowing us to fix up main loop usage
11771         (_dbus_connection_last_unref): free all the various function
11772         user data
11773         (dbus_connection_dispatch): call the DispatchStatusFunction
11774         whenever this function returns
11775         (dbus_connection_handle_watch): call DispatchStatusFunction
11776         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11777         (reply_handler_timeout): call DispatchStatusFunction
11778         (dbus_connection_flush): call DispatchStatusFunction
11779
11780 2003-04-09  Havoc Pennington  <hp@redhat.com>
11781
11782         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11783         a memory leak
11784
11785         * bus/dispatch.c (check_service_activated): fix bug in test
11786
11787         * dbus/dbus-mainloop.c (check_timeout): fix this up
11788
11789         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11790         verbose output so we can sort out output from different processes,
11791         e.g. in the activation case.
11792
11793 2003-04-08  Colin Walters  <walters@gnu.org>
11794
11795         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11796         the pid file.
11797         (bus_context_new): Set it.
11798         (bus_context_unref): Use it to delete the pid file.
11799
11800 2003-04-08  Havoc Pennington  <hp@redhat.com>
11801
11802         * test/data/invalid-messages/array-with-mixed-types.message:
11803         regression test that fails for the moment
11804
11805         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11806         tests for convenience
11807
11808         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11809         array of nil, it broke things.
11810
11811         * test/data/invalid-messages/array-of-nil.message: regression test
11812
11813         * test/data/valid-messages/array-of-array-of-uint32.message:
11814         happened to write this so added it to suite
11815
11816 2003-04-08  Havoc Pennington  <hp@redhat.com>
11817
11818         * bus/driver.c (bus_driver_handle_acquire_service): init
11819         retval/reply before checking name
11820
11821         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11822         recursion depth argument
11823
11824         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11825         in the public struct for future extension
11826
11827         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11828         typo
11829
11830         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11831         message
11832
11833         * doc/dbus-specification.sgml: fix typo
11834
11835 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11836
11837         Implemented recursive types, named types and new-style iters
11838
11839         * bus/driver.c:
11840         * glib/test-thread-client.c: (thread_func):
11841         * glib/test-thread-server.c: (handle_test_message):
11842         * test/test-service.c: (handle_echo):
11843         Update to new api
11844
11845         * dbus/Makefile.am:
11846         * dbus/dbus-dict.c:
11847         * dbus/dbus-dict.h:
11848         * dbus/dbus.h
11849         Remove DBusDict
11850
11851         * dbus/dbus-internals.c: (_dbus_type_to_string):
11852         Update for new types.
11853
11854         * dbus/dbus-marshal.[ch]:
11855         Implement recursive types and the new marshalling format.
11856         Remove hardcoded dict marshalling.
11857         Marshal named types.
11858
11859         * dbus/dbus-message-builder.c:
11860         Add BYTE_ARRAY.
11861         Remove references to old types
11862
11863         * dbus/dbus-message.[ch]:
11864         New non-refcounted iter API that supports recursive iters.
11865         Use iters for appending, including support for recursive
11866         iters.
11867         Add byte and named type support.
11868         Update everything to new marshalling formats.
11869         Add tests for new API.
11870
11871         * dbus/dbus-protocol.h:
11872         Remove old array types.
11873         Add types: BYTE, ARRAY, DICT, NAMED
11874
11875         * dbus/dbus-string.c:
11876         * dbus/dbus-sysdeps.c:
11877         Make parse_double locale safe.
11878
11879         * dbus/dbus-test-main.c:
11880         Call setlocale.
11881
11882         * dbus/dbus-test.c:
11883         Kill dict test
11884
11885         * doc/dbus-specification.sgml:
11886         Update spec
11887
11888         * test/data/incomplete-messages/missing-body.message:
11889         * test/data/invalid-messages/bad-boolean.message:
11890         * test/data/invalid-messages/bad-boolean-array.message:
11891         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11892         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11893         * test/data/invalid-messages/too-short-dict.message:
11894         * test/data/valid-messages/dict-simple.message:
11895         * test/data/valid-messages/dict.message:
11896         * test/data/valid-messages/emptiness.message:
11897         * test/data/valid-messages/lots-of-arguments.message:
11898         * test/data/valid-messages/no-padding.message:
11899         * test/data/valid-messages/recursive-types.message:
11900         Add missing NAME fields
11901         Fix up dicts & arrays
11902
11903         * test/data/invalid-messages/dict-with-nil-value.message:
11904         Removed, this is not invalid anymore.
11905
11906         * test/data/valid-messages/recursive-types.message:
11907         Add new test for deeply recursive types.
11908
11909 2003-04-07  Havoc Pennington  <hp@pobox.com>
11910
11911         * bus/driver.c (bus_driver_handle_acquire_service): return an
11912         error if you try to acquire a service that starts with ':'
11913
11914 2003-04-07  Havoc Pennington  <hp@redhat.com>
11915
11916         * doc/dbus-specification.sgml: require that base service names
11917         start with ':' and that the base service is created/deleted
11918         as first and last things a connection does on the bus
11919
11920         * bus/dispatch.c (check_existent_service_activation): lots more
11921         work on the activation test; it doesn't fully pass yet...
11922
11923         * test/test-service.c (main): fix so we don't memleak the
11924         connection to the message bus
11925         (filter_func): accept a message asking us to exit
11926
11927 2003-04-06  Havoc Pennington  <hp@pobox.com>
11928
11929         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11930         from Colin Walters
11931
11932         * configure.in: fixes to Qt detection from Colin Walters
11933
11934         * doc/Makefile.am: Only remove generated docbook dirs if they
11935         exist, from Colin Walters
11936
11937         * dbus/dbus-bus.c: change how we set well-known connections to
11938         NULL, so that it works if a single connection is stored in
11939         two well-known array slots.
11940
11941         * test/Makefile.am: remove a lot of stuff that isn't immediately
11942         useful, it's in CVS history if we want it.
11943
11944         * test/test-service.c: use dbus-mainloop instead of that
11945         watch.[hc] crack
11946
11947 2003-04-06  Havoc Pennington  <hp@pobox.com>
11948
11949         * dbus/Makefile.am: split lists of sources into stuff that goes in
11950         the library, util functions that go in the lib and are also used
11951         elsewhere, and util functions that are used in tests/daemon but
11952         don't go in the lib.
11953
11954         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11955         here so it can be used in test binaries also
11956
11957 2003-04-06  Havoc Pennington  <hp@pobox.com>
11958
11959         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11960         here in the parent process, so we can return an error if it
11961         fails. Also, move some of the code into the child so the parent
11962         is less hosed if we fail midway through.
11963
11964         * bus/bus.c (bus_context_new): move pidfile detection further up
11965         in the function, before we start overwriting sockets and such.
11966
11967         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11968
11969         * configure.in: add --with-system-pid-file and --with-system-socket
11970
11971 2003-04-06  Colin Walters  <walters@verbum.org>
11972
11973         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11974
11975         * bus/system.conf.in: Declare a pidfile.
11976
11977         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11978         create one (if appropriate).
11979
11980         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11981         (struct BusConfigParser) [pidfile]: New.
11982         (element_type_to_name, merge_included, start_busconfig_child)
11983         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11984         (bus_config_parser_unref): Free it.
11985         (bus_config_parser_get_pidfile): New function.
11986
11987         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11988
11989         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11990
11991         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11992
11993         * dbus/dbus-sysdeps.h: Prototype it.
11994
11995 2003-04-06  Havoc Pennington  <hp@pobox.com>
11996
11997         * bus/bus.c (bus_context_new): print the address in here, rather
11998         than in main(), because we need to do it before forking the daemon
11999
12000         * bus/dispatch.c (send_service_nonexistent_error): set the sender
12001         on the service nonexistent error
12002
12003         * bus/driver.c (bus_driver_handle_acquire_service): set the
12004         sender on the AcquireService reply
12005
12006         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
12007         server also listen on a UNIX socket so services can connect to it.
12008
12009 2003-04-06  Havoc Pennington  <hp@pobox.com>
12010
12011         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
12012         so it detects deadlocks and also we actually init threads when
12013         debugging.
12014
12015 2003-04-06  Havoc Pennington  <hp@pobox.com>
12016
12017         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
12018         save the domain socket name, and unlink it when we disconnect the
12019         server. Means that at least when we exit normally, we won't leave
12020         a bunch of junk in /tmp
12021
12022         * dbus/dbus-transport-unix.c
12023         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
12024         memory management). (I was making a real change here but then
12025         didn't)
12026
12027 2003-04-06  Havoc Pennington  <hp@pobox.com>
12028
12029         * bus/bus.c (bus_context_new): fix wrong handling of
12030         server_data_slot_unref() in the error case.
12031
12032         * dbus/dbus-internals.h (_dbus_assert): change so it passes
12033         "(condition) != 0" to _dbus_real_assert so that
12034         "_dbus_assert (pointer)" doesn't cause a warning
12035
12036         * bus/main.c (main): accept --print-address option to print out
12037         the message bus address
12038
12039         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
12040
12041         * dbus/dbus-transport.c (_dbus_transport_open): special error for
12042         "tmpdir" option to unix: address on client side
12043
12044         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
12045         to unix: address
12046
12047         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
12048         we can use to create sockets in the test suite.
12049
12050         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
12051         cleanly. To be used for testing.
12052
12053         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
12054
12055         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
12056
12057         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12058         handle trying to call this when there's no servers active
12059
12060 2003-04-05  Havoc Pennington  <hp@pobox.com>
12061
12062         * NEWS: update
12063
12064         * configure.in: 0.8
12065
12066 2003-04-05  Havoc Pennington  <hp@pobox.com>
12067
12068         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
12069         crash on startup. Need to get "try starting the daemon"
12070         in the test suite I guess. ;-)
12071
12072         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
12073         tracked the number of open connections; it's better done in
12074         application-specific code as you want it to span all servers etc.
12075
12076 2003-04-05  Havoc Pennington  <hp@pobox.com>
12077
12078         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
12079         patch from Colin Walters
12080
12081 2003-04-05  Havoc Pennington  <hp@pobox.com>
12082
12083         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
12084         reality; in fact multiple mechanisms are allowed.
12085
12086         * dbus/dbus-internals.c (_dbus_real_assert)
12087         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
12088         _dbus_assert_not_reached() into functions, so that they don't show
12089         up in basic block counts for test coverage, and don't use up as
12090         much disk space. Does mean slower execution speed though, so
12091         assumes --disable-asserts is the normal production case.
12092
12093 2003-04-05  Havoc Pennington  <hp@pobox.com>
12094
12095         * test/Makefile.am (dist-hook): also dist *.in files
12096
12097         * NEWS: update
12098
12099         * configure.in: 0.7
12100
12101 2003-04-05  Havoc Pennington  <hp@pobox.com>
12102
12103         * dbus/dbus-string.c: docs warning
12104
12105         * dbus/dbus-spawn.c: missing docs
12106
12107         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
12108
12109 2003-04-05  Havoc Pennington  <hp@pobox.com>
12110
12111         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
12112         magic from GLib
12113
12114         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
12115         to -1 once we've reaped the babysitter
12116         (_dbus_babysitter_handle_watch): do as much work as we can, not
12117         just one go of it
12118
12119         * bus/activation.c: add code using DBusBabysitter so that we
12120         handle it when a service fails to start up properly.
12121         (bus_activation_service_created): don't remove the activation
12122         entries as we go, just let them get removed when we free the pending
12123         activation. Unref reply messages after sending them.
12124
12125 2003-04-05  Havoc Pennington  <hp@pobox.com>
12126
12127         * test/decode-gcov.c (main): print per-directory stats in the report
12128
12129         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
12130
12131 2003-04-05  Havoc Pennington  <hp@pobox.com>
12132
12133         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
12134
12135         * test/decode-gcov.c: hack up a little program to suck data
12136         out of gcov files. Yes this is sort of silly.
12137
12138         * configure.in: define something in config.h and do an
12139         AM_CONDITIONAL when gcov is enabled
12140
12141 2003-04-04  Havoc Pennington  <hp@redhat.com>
12142
12143         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
12144         return a "babysitter" object that is used to monitor the status of
12145         the spawned process and reap it when required.
12146
12147         * test/test-segfault.c, test/test-exit.c,
12148         test/test-sleep-forever.c: binaries that do various lame things,
12149         used in the test suite.
12150
12151         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
12152
12153 2003-04-03  Havoc Pennington  <hp@pobox.com>
12154
12155         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
12156         in preparation for modifying it, dbus-sysdeps is getting
12157         a bit unmanageable.
12158
12159 2003-04-03  Havoc Pennington  <hp@redhat.com>
12160
12161         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
12162         have multiple ones
12163
12164         * bus/*.[hc]: adapt to mainloop change
12165
12166 2003-04-03  Havoc Pennington  <hp@redhat.com>
12167
12168         * bus/activation.c (load_directory): fix up memleaks
12169         (bus_activation_entry_free): free the entry
12170
12171         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
12172         we get one from the message bus; fix memleaks.
12173
12174         * dbus/dbus-message.c (dbus_set_error_from_message): new function
12175
12176 2003-04-03  Havoc Pennington  <hp@pobox.com>
12177
12178         * bus/config-parser.c (bus_config_parser_unref): free
12179         list of mechanisms, bug discovered by test suite enhancements
12180         (putting system.conf and session.conf into suite)
12181
12182         * test/Makefile.am, test/test-service.c: add placeholder for a
12183         test service that we'll activate as part of test suite. Doesn't
12184         do anything yet.
12185
12186         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
12187         setting NULL value, and use system malloc not dbus_malloc()
12188         when we have unavoidable memleakage.
12189
12190         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
12191         didn't work, and support DBUS_BUS_ACTIVATION.
12192
12193         * bus/activation.c (child_setup): pass our well-known bus type to
12194         the child
12195
12196         * bus/config-parser.c: support <type> to specify well-known type
12197
12198         * doc/dbus-specification.sgml: document the env variables to
12199         locate well-known buses and find service activator
12200
12201 2003-04-02  Havoc Pennington  <hp@redhat.com>
12202
12203         * test/Makefile.am (all-local): add a rule to copy tests to
12204         builddir, so we can have generated tests. Use this to remove the
12205         silly hack for testing system.conf and session.conf. Will use this
12206         shortly to generate .service files pointing to test binaries.
12207
12208 2003-04-02  Havoc Pennington  <hp@redhat.com>
12209
12210         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
12211         current alloc and needed new length, not max of the doubled
12212         allocation and needed new length. Also, when building tests,
12213         don't do the double-allocation stuff, just realloc every time.
12214
12215 2003-04-02  Havoc Pennington  <hp@redhat.com>
12216
12217         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
12218         in error messages
12219         (_dbus_string_get_dirname): new
12220         (_dbus_sysdeps_test): new
12221         (_dbus_directory_open): include dirnames in error messages
12222
12223         * bus/config-parser.c: interpret <include> and <includedir> and
12224         <servicedir> relative to config file location if the given
12225         filename is not absolute.
12226
12227         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
12228
12229 2003-04-02  Havoc Pennington  <hp@redhat.com>
12230
12231         * bus/connection.c (bus_transaction_send_error_reply): set sender
12232         service for the error, and unref the reply on success
12233
12234         * bus/activation.c: convert to use BusTransaction so OOM can be
12235         handled correctly
12236         (bus_activation_service_created): set sender of the message
12237
12238 2003-04-01  Havoc Pennington  <hp@redhat.com>
12239
12240         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
12241         <includedir> (at least mostly)
12242
12243         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
12244         first, then the user ID
12245
12246 2003-04-01  Havoc Pennington  <hp@pobox.com>
12247
12248         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
12249         function
12250
12251         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
12252
12253         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
12254
12255         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
12256         socket 0777, and unlink any existing socket.
12257
12258         * bus/bus.c (bus_context_new): change our UID/GID and fork if
12259         the configuration file so specifies; set up auth mechanism
12260         restrictions
12261
12262         * bus/config-parser.c (bus_config_parser_content): add support
12263         for <fork> option and fill in code for <auth>
12264
12265         * bus/system.conf.in: add <fork/> to default configuration,
12266         and limit auth mechanisms to EXTERNAL
12267
12268         * doc/config-file.txt (Elements): add <fork>
12269
12270         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
12271         (_dbus_change_identity): new function
12272
12273 2003-03-31  Havoc Pennington  <hp@redhat.com>
12274
12275         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
12276         (_dbus_listen_unix_socket): fix off-by-one error in null
12277         termination spotted by Nalin
12278
12279 2003-03-31  Havoc Pennington  <hp@redhat.com>
12280
12281         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
12282         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
12283         having a real home directory available.
12284
12285 2003-03-31  Havoc Pennington  <hp@redhat.com>
12286
12287         * bus/Makefile.am (install-data-hook): create /var/run/dbus
12288
12289         * bus/messagebus.in: add init script for Red Hat /etc/init.d
12290
12291         * configure.in: add support for specifying a style of init script
12292         to install
12293
12294 2003-03-31  Havoc Pennington  <hp@redhat.com>
12295
12296         Fix some annoying DBusString API and fix all affected code.
12297
12298         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
12299         max_length argument
12300         (_dbus_string_get_data): change to return string instead of using
12301         an out param
12302         (_dbus_string_get_const_data): ditto
12303         (_dbus_string_get_data_len): ditto
12304         (_dbus_string_get_const_data_len): ditto
12305
12306 2003-03-31  Havoc Pennington  <hp@redhat.com>
12307
12308         * bus/main.c (main): fix up the command line arguments to be nicer
12309
12310 2003-03-31  Havoc Pennington  <hp@redhat.com>
12311
12312         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12313         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12314         final location that lands in the config file
12315
12316         * bus/config-loader-expat.c (bus_config_load): fix type of
12317         XML_Parser variable
12318
12319         * doc/TODO: remove TODO item for dbus_bus_get()
12320
12321         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12322
12323 2003-03-31  Havoc Pennington  <hp@pobox.com>
12324
12325         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12326         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12327         argument since they are always client side
12328
12329         * dbus/dbus-server.c (dbus_server_get_address): new function
12330
12331         * bus/main.c (main): take the configuration file as an argument.
12332
12333         * test/data/valid-config-files/debug-allow-all.conf: new file to
12334         use with dispatch.c tests for example
12335
12336         * bus/test-main.c (main): require test data dir
12337
12338         * bus/bus.c (bus_context_new): change this to take a
12339         configuration file name as argument
12340
12341         * doc/config-file.txt (Elements): add <servicedir>
12342
12343         * bus/system.conf, bus/session.conf: new files
12344
12345         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12346         well-known socket if none set
12347
12348         * configure.in: create system.conf and session.conf
12349
12350 2003-03-30  Havoc Pennington  <hp@pobox.com>
12351
12352         * bus/config-parser.c: hacking
12353
12354         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12355         to shut down, since it could cause weirdness with the DBusList
12356         lock
12357
12358         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12359         link-oriented stack routines
12360         (alloc_link): free the mempool if the first alloc from it fails
12361
12362         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12363
12364         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12365         from GLib
12366         (_dbus_string_skip_white): new
12367
12368         * doc/config-file.txt (Elements): add <includedir>
12369
12370 2003-03-28  Havoc Pennington  <hp@pobox.com>
12371
12372         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12373         (_dbus_string_copy_data): new functions
12374
12375 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12376
12377         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12378         * dbus/dbus-bus.h:
12379         Add dbus_bus_get.
12380
12381         * dbus/dbus-memory.c:
12382         Fix a doc comment.
12383
12384 2003-03-28  Havoc Pennington  <hp@pobox.com>
12385
12386         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12387         I think it may have just been superstition. Not sure.
12388
12389         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12390         failures that were not being handled.
12391
12392         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12393
12394         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12395         row that will fail on out-of-memory.
12396
12397         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12398         function for testing out-of-memory handling.
12399
12400         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12401         allocation functions, they do map exactly to the expat ones.
12402
12403 2003-03-27  Havoc Pennington  <hp@redhat.com>
12404
12405         * bus/config-loader-libxml.c (bus_config_load): add another error
12406         check
12407
12408 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12409
12410         * doc/TODO:
12411         Add note about automatic service activation.
12412
12413         * doc/dbus-specification.sgml:
12414         Rename the specification and clarify a few things.
12415
12416 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12417
12418         * Doxyfile.in:
12419         * dbus/dbus-address.c:
12420         * dbus/dbus-dict.c:
12421         * dbus/dbus-marshal.c:
12422         * dbus/dbus-server-debug-pipe.c:
12423         * dbus/dbus-transport-unix.c:
12424         Fix documentation warnings.
12425
12426 2003-03-26  Havoc Pennington  <hp@pobox.com>
12427
12428         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12429         after every test so it's quick and easy to see which leaked, and
12430         so we test multiple dbus_shutdown() calls
12431
12432         * configure.in: change configure.in XML stuff to also support
12433         expat
12434
12435         * config-loader-libxml.c: some hacking
12436
12437         * config-loader-expat.c: some hacking
12438
12439         * config-parser.c: some hacking, plus tests
12440
12441 2003-03-25  Havoc Pennington  <hp@redhat.com>
12442
12443         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12444
12445         * configure.in: add --with-xml option to specify XML library,
12446         right now only libxml is supported.
12447
12448         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12449         nonworking code between home and work, still just stubs
12450
12451 2003-03-24  Havoc Pennington  <hp@redhat.com>
12452
12453         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12454         file
12455
12456         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12457         NULL argument for "message" if the error is a well-known one,
12458         fill in a generic message in this case.
12459
12460         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12461         favor of DBusError
12462
12463         * bus/test.c (bus_test_flush_bus): add
12464
12465         * bus/policy.c (bus_policy_test): test code stub
12466
12467 2003-03-24  Havoc Pennington  <hp@pobox.com>
12468
12469         * bus/connection.c (bus_connections_setup_connection): set up
12470         the "can this user connect" function, but it always returns
12471         TRUE until we have a config file parser so we can have a config
12472         file that allows connections.
12473
12474 2003-03-23  Havoc Pennington  <hp@pobox.com>
12475
12476         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12477         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12478         the mutex, so we can check for proper memory management
12479         and OOM handling.
12480
12481         * dbus/dbus-dataslot.c: remove the mutex from
12482         DBusDataSlotAllocator and lock it manually when using it,
12483         to simplify fitting it into the global slots framework.
12484
12485         * dbus/dbus-threads.c (init_static_locks): rework how we're
12486         handling global locks so they are easily shut down.
12487
12488         * bus/policy.c (bus_policy_append_rule): fix
12489
12490         * bus/test-main.c (main): check for memleaks
12491
12492         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12493         test suite check for memleaks
12494
12495         * dbus/dbus-memory.c: add support in test mode for tracking
12496         number of outstanding blocks
12497
12498 2003-03-23  Havoc Pennington  <hp@pobox.com>
12499
12500         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12501         policies code
12502
12503         * dbus/dbus-hash.h: add ULONG hash keys
12504
12505         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12506         (_dbus_get_group_id): new function
12507
12508 2003-03-20  Havoc Pennington  <hp@redhat.com>
12509
12510         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12511         new function
12512         (dbus_connection_get_unix_user): new function
12513
12514 2003-03-20  Havoc Pennington  <hp@pobox.com>
12515
12516         * bus/connection.c (bus_connection_send_oom_error): assert that
12517         message has a sender
12518         (connection_execute_transaction): ditto
12519         (bus_connection_preallocate_oom_error): fix to set the sender, and
12520         set recipient to the destination service, not the bus driver
12521
12522         * bus/policy.c: hacking
12523
12524         * dbus/dbus-message.c (dbus_message_service_is): new function
12525         (dbus_message_sender_is): new
12526
12527 2003-03-19  Havoc Pennington  <hp@redhat.com>
12528
12529         * bus/policy.c: start sketching code for policy restrictions on
12530         what connections can do.
12531
12532 2003-03-18  Havoc Pennington  <hp@redhat.com>
12533
12534         * doc/TODO: some notes on high-level todo items. Little nitpick
12535         stuff is all in @todo, so no need to add it here.
12536
12537         * doc/config-file.txt: some notes on how config file might look
12538
12539 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12540
12541         * configure.in: 0.6
12542
12543         * NEWS: Update.
12544
12545 2003-03-17  Havoc Pennington  <hp@redhat.com>
12546
12547         * dbus/dbus-internals.h: add gcc attributes so that
12548         our printf-style functions warn on bad arguments to
12549         format
12550
12551         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12552         format bug
12553
12554         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12555         printf format bug
12556
12557 2003-03-17  Havoc Pennington  <hp@redhat.com>
12558
12559         * bus/test-main.c (main): make it print something as it runs
12560         so make check doesn't look stuck
12561
12562         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12563         from CVS, now obsolete
12564
12565 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12566
12567         * bus/dispatch.c: (bus_dispatch):
12568         Refetch the service name since it may have been reallocated
12569         when dbus_message_set_sender was called.
12570
12571         * dbus/dbus-sysdeps.c: (_dbus_accept):
12572         Add address and address length variables and use them to stop
12573         valgrind from complaining.
12574
12575 2003-03-17  Havoc Pennington  <hp@pobox.com>
12576
12577         All tests pass, no memleaks, no valgrind complaints.
12578
12579         * bus/test.c: refcount handler_slot
12580
12581         * bus/connection.c (bus_connections_new): refcount
12582         connection_data_slot
12583
12584         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12585         bytes so that auth scripts pass.
12586
12587         * bus/dispatch.c: init message_handler_slot so it gets allocated
12588         properly
12589
12590         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12591
12592         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12593         dealloc server_pipe_hash when no longer used for benefit of
12594         leak checking
12595
12596         * dbus/dbus-auth.c (process_command): memleak fix
12597
12598         * bus/dispatch.c (check_hello_message): memleak fix
12599
12600 2003-03-16  Havoc Pennington  <hp@pobox.com>
12601
12602         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12603
12604 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12605
12606         * bus/activation.c (bus_activation_activate_service): Append
12607         the pending activation entry to the list of pending activations.
12608
12609 2003-03-16  Havoc Pennington  <hp@pobox.com>
12610
12611         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12612         connections
12613
12614         * dbus/dbus-address.c (create_entry): fix OOM handling when
12615         failing to alloc entry->method
12616
12617 2003-03-16  Havoc Pennington  <hp@pobox.com>
12618
12619         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12620         the watch
12621
12622         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12623         add some missing dbus_set_result
12624
12625         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12626         alloc the DBusMessageHandler
12627
12628         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12629         the transport here, since we call this from the finalizer; it
12630         resulted in a double-finalize.
12631
12632         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12633         where we tried to use transport->connection that was NULL,
12634         happened when transport was disconnected early on due to OOM
12635
12636         * bus/*.c: adapt to handle OOM for watches/timeouts
12637
12638         * dbus/dbus-transport-unix.c: port to handle OOM during
12639         watch handling
12640
12641         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12642         reference to unused bytes instead of a copy
12643
12644         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12645         out of memory
12646
12647         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12648         FALSE on OOM
12649
12650         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12651         of memory
12652
12653 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12654
12655         * doc/dbus-specification.sgml:
12656         Document reply message for ActivateService.
12657
12658 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12659
12660         * bus/activation.c: (bus_pending_activation_entry_free),
12661         (bus_pending_activation_free), (bus_activation_new),
12662         (bus_activation_unref), (bus_activation_service_created),
12663         (bus_activation_activate_service):
12664         * bus/activation.h:
12665         * bus/bus.c: (bus_context_new):
12666         * bus/desktop-file.c: (new_section):
12667         * bus/driver.c: (bus_driver_send_service_deleted),
12668         (bus_driver_handle_activate_service):
12669         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12670         * bus/services.h:
12671         * dbus/dbus-connection.c:
12672         (dbus_connection_send_with_reply_and_block):
12673         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12674         * dbus/dbus-protocol.h:
12675         Make activation work better. Now pending activations will be queued
12676         and the daemon won't try to activate services that are already registered.
12677
12678 2003-03-16  Havoc Pennington  <hp@pobox.com>
12679
12680         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12681         connection data
12682
12683         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12684         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12685
12686 2003-03-16  Havoc Pennington  <hp@pobox.com>
12687
12688         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12689         this. always run the test suite before commit...
12690
12691         * bus/*: adapt to DBusConnection API changes
12692
12693         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12694         requires renaming stuff to avoid dbus_connection_dispatch name
12695         conflict.
12696
12697         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12698         function
12699
12700         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12701         separate from _dbus_message_loader_return_buffer()
12702
12703         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12704         this, because it's now always broken to use; the number of
12705         messages in queue vs. the number still buffered by the message
12706         loader is undefined/meaningless. Should use
12707         dbus_connection_get_dispatch_state().
12708         (dbus_connection_dispatch): rename from
12709         dbus_connection_dispatch_message
12710
12711 2003-03-16  Havoc Pennington  <hp@pobox.com>
12712
12713         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12714         implementation
12715
12716 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12717
12718         * dbus/dbus-connection.c:
12719         (dbus_connection_send_with_reply_and_block):
12720         Decrease connection->n_incoming when removing an entry
12721         from the list.
12722         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12723         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12724         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12725         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12726         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12727         (dbus_dict_get_byte_array):
12728         Handle NULL arrays and strings. Also add support for byte arrays.
12729
12730         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12731         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12732         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12733         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12734         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12735         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12736         * dbus/dbus-marshal.h:
12737         Add support for marshalling and demarshalling empty arrays and strings.
12738
12739         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12740         (dbus_message_append_string_array),
12741         (dbus_message_iter_get_boolean),
12742         (dbus_message_iter_get_boolean_array),
12743         (dbus_message_iter_get_int32_array),
12744         (dbus_message_iter_get_uint32_array),
12745         (dbus_message_iter_get_double_array),
12746         (dbus_message_iter_get_byte_array),
12747         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12748         (check_message_handling):
12749         Add support for getting empty arrays and dicts.
12750
12751         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12752         Don't do any validation at all for now, that's better than just checking
12753         for ASCII.
12754
12755         * test/data/valid-messages/emptiness.message:
12756         New test message with lots of empty arrays.
12757
12758 2003-03-16  Havoc Pennington  <hp@pobox.com>
12759
12760         * dbus/dbus-connection.c
12761         (_dbus_connection_queue_received_message_link): new function that
12762         can't fail due to OOM
12763
12764         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12765         new function pops a message together with a list link
12766         containing it.
12767
12768         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12769         message queuing functions to avoid needing to alloc memory
12770
12771 2003-03-16  Havoc Pennington  <hp@pobox.com>
12772
12773         Oops - test code was only testing failure of around 30 of the
12774         mallocs in the test path, but it turns out there are 500+
12775         mallocs. I believe this was due to misguided linking setup such
12776         that there was one copy of dbus_malloc etc. in the daemon and one
12777         in the shared lib, and only daemon mallocs were tested. In any
12778         case, the test case now tests all 500+ mallocs, and doesn't pass
12779         yet, though there are lots of fixes in this patch.
12780
12781         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12782         this so that it doesn't need to allocate memory, since it
12783         has no way of indicating failure due to OOM (and would be
12784         annoying if it did).
12785
12786         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12787
12788         * bus/Makefile.am: rearrange to create two self-contained
12789         libraries, to avoid having libraries with overlapping symbols.
12790         that was resulting in weirdness, e.g. I'm pretty sure there
12791         were two copies of global static variables.
12792
12793         * dbus/dbus-internals.c: move the malloc debug stuff to
12794         dbus-memory.c
12795
12796         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12797         empty.
12798
12799         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12800
12801         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12802         on failure.
12803
12804         * bus/dispatch.c (bus_dispatch_add_connection): free
12805         message_handler_slot when no longer using it, so
12806         memory leak checkers are happy for the test suite.
12807
12808         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12809
12810         * bus/bus.c (new_connection_callback): disconnect in here if
12811         bus_connections_setup_connection fails.
12812
12813         * bus/connection.c (bus_connections_unref): fix to free the
12814         connections
12815         (bus_connections_setup_connection): if this fails, don't
12816         disconnect the connection, just be sure there are no side
12817         effects.
12818
12819         * dbus/dbus-string.c (undo_alignment): unbreak this
12820
12821         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12822         leaking
12823         (_dbus_auth_new): fix the order in which we free strings
12824         on OOM failure
12825
12826         * bus/connection.c (bus_connection_disconnected): fix to
12827         not send ServiceDeleted multiple times in case of memory
12828         allocation failure
12829
12830         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12831         get the base service name
12832         (dbus_bus_register_client): don't return base service name,
12833         instead store it on the DBusConnection and have an accessor
12834         function for it.
12835         (dbus_bus_register_client): rename dbus_bus_register()
12836
12837         * bus/dispatch.c (check_hello_message): verify that other
12838         connections on the bus also got the correct results, not
12839         just the one sending hello
12840
12841 2003-03-15  Havoc Pennington  <hp@pobox.com>
12842
12843         Make it pass the Hello handling test including all OOM codepaths.
12844         Now to do other messages...
12845
12846         * bus/services.c (bus_service_remove_owner): fix crash when
12847         removing owner from an empty list of owners
12848         (bus_registry_ensure): don't leave service in the list of
12849         a connection's owned services if we fail to put the service
12850         in the hash table.
12851
12852         * bus/connection.c (bus_connection_preallocate_oom_error): set
12853         error flag on the OOM error.
12854
12855         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12856         handle _dbus_transport_set_connection failure
12857
12858         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12859         to create watches up front and simply enable/disable them as
12860         needed.
12861         (unix_connection_set): this can now fail on OOM
12862
12863         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12864         of enabling/disabling a watch or timeout.
12865
12866         * bus/loop.c (bus_loop_iterate): don't touch disabled
12867         watches/timeouts
12868
12869         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12870
12871 2003-03-15  Havoc Pennington  <hp@pobox.com>
12872
12873         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12874         write useful test code, after all that futzing around ;-)
12875
12876         Test does not yet pass because we can't handle OOM in
12877         _dbus_transport_messages_pending (basically,
12878         dbus_connection_preallocate_send() does not prealloc the write
12879         watch). To fix this, I think we need to add new stuff to
12880         set_watch_functions, namely a SetEnabled function so we can alloc
12881         the watch earlier, then enable it later.
12882
12883         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12884         dbus-memory.c to the convenience lib
12885
12886         * bus/test.c: rename some static functions to keep them clearly
12887         distinct from stuff in connection.c. Handle client disconnection.
12888
12889 2003-03-14  Havoc Pennington  <hp@pobox.com>
12890
12891         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12892         transport, tests more of the real codepath. Set up clients
12893         with bus_setup_debug_client.
12894
12895         * bus/test.c (bus_setup_debug_client): function to set up debug
12896         "clients" on the main loop
12897
12898         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12899         support
12900
12901         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12902         server type
12903
12904         * dbus/dbus-server-debug.c: support a debug server based on pipes
12905
12906         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12907         (_dbus_close): new function
12908
12909         * configure.in: check for socketpair
12910
12911 2003-03-14  Havoc Pennington  <hp@redhat.com>
12912
12913         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12914         cheesy hack
12915
12916         * dbus/dbus-transport-debug.c: rework this a good bit to be
12917         less complicated. hopefully still works.
12918
12919         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12920         manually
12921
12922         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12923         after running it
12924
12925         * dbus/dbus-message.c (dbus_message_copy): rename from
12926         dbus_message_new_from_message, fix it up to copy
12927         all the message fields, add test case
12928
12929         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12930         not quite passing yet
12931
12932 2003-03-14  Havoc Pennington  <hp@pobox.com>
12933
12934         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12935         until no work remains" in test code. (the large diff here
12936         is just code movement, no actual changes)
12937
12938         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12939         1, no point waiting around for test code.
12940         (_dbus_server_debug_accept_transport): unref the timeout
12941         after adding it (right?)
12942
12943         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12944
12945 2003-03-13  Havoc Pennington  <hp@redhat.com>
12946
12947         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12948         out of memory
12949
12950         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12951         of memory
12952
12953         * dbus/dbus-connection.h: Make AddWatchFunction and
12954         AddTimeoutFunction return a bool so they can fail on out-of-memory
12955
12956         * bus/bus.c (bus_context_new): set up timeout handlers
12957
12958         * bus/connection.c (bus_connections_setup_connection): set up
12959         timeout handlers
12960
12961         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12962         can fail
12963
12964         * bus/bus.c (bus_context_new): adapt to changes
12965
12966         * bus/connection.c: adapt to changes
12967
12968         * test/watch.c: adapt to DBusWatch changes
12969
12970         * bus/dispatch.c (bus_dispatch_test): started adding this but
12971         didn't finish
12972
12973 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12974
12975         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12976
12977 2003-03-13  Havoc Pennington  <hp@pobox.com>
12978
12979         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12980         set up a test framework as for the library
12981
12982 2003-03-12  Havoc Pennington  <hp@pobox.com>
12983
12984         Throughout: purge global variables, introduce BusActivation,
12985         BusConnections, BusRegistry, etc. objects instead.
12986
12987         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12988         message bus object
12989
12990         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12991         going to redo this a bit differently I think
12992
12993 2003-03-12  Havoc Pennington  <hp@redhat.com>
12994
12995         Mega-patch that gets the message bus daemon initially handling
12996         out-of-memory. Work still needed. Also lots of random
12997         moving stuff to DBusError instead of ResultCode.
12998
12999         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
13000
13001         * dbus/dbus-connection.c
13002         (dbus_connection_send_with_reply_and_block): use DBusError
13003
13004         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
13005         DBusResultCode
13006
13007         * dbus/dbus-connection.c (dbus_connection_send): drop the result
13008         code here, as the only failure possible is OOM.
13009
13010         * bus/connection.c (bus_connection_disconnect):
13011         rename bus_connection_disconnected as it's a notification only
13012
13013         * bus/driver.c (bus_driver_handle_acquire_service): don't free
13014         "name" on get_args failure, should be done by get_args;
13015         don't disconnect client for bad args, just return an error.
13016         (bus_driver_handle_service_exists): ditto
13017
13018         * bus/services.c (bus_services_list): NULL-terminate returned array
13019
13020         * bus/driver.c (bus_driver_send_service_lost)
13021         (bus_driver_send_service_acquired): send messages from driver to a
13022         specific client to the client's unique name, not to the broadcast
13023         service.
13024
13025         * dbus/dbus-message.c (decode_header_data): reject messages that
13026         contain no name field
13027         (_dbus_message_get_client_serial): rename to
13028         dbus_message_get_serial and make public
13029         (_dbus_message_set_serial): rename from set_client_serial
13030         (_dbus_message_set_reply_serial): make public
13031         (_dbus_message_get_reply_serial): make public
13032
13033         * bus/connection.c (bus_connection_foreach): allow stopping
13034         iteration by returning FALSE from foreach function.
13035
13036         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
13037         (dbus_connection_free_preallocated_send)
13038         (dbus_connection_preallocate_send): new API for sending a message
13039         without possibility of malloc failure.
13040         (dbus_connection_send_message): rename to just
13041         dbus_connection_send (and same for whole function family)
13042
13043         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
13044
13045         * dbus/dbus-sysdeps.c (_dbus_exit): new function
13046
13047         * bus/activation.c: handle/return errors
13048
13049         * dbus/dbus-errors.h: add more DBUS_ERROR #define
13050
13051         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
13052         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
13053         (_dbus_result_from_errno): move to this file
13054
13055 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
13056
13057         * dbus/dbus-marshal.c:
13058         (_dbus_marshal_set_string):
13059         Take a length argument so we can marshal the correct string
13060         length.
13061
13062         (_dbus_marshal_dict), (_dbus_demarshal_dict),
13063         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
13064         (_dbus_marshal_test):
13065         * dbus/dbus-marshal.h:
13066         Add support for marshalling and demarshalling dicts.
13067
13068         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13069         Add support for TYPE DICT.
13070
13071         * dbus/dbus-message.c: (set_string_field):
13072         Adjust header padding.
13073
13074         (dbus_message_append_args_valist), (dbus_message_append_dict),
13075         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
13076         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
13077         (check_message_handling), (check_have_valid_message):
13078         * dbus/dbus-message.h:
13079         Add functions for setting and getting dicts.
13080
13081         * dbus/dbus-protocol.h:
13082         Add DBUS_TYPE_DICT.
13083
13084         * dbus/dbus.h:
13085         Add dbus-dict.h
13086
13087         * doc/dbus-specification.sgml:
13088         Add information about how dicts are marshalled.
13089
13090         * test/data/invalid-messages/dict-with-nil-value.message:
13091         * test/data/invalid-messages/too-short-dict.message:
13092         * test/data/valid-messages/dict-simple.message:
13093         * test/data/valid-messages/dict.message:
13094         Add sample messages containing dicts.
13095
13096 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
13097
13098         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
13099
13100 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13101
13102         * dbus/Makefile.am:
13103         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13104         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
13105         (dbus_dict_set_int32), (dbus_dict_set_uint32),
13106         (dbus_dict_set_double), (dbus_dict_set_string),
13107         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
13108         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
13109         (dbus_dict_set_string_array), (_dbus_dict_test):
13110         * dbus/dbus-dict.h:
13111         Fix according to comments from Havoc.
13112
13113 2003-03-06  Michael Meeks  <michael@server.home>
13114
13115         * configure.in: if we don't have kde-config, disable have_qt.
13116
13117 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13118
13119         * dbus/Makefile.am:
13120         Add dbus-dict.[ch]
13121
13122         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13123         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
13124         (dbus_dict_remove), (dbus_dict_get_value_type),
13125         (dbus_dict_get_keys), (dbus_dict_put_boolean),
13126         (dbus_dict_put_int32), (dbus_dict_put_uint32),
13127         (dbus_dict_put_double), (dbus_dict_put_string),
13128         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
13129         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
13130         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
13131         (dbus_dict_get_int32), (dbus_dict_get_uint32),
13132         (dbus_dict_get_double), (dbus_dict_get_string),
13133         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
13134         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
13135         (dbus_dict_get_string_array), (_dbus_dict_test):
13136         * dbus/dbus-dict.h:
13137         Add DBusDict implementation
13138
13139         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
13140         * dbus/dbus-test.h:
13141         Add _dbus_dict_test
13142
13143 2003-03-04  Havoc Pennington  <hp@pobox.com>
13144
13145         * test/data/auth/*: adapt to changes
13146
13147         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
13148         USERID_BASE64 and change USERNAME_BASE64 to put in username not
13149         userid
13150
13151         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
13152         more stuff from being in a context name, to make the protocol
13153         simpler to deal with
13154
13155         * dbus/dbus-errors.c (dbus_error_has_name): new function
13156         (dbus_error_is_set): new function
13157
13158         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
13159         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
13160
13161         * dbus/dbus-connection.c (dbus_connection_flush): also read
13162         messages during a flush operation
13163
13164         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
13165
13166 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13167
13168         * configure.in: Check for gethostbyname on Solaris.
13169
13170         * dbus/dbus-transport.c: (_dbus_transport_open):
13171         Remove duplicate "tcp" entry.
13172
13173         * doc/dbus-specification.sgml:
13174         Clarify some things.
13175
13176 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13177
13178         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
13179         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
13180         (_dbus_keyring_test):
13181         * dbus/dbus-md5.c: (_dbus_md5_compute):
13182         * dbus/dbus-sha.c: (_dbus_sha_compute):
13183         Plug memory leaks.
13184
13185 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13186
13187         * README: Add some things.
13188
13189 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
13190
13191         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
13192         after case DBUS_TYPE_BOOELAN.
13193
13194 2003-03-02  Havoc Pennington  <hp@pobox.com>
13195
13196         * test/break-loader.c (randomly_set_extreme_ints): add test that
13197         sets really huge and small integers
13198
13199         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
13200         that length of boolean array fits in the string, and that
13201         string has room for boolean value in single-bool case.
13202
13203         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
13204         optional value to "ALIGN" command which is what to fill the
13205         alignment with.
13206
13207         * test/data/valid-messages/no-padding.message: add regression
13208         test for the message padding problem
13209
13210 2003-03-02  Havoc Pennington  <hp@pobox.com>
13211
13212         * dbus/dbus-message.c (decode_header_data): fix to always init
13213         message_padding, from Benjamin Dauvergne
13214
13215 2003-03-02  Havoc Pennington  <hp@pobox.com>
13216
13217         * configure.in: 0.5
13218
13219         * NEWS: Update.
13220
13221 2003-03-01  Joe Shaw  <joe@assbarn.com>
13222
13223         * configure.in: Check for "struct cmsgcred" and try to access its
13224         members for BSD-like unices.
13225
13226         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
13227         _dbus_read_credentials_unix_socket().
13228         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
13229         read() for reading the credential byte off the unix socket.  Use
13230         struct cmsgcred on systems that support it.
13231
13232 2003-02-27  Alexander Larsson  <alexl@redhat.com>
13233
13234         * glib/Makefile.am:
13235         * configure.in:
13236         Make gthreads-2.0 dependency optional. Don't build thread test if
13237         its not found.
13238
13239 2003-02-27  Havoc Pennington  <hp@pobox.com>
13240
13241         * dbus/dbus-connection.c
13242         (dbus_connection_send_message_with_reply_and_block): fix doh!
13243         doh! doh! bug that resulted in never removing a reply from the
13244         queue, no wonder we called get_reply_serial so much ;-)
13245
13246         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
13247         and client serial instead of demarshaling them every time
13248
13249 2003-02-27  Havoc Pennington  <hp@pobox.com>
13250
13251         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
13252         more inlined, using dbus-string-private.h, speeds things up
13253         substantially
13254
13255         * dbus/dbus-string.c (_dbus_string_free): apply align offset
13256         when freeing the string
13257         (_dbus_string_steal_data): fix for align offset
13258         (undo_alignment): new function
13259
13260 2003-02-26  Havoc Pennington  <hp@redhat.com>
13261
13262         All kinds of audit fixes from Owen, plus initial attempt to
13263         handle unaligned memory returned from malloc.
13264
13265         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
13266         leave room for align_offset and nul byte
13267         (fixup_alignment): function to track an align_offset and
13268         ensure real->str is aligned
13269         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
13270         to allow a nul byte plus align offset
13271         (_dbus_string_lock): fix overflow issue
13272         (_dbus_string_init_const_len): add assertions on sanity of len,
13273         assign allocated to be ALLOCATION_PADDING larger than len
13274         (set_length): fixup the overflow handling
13275         (_dbus_string_get_data_len): fix overflow in assertion
13276         (open_gap): detect overflow in size of gap to be opened
13277         (_dbus_string_lengthen): add overflow check
13278         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
13279         (_dbus_string_append): add overflow check
13280         (_dbus_string_append_unichar): overflow
13281         (_dbus_string_delete): fix overflow in assertion
13282         (_dbus_string_copy_len): overflow in assertion
13283         (_dbus_string_replace_len): overflows in assertions
13284         (_dbus_string_find): change to implement in terms of
13285         _dbus_string_find_to
13286         (_dbus_string_find_to): assorted fixage
13287         (_dbus_string_equal_c_str): assert c_str != NULL,
13288         fix logic so the function works
13289         (_dbus_string_ends_with_c_str): fix overflow thingy
13290         (_dbus_string_base64_encode): overflow fix
13291         (_dbus_string_validate_ascii): overflow
13292         (_dbus_string_validate_nul): overflow
13293
13294 2003-02-26  Havoc Pennington  <hp@redhat.com>
13295
13296         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
13297
13298 2003-02-26  Alexander Larsson  <alexl@redhat.com>
13299
13300         * configure.in:
13301         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
13302
13303         * dbus/dbus-connection.c:
13304         * dbus/dbus-connection.h:
13305         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13306         Add dbus_connection_set_wakeup_main_function and use it when queueing
13307         incoming and outgoing messages.
13308
13309
13310         * dbus/dbus-dataslot.c:
13311         Threadsafe usage of DBusDataSlotAllocator
13312
13313         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13314         dbus_new can fail.
13315
13316         * dbus/dbus-server-unix.c:
13317         Add todo comment
13318
13319         * glib/dbus-gmain.c:
13320         Implement the new wakeup functions for glib.
13321
13322         * glib/Makefile.am:
13323         * glib/test-thread-client.c:
13324         * glib/test-thread-server.c:
13325         * glib/test-thread.h:
13326         Initial cut at some thread test code. Not really done yet.
13327
13328 2003-02-26  Havoc Pennington  <hp@pobox.com>
13329
13330         * dbus/dbus-connection.c
13331         (dbus_connection_send_message_with_reply_and_block): fix crash
13332         where we ref'd the outgoing message instead of the returned reply
13333
13334         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13335         at the end of this function, so if we didn't need to read for
13336         authentication, we reinstall it for receiving messages
13337
13338         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13339         a NULL sender for peer-to-peer case
13340
13341         * dbus/dbus-transport-unix.c (check_read_watch): handle
13342         !authenticated case correctly
13343
13344         * glib/dbus-gmain.c: add support for DBusServer
13345
13346         * dbus/dbus-server.c: add data slot support
13347
13348         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13349         return values and handle errors
13350
13351         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13352         DBusConnection
13353
13354         * Doxyfile.in (INPUT): add glib subdir
13355
13356         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13357         setup_with_g_main instead of hookup_with_g_main; write docs
13358
13359 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13360
13361         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13362         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13363         * dbus/dbus-message.c: (dbus_message_append_boolean),
13364         (dbus_message_append_boolean_array),
13365         (dbus_message_get_args_valist), (_dbus_message_test):
13366         * dbus/dbus-message.h:
13367         * doc/dbus-specification.sgml:
13368         Various fixes as pointed out by Havoc.
13369
13370         * test/data/invalid-messages/bad-boolean-array.message:
13371         * test/data/invalid-messages/bad-boolean.message:
13372         Add invalid boolean value test cases.
13373
13374 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13375
13376         * dbus/dbus-internals.c: (_dbus_type_to_string):
13377         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13378         (_dbus_marshal_validate_arg):
13379         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13380         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13381         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13382         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13383         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13384         (dbus_message_iter_get_double),
13385         (dbus_message_iter_get_boolean_array), (message_iter_test):
13386         * dbus/dbus-message.h:
13387         * dbus/dbus-protocol.h:
13388         * doc/dbus-specification.sgml:
13389         * test/data/valid-messages/lots-of-arguments.message:
13390         Add support for boolean and boolean array types.
13391
13392 2003-02-23  Havoc Pennington  <hp@pobox.com>
13393
13394         * dbus/dbus-keyring.c: finish most of this implementation and
13395         simple unit test
13396
13397         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13398         these barf if the error isn't cleared to NULL
13399
13400         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13401         (_dbus_create_directory): new function
13402
13403         * dbus/dbus-errors.c (dbus_set_error): fix warning
13404
13405         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13406         (_dbus_string_hex_decode): new function
13407         (test_hex_roundtrip): test code
13408
13409         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13410
13411         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13412
13413         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13414         the save-to-temp/rename trick to atomically write the new file
13415         (_dbus_string_parse_uint): new function
13416
13417 2003-02-22  Havoc Pennington  <hp@pobox.com>
13418
13419         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13420
13421 2003-02-22  Havoc Pennington  <hp@pobox.com>
13422
13423         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13424         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13425
13426         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13427
13428         * dbus/test/data/sha-1: add US government test suite for SHA-1
13429
13430 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13431
13432         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13433         Make string arrays NULL-terminated.
13434
13435         * dbus/dbus-memory.c: (dbus_free_string_array):
13436         * dbus/dbus-memory.h:
13437         New function for freeing NULL-terminated string arrays.
13438
13439         * dbus/dbus-message-builder.c: (append_quoted_string),
13440         (_dbus_message_data_load):
13441         Add support for array types.
13442
13443         * dbus/dbus-message.c: (check_message_handling):
13444         Add more types as test cases.
13445
13446         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13447         (_dbus_string_parse_double):
13448         Add the start offset to the end offset.
13449
13450         * test/data/valid-messages/lots-of-arguments.message:
13451         New test message with lots of arguments.
13452
13453 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13454
13455         * dbus/dbus-message.c: (dbus_message_append_nil),
13456         (dbus_message_append_int32), (dbus_message_append_uint32),
13457         (dbus_message_append_double), (dbus_message_append_string),
13458         (dbus_message_append_int32_array),
13459         (dbus_message_append_uint32_array),
13460         (dbus_message_append_double_array),
13461         (dbus_message_append_byte_array),
13462         (dbus_message_append_string_array):
13463         Fix all out-of-memory handling in these functions.
13464
13465 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13466
13467         * dbus/dbus-message.c: (dbus_message_append_nil):
13468         Fix a silly.
13469
13470 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13471
13472         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13473         (dbus_message_append_nil), (dbus_message_append_int32_array),
13474         (dbus_message_append_uint32_array),
13475         (dbus_message_append_double_array),
13476         (dbus_message_append_byte_array),
13477         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13478         (dbus_message_iter_get_int32_array),
13479         (dbus_message_iter_get_uint32_array),
13480         (dbus_message_iter_get_double_array),
13481         (dbus_message_iter_get_byte_array),
13482         (dbus_message_iter_get_string_array):
13483
13484         * dbus/dbus-message.h:
13485         Add functions for appending and getting arrays.
13486
13487 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13488
13489         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13490         element size at least 8 bytes, fixes mempool tests on
13491         64-bit machines.
13492
13493 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13494
13495         * dbus/dbus-transport-unix.c (unix_do_iteration):
13496         Unlock the connection mutex during a blocking select call.
13497         Add todo about how we need a way to wake up the select.
13498
13499         * dbus/dbus-connection-internal.h:
13500         * dbus/dbus-connection.c:
13501         Add _dbus_connection_lock and _dbus_connection_unlock.
13502
13503 2003-02-19  Havoc Pennington  <hp@pobox.com>
13504
13505         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13506         Doxyfile.in, not Doxyfile
13507
13508         * dbus/dbus-keyring.c: do some hacking on this
13509
13510         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13511
13512         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13513         dbus_error_init
13514         (dbus_set_error): remove dbus_error_init, check for message ==
13515         NULL *before* we sprintf into it, and add @todo about including
13516         system headers in this file
13517
13518         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13519
13520         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13521
13522         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13523         get various bits of user information based on either username
13524         or user ID
13525         (_dbus_homedir_from_username): new function
13526
13527 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13528
13529         * configure.in:
13530         Add check for nonposix getpwnam_r
13531
13532         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13533         Align the pool element size to a sizeof (void *) boundary.
13534
13535         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13536         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13537         General Solaris fixes.
13538
13539         * test/data/valid-messages/simplest-manual.message:
13540         Explicitly state that we want little-endian packing.
13541
13542 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13543
13544         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13545
13546         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13547         Added to create a transport connecting using a tcp/ip socket.
13548
13549         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13550         to a tcp socket at given host and port.
13551         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13552         hostname and port.
13553
13554         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13555
13556         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13557         Added to create a server listening on a TCP/IP socket.
13558
13559 2003-02-19  Havoc Pennington  <hp@pobox.com>
13560
13561         Throughout: mop up all the Doxygen warnings and undocumented
13562         stuff.
13563
13564         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13565         to search any paths.
13566
13567         * dbus/dbus-threads.c: move global mutex initializers to
13568         dbus-internals.h, multiple prototypes was confusing doxygen
13569         besides being kind of ugly
13570
13571         * Doxyfile (PREDEFINED): have Doxygen define
13572         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13573         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13574         (do not abuse the feature! it's for stuff like the autogenerated
13575         macros in dbus-md5.c, not just for things you don't feel like
13576         documenting...)
13577
13578 2003-02-18  Havoc Pennington  <hp@pobox.com>
13579
13580         * dbus/dbus-string.c (_dbus_string_zero): new function
13581
13582         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13583         wrap it in some dbus-friendly API
13584
13585         * dbus/dbus-types.h: add 16-bit types
13586
13587 2003-02-18  Joe Shaw  <joe@assbarn.com>
13588
13589         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13590         credentials from our currently running process.
13591         (get_word): Fix a buglet where we were copying the entire length
13592         instead of relative to our position.
13593
13594         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13595         keys on the stack... it's 640k of data.
13596
13597         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13598         read the credentials byte off the socket, even if we don't have
13599         SO_PEERCRED.
13600         (_dbus_poll): Implement poll() using select() for systems which
13601         don't have it.
13602
13603         * glib/test-dbus-glib.c (main): Print out an error if no
13604         parameters are given.
13605
13606         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13607         can fallback to a secondary auth mechanism if the first fails.
13608
13609 2003-02-18  Havoc Pennington  <hp@pobox.com>
13610
13611         * AUTHORS: add Alex
13612
13613 2003-02-17  Havoc Pennington  <hp@pobox.com>
13614
13615         * doc/dbus-specification.sgml: lots of cosmetic
13616         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13617         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13618         s/server/bus/ (except in authentication section). Add a section
13619         "Message Bus Message Routing"
13620
13621 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13622
13623         Release 0.4
13624
13625         * NEWS: Update
13626
13627 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13628
13629         * doc/dbus-specification.sgml:
13630         Specification updates.
13631
13632 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13633
13634         * bus/activation.c: (bus_activation_init), (child_setup),
13635         (bus_activation_activate_service):
13636         * bus/activation.h:
13637         * bus/main.c: (main):
13638         Set DBUS_ADDRESS environment variable.
13639
13640         * dbus/dbus-errors.c: (dbus_set_error):
13641         Don't use va_copy since that's a C99 feature.
13642
13643         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13644         (_dbus_spawn_async):
13645         * dbus/dbus-sysdeps.h:
13646         Add child_setup_func to _dbus_spawn_async.
13647
13648         * doc/dbus-specification.sgml:
13649         Update specification.
13650
13651         * test/spawn-test.c: (setup_func), (main):
13652         Fix test.
13653
13654 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13655
13656         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13657         Added todo.
13658
13659 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13660
13661         * doc/.cvsignore:
13662         * doc/Makefile.am:
13663         * doc/dbus-test-plan.sgml:
13664         Add test plan document.
13665
13666         * test/Makefile.am:
13667         Fix distcheck.
13668
13669 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13670
13671         * dbus/dbus-message.c: (decode_header_data),
13672         (_dbus_message_loader_return_buffer):
13673         Set the header padding amount when loading a message.
13674
13675 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13676
13677         * bus/dispatch.c: (send_one_message):
13678         Only send broadcast messages to registered connections.
13679
13680         * dbus/dbus-message.c: (dbus_message_name_is):
13681         * dbus/dbus-message.h:
13682         New convenience function.
13683
13684         * dbus/dbus-transport-debug.c: (do_reading):
13685         Only dispatch one message per run.
13686
13687         * test/Makefile.am:
13688         * test/bus-test.c: (new_connection_callback), (die),
13689         (test_hello_client1_handler), (test_hello_client2_handler),
13690         (test_hello_replies), (main):
13691
13692         * test/bus-test-loop.[ch]:
13693         Add these.
13694
13695 2003-02-16  Havoc Pennington  <hp@pobox.com>
13696
13697         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13698         backward conditional
13699
13700 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13701
13702         * dbus/dbus-connection.c:
13703         Implement sent_message_with_reply. (with_reply_and block is still
13704         busted).
13705         Made dispatch_message not lose message if OOM.
13706
13707         * dbus/dbus-errors.h:
13708         Add NoReply error (for reply timeouts).
13709
13710 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13711
13712         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13713         Actually free keys and values when destroying hashtable.
13714
13715 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13716
13717         * dbus/dbus-auth.c: (client_try_next_mechanism):
13718         Plug a leak.
13719
13720         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13721         Return TRUE if there's no thread implementation around.
13722
13723         * glib/dbus-gmain.c: (free_source),
13724         (dbus_connection_hookup_with_g_main):
13725         Make sure to remove the GSource when the connection is finalized.
13726
13727 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13728
13729         * bus/dispatch.c: (bus_dispatch_message_handler):
13730         * dbus/dbus-errors.h:
13731         Return an error if someone tries to send a message to a service
13732         that doesn't exist.
13733
13734 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13735
13736         * bus/activation.c: (load_directory), (bus_activation_init),
13737         (bus_activation_activate_service):
13738         * bus/activation.h:
13739         * bus/driver.c:
13740         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13741         More work on the activation handling.
13742
13743         * dbus/dbus-errors.h:
13744         Add some error messages
13745
13746         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13747         * dbus/dbus-message.h:
13748         New function that creates an error message.
13749
13750         * dbus/dbus-protocol.h:
13751         Add ACTIVATE_SERVER message.
13752
13753         * dbus/dbus-server-unix.c: (unix_handle_watch),
13754         (_dbus_server_new_for_domain_socket):
13755         Call _dbus_fd_set_close_on_exec.
13756
13757         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13758         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13759         (_dbus_fd_set_close_on_exec):
13760         * dbus/dbus-sysdeps.h:
13761         Add _dbus_fd_set_close_on exec function. Also add function that checks
13762         that all open fds are set to close-on-exec and warns otherwise.
13763
13764         * dbus/dbus-transport-unix.c:
13765         (_dbus_transport_new_for_domain_socket):
13766         Call _dbus_fd_set_close_on_exec.
13767
13768 2003-02-16  Havoc Pennington  <hp@pobox.com>
13769
13770         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13771         allow people to avoid setting SIGPIPE to SIG_IGN
13772         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13773         we've been asked not to
13774
13775 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13776
13777         * dbus/dbus-list.c: (_dbus_list_append_link),
13778         (_dbus_list_prepend_link):
13779         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13780         (dbus_realloc):
13781         Warning fixes.
13782
13783 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13784
13785         * bus/Makefile.am:
13786         * bus/activation.c: (bus_activation_entry_free),
13787         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13788         * bus/activation.h:
13789         * bus/main.c: (main):
13790         Add simple activation support, doesn't work yet though.
13791
13792 2003-02-15   Zack Rusin  <zack@kde.org>
13793
13794         * qt/dbus-qthread.cpp:  small casting fix
13795
13796 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13797
13798         * dbus/dbus-errors.c: (dbus_set_error):
13799         * dbus/dbus-errors.h:
13800         Add a few errors and make dbus_set_error void.
13801
13802         * dbus/dbus-sysdeps.c:
13803         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13804         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13805         * dbus/dbus-sysdeps.h:
13806         Add _dbus_spawn_async.
13807
13808         * test/spawn-test.c: (main):
13809         Test for _dbus_spawn_async.
13810
13811 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13812
13813         * dbus/dbus-internals.h:
13814         Fix build without tests.
13815
13816         * dbus/dbus-list.c: (alloc_link):
13817         Fix a segfault when a malloc fails.
13818
13819         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13820         (dbus_malloc0), (dbus_realloc):
13821         Add support for malloc debugging.
13822
13823 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13824
13825         * dbus/dbus-threads.c:
13826         * dbus/dbus-threads.h:
13827         Add condvars. Remove static mutext from API.
13828         Implement static mutexes by initializing them from threads_init.
13829
13830         * glib/dbus-gthread.c:
13831         * qt/dbus-qthread.cpp:
13832         Update with the thread api changes.
13833
13834
13835         * dbus/dbus-list.c:
13836         * dbus/dbus-list.h:
13837         Turn StaticMutex into normal mutex + init function.
13838         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13839         _dbus_list_append_link, _dbus_list_prepend_link
13840
13841
13842         * dbus/dbus-sysdeps.c:
13843         * dbus/dbus-sysdeps.h:
13844         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13845         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13846
13847         * dbus/dbus-protocol.h:
13848         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13849
13850         * dbus/dbus-message.c:
13851         Make ref/unref atomic.
13852         Fix some docs.
13853
13854         * dbus/dbus-connection-internal.h:
13855         * dbus/dbus-connection.c:
13856         * dbus/dbus-connection.h:
13857         Make threadsafe.
13858         Change _peek to _borrow,_return & _steal_borrowed.
13859         Change disconnect callback to event.
13860         Make dbus_connection_dispatch_messages reentrant.
13861
13862         * dbus/dbus-transport.c:
13863         Don't ref the connection on calls to the transport
13864         implementation.
13865
13866         * dbus/dbus-message-handler.c:
13867         Make threadsafe.
13868
13869         * glib/dbus-gmain.c:
13870         Don't use peek_message anymore
13871
13872         * test/Makefile.am:
13873         * test/debug-thread.c:
13874         * test/debug-thread.h:
13875         Simple thread implementation that asserts() on deadlocks in
13876         single-threaded code.
13877
13878         * test/bus-test.c:
13879         (main) Call debug_threads_init.
13880
13881         * test/watch.c:
13882         Use disconnect message instead of disconnect callback.
13883
13884         * bus/connection.c:
13885         * bus/connection.h:
13886         Don't call dbus_connection_set_disconnect_function. Instead export
13887         bus_connection_disconnect.
13888
13889         * bus/dispatch.c:
13890         Call bus_connection_disconnect when we get a disconnected message.
13891
13892 2003-02-15  Havoc Pennington  <hp@pobox.com>
13893
13894         * dbus/dbus-message.c (dbus_message_new): fool around with the
13895         docs
13896
13897 2003-02-14  Havoc Pennington  <hp@pobox.com>
13898
13899         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13900
13901         * dbus/dbus-memory.c: fail if the debug functions indicate we
13902         should
13903
13904         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13905         (_dbus_decrement_fail_alloc_counter): debug functions to
13906         simulate memory allocation failures
13907
13908 2003-02-14  Havoc Pennington  <hp@pobox.com>
13909
13910         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13911         to DBusError
13912
13913 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13914
13915         * bus/driver.c: (bus_driver_handle_hello):
13916         * bus/driver.h:
13917         * bus/services.c: (bus_service_lookup):
13918         Reorder message sending so we get a more sane order.
13919
13920         * test/bus-test.c: (message_handler):
13921         Fix tyop.
13922
13923 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13924
13925         * bus/driver.c: (bus_driver_send_service_deleted),
13926         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13927         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13928         (bus_driver_send_welcome_message),
13929         (bus_driver_handle_list_services),
13930         (bus_driver_handle_acquire_service),
13931         (bus_driver_handle_service_exists):
13932         * dbus/dbus-bus.c: (dbus_bus_register_client),
13933         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13934         * dbus/dbus-errors.c: (dbus_result_to_string):
13935         * dbus/dbus-errors.h:
13936         * dbus/dbus-message.c: (dbus_message_append_args),
13937         (dbus_message_append_args_valist), (dbus_message_get_args),
13938         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13939         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13940         (dbus_message_iter_get_byte_array),
13941         (dbus_message_iter_get_string_array), (message_iter_test),
13942         (check_message_handling), (_dbus_message_test):
13943         * dbus/dbus-message.h:
13944         * test/bus-test.c: (main):
13945         Change fields to arguments in messages, so that they won't be
13946         confused with header fields.
13947
13948         * glib/test-dbus-glib.c: (main):
13949         Remove append_fields from hello message.
13950
13951 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13952
13953         * dbus/dbus-errors.c:
13954         * dbus/dbus-message.c:
13955         * dbus/dbus-string.c:
13956         Documentation fixes.
13957
13958 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13959
13960         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13961         (remove_timeout):
13962         Implement support for timeouts in dbus-glib.
13963
13964 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13965
13966         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13967         * dbus/dbus-message.c: (process_test_subdir):
13968         * test/break-loader.c: (find_breaks_based_on):
13969         Plug some memory leaks.
13970
13971 2003-02-13  Richard Hult  <rhult@codefactory.se>
13972
13973         * bus/main.c: Fix build.
13974
13975         * dbus/dbus-errors.h:
13976         * dbus/dbus-errors.c: Fix copyright for Anders.
13977
13978 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13979
13980         * bus/Makefile.am:
13981         Add utils.[ch]
13982
13983         * bus/connection.c: (bus_connection_foreach):
13984         Fix a warning.
13985
13986         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13987         (unescape_string), (new_section), (parse_section_start),
13988         (parse_key_value), (report_error), (bus_desktop_file_load),
13989         (bus_desktop_file_get_string):
13990         * bus/desktop-file.h:
13991         Use DBusError for error reporting.
13992
13993         * bus/dispatch.c: (send_one_message),
13994         (bus_dispatch_message_handler):
13995         * bus/driver.c: (bus_driver_send_service_deleted),
13996         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13997         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13998         (bus_driver_send_welcome_message),
13999         (bus_driver_handle_list_services),
14000         (bus_driver_handle_acquire_service),
14001         (bus_driver_handle_service_exists):
14002         * bus/loop.c: (bus_loop_run):
14003         * bus/main.c:
14004         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
14005
14006         * bus/utils.c: (bus_wait_for_memory):
14007         * bus/utils.h:
14008         New files with general utility functions.
14009
14010         * dbus/dbus-internals.h:
14011         Remove _DBUS_HANDLE_OOM.
14012
14013 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14014
14015         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
14016         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
14017         * dbus/dbus-errors.h:
14018         Add DBusError structure.
14019
14020 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14021
14022         * test/data/valid-messages/standard-acquire-service.message:
14023         * test/data/valid-messages/standard-hello.message:
14024         * test/data/valid-messages/standard-list-services.message:
14025         * test/data/valid-messages/standard-service-exists.message:
14026         Add some standard messages.
14027
14028 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14029
14030         * bus/driver.c: (bus_driver_send_welcome_message),
14031         (bus_driver_handle_list_services),
14032         (bus_driver_handle_acquire_service),
14033         (bus_driver_handle_service_exists), (bus_driver_handle_message):
14034         Update for API changes in libdbus.
14035
14036         * dbus/dbus-message.c: (dbus_message_new_reply):
14037         * dbus/dbus-message.h:
14038         Remove the name argument. The spec states that replies shouldn't
14039         have a name.
14040
14041 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
14042
14043         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
14044         (report_error), (bus_desktop_file_load), (lookup_section),
14045         (lookup_line), (bus_desktop_file_get_raw),
14046         (bus_desktop_file_get_string):
14047         * bus/desktop-file.h:
14048         Some fixes, and new functions for getting a key value from a section.
14049
14050 2003-02-13  Havoc Pennington  <hp@pobox.com>
14051
14052         * test/data/auth/fail-after-n-attempts.auth-script: new test
14053
14054         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
14055         reject the client.
14056
14057 2003-02-13  Havoc Pennington  <hp@pobox.com>
14058
14059         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
14060         dbus_credentials_match were backward
14061
14062         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
14063         NO_CREDENTIALS and ROOT_CREDENTIALS
14064
14065         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
14066         into here. Never process more commands after we've reached an
14067         end state; store further data as unused bytes.
14068
14069         * test/data/auth/*: add more auth tests
14070
14071         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
14072         command to match exact string and EXPECT_UNUSED to match unused
14073         bytes
14074
14075         * test/Makefile.am (dist-hook): fix to dist all the test stuff
14076
14077 2003-02-12  Havoc Pennington  <hp@pobox.com>
14078
14079         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
14080         \r off of popped lines
14081
14082         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
14083         scripts
14084
14085         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
14086         SEND, append \r\n
14087
14088 2003-02-12  Havoc Pennington  <hp@pobox.com>
14089
14090         * dbus/Makefile.am: remove break-loader from the build, since it
14091         moved.
14092
14093         * configure.in: add --enable-gcov to turn on coverage profiling
14094         flags and disable optimization
14095
14096 2003-02-10  Havoc Pennington  <hp@pobox.com>
14097
14098         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
14099         initial cut at test framework for DBusAuth from laptop.
14100         Doesn't quite work yet but it compiles and I need to get
14101         it off the 266mhz laptop. ;-)
14102
14103         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
14104         fix a memleak in error case
14105
14106 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
14107
14108         * bus/Makefile.am:
14109         * bus/desktop-file.c:
14110         * bus/desktop-file.h:
14111         Add a desktop file parser.
14112
14113 2003-02-11  Zack Rusin  <zack@kde.org>
14114
14115         * qt/message.[h|cpp]: sample implementation
14116         of the KDE wrapper for DBusMessage
14117
14118 2003-02-09  Zack Rusin  <zack@kde.org>
14119
14120         * test/bus-test.c: make_it_compile
14121         * doc/dbus-specification.sgml: minimal semantic fix
14122
14123 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14124
14125         Release 0.3
14126
14127         * NEWS: Update
14128
14129 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14130
14131         * dbus/Makefile.am:
14132         * dbus/dbus-break-loader.c:
14133         * test/Makefile.am:
14134         * test/break-loader.c:
14135         Move dbus-break-loader to test/ and rename it to break-loader.
14136
14137 2003-02-02  Havoc Pennington  <hp@pobox.com>
14138
14139         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
14140         for code to manage cookies in your home directory
14141
14142         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
14143
14144         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
14145         to authenticate, then disconnect the client.
14146
14147 2003-02-03  Alexander Larsson  <alexl@redhat.com>
14148
14149         * dbus/dbus-message.c (dbus_message_append_fields):
14150         Correct docs.
14151
14152 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14153
14154         * doc/dbus-specification.sgml:
14155         Update address format section.
14156
14157 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14158
14159         * test/Makefile.am:
14160         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
14161         (message_handler), (new_connection_callback), (loop_quit),
14162         (loop_run), (main):
14163         Add bus test.
14164
14165 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14166
14167         * bus/driver.c: (bus_driver_handle_service_exists):
14168         Simplify the code a bit.
14169
14170         * dbus/dbus-bus.c: (dbus_bus_service_exists):
14171         Fix a silly.
14172
14173 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14174
14175         * bus/Makefile.am:
14176         Add libdbus-daemon.la and link to it.
14177
14178 2003-02-01  James Willcox  <jwillcox@gnome.org>
14179
14180         * bus/driver.c: (bus_driver_handle_own_service):
14181         Actually include the service reply code in the message.
14182
14183 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14184
14185         * bus/driver.c: (bus_driver_handle_service_exists):
14186         Don't unref the incoming message.
14187
14188 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14189
14190         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
14191
14192 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14193
14194         * dbus/dbus-server.c: (dbus_server_listen):
14195         * dbus/dbus-transport.c: (_dbus_transport_open):
14196         ifdef out the calls to the debug transport and server.
14197
14198 2003-02-02  Alexander Larsson  <alexl@redhat.com>
14199
14200         * dbus/dbus-watch.c (dbus_watch_get_flags):
14201         Add note in the docs that ERROR or HANGUP won't be returned
14202         and are assumed always on.
14203
14204         * glib/dbus-gmain.c (add_watch):
14205         Always add IO_ERR | IO_HUP
14206
14207         * dbus/dbus-message.h:
14208         Add semicolon after dbus_message_iter_get_string_array().
14209         Makes qt code build again
14210
14211 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
14212
14213         * bus/driver.c: (create_unique_client_name),
14214         (bus_driver_handle_hello):
14215         Don't take a name, just use a numeric id to identify
14216         each client.
14217
14218         * dbus/Makefile.am:
14219         * dbus/dbus-bus.c: (dbus_bus_register_client),
14220         (dbus_bus_acquire_service), (dbus_bus_service_exists):
14221         * dbus/dbus-bus.h:
14222         Add new convenience functions for communicating with the bus.
14223
14224         * dbus/dbus-message.h:
14225
14226         * dbus/dbus-protocol.h:
14227         Fix a typo.
14228
14229 2003-02-01  Alexander Larsson  <alexl@redhat.com>
14230
14231         * dbus/dbus-message.c (dbus_message_append_fields):
14232         Add some more doc comments.
14233
14234 2003-02-01  Havoc Pennington  <hp@pobox.com>
14235
14236         * dbus/dbus-break-loader.c (randomly_modify_length): change
14237         a 4-byte value in the message as if it were a length
14238
14239         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
14240         execute bit on saved files
14241
14242 2003-02-01  Havoc Pennington  <hp@pobox.com>
14243
14244         * dbus/dbus-break-loader.c (main): new program to find messages
14245         that break the loader.
14246
14247         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
14248         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
14249
14250         * dbus/dbus-string.c (_dbus_string_set_byte): new
14251
14252 2003-01-31  Havoc Pennington  <hp@pobox.com>
14253
14254         * dbus/dbus-message.c: refactor the test code to be more general,
14255         in preparation for writing a "randomly permute test cases to
14256         try to break the loader" program.
14257
14258 2003-01-31  Havoc Pennington  <hp@pobox.com>
14259
14260         * doc/dbus-specification.sgml: work on the specification
14261
14262         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
14263         the protocol version of the message.
14264
14265         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
14266         no longer specifies that.
14267         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
14268         1/2/3/4)
14269
14270         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
14271         "break" for DBUS_TYPE_NIL, remove @todo
14272
14273 2003-01-31  Havoc Pennington  <hp@pobox.com>
14274
14275         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
14276         just set_is_error/get_is_error as this is a commonly-used
14277         function, and write docs.
14278
14279 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
14280
14281         * dbus/dbus-address.c: (dbus_address_entry_free):
14282         Free key and value lists.
14283
14284         * dbus/dbus-internals.c: (_dbus_type_to_string):
14285         Add the types we didn't have.
14286
14287         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
14288         (_dbus_marshal_validate_arg):
14289         Add NIL types.
14290
14291         * dbus/dbus-message.c: (dbus_message_set_sender):
14292         Remove todo about being able to set sender to NULL.
14293
14294         (dbus_message_set_is_error_reply),
14295         (dbus_message_get_is_error_reply):
14296         * dbus/dbus-message.h:
14297         New functions.
14298
14299         * dbus/dbus-protocol.h:
14300         Add error reply flag.
14301
14302         * test/data/valid-messages/opposite-endian.message:
14303         Add NIL type to test.
14304
14305 2003-01-31  Havoc Pennington  <hp@pobox.com>
14306
14307         * doc/dbus-specification.sgml: fully specify the header.  Add
14308         flags and major protocol version, and change header/body len to
14309         unsigned.
14310
14311         * dbus/dbus-message-builder.c (append_saved_length): append length
14312         as uint32
14313
14314         * dbus/dbus-message.c (dbus_message_create_header): change header
14315         length and body length to unsigned. Add the new fields from the
14316         spec
14317         (_dbus_message_loader_return_buffer): unsigned header/body len
14318
14319 2003-01-30  Havoc Pennington  <hp@pobox.com>
14320
14321         * dbus/dbus-auth.c: rework to use only REJECTED, no
14322         MECHANISMS
14323
14324         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14325         use REJECTED, suggested by Mark McLoughlin
14326
14327 2003-01-30  Havoc Pennington  <hp@pobox.com>
14328
14329         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14330         a better way to report errors here. e.g.  "unix address lacks
14331         path" or something. also "no such file" when the path doesn't
14332         exist, etc.
14333
14334         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14335         leaking list nodes
14336         (dbus_parse_address): add @todo about documenting address format,
14337         and allowing , and ; to be escaped
14338
14339 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14340
14341         * dbus/Makefile.am:
14342         Add dbus-address.[ch]
14343
14344         * dbus/dbus-address.c: (dbus_address_entry_free),
14345         (dbus_address_entries_free), (create_entry),
14346         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14347         (dbus_parse_address), (_dbus_address_test):
14348         * dbus/dbus-address.h:
14349         New files for dealing with address parsing.
14350
14351         * dbus/dbus-connection.c:
14352         Document timeout functions.
14353
14354         * dbus/dbus-message.c:
14355         Document dbus_message_new_from_message.
14356
14357         * dbus/dbus-server-debug.c:
14358         Document.
14359
14360         * dbus/dbus-server.c: (dbus_server_listen):
14361         Parse address and use correct server implementation.
14362
14363         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14364         * dbus/dbus-string.h:
14365         New function with test.
14366
14367         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14368         * dbus/dbus-test.h:
14369         Add address tests.
14370
14371         * dbus/dbus-transport-debug.c:
14372         Document.
14373
14374         * dbus/dbus-transport.c: (_dbus_transport_open):
14375         Parse address and use correct transport implementation.
14376
14377 2003-01-30  Havoc Pennington  <hp@pobox.com>
14378
14379         * dbus/dbus-message.c: use message->byte_order instead of
14380         DBUS_COMPILER_BYTE_ORDER throughout.
14381         (dbus_message_create_header): pad header to align the
14382         start of the body of the message to 8-byte boundary
14383
14384         * dbus/dbus-marshal.h: make all the demarshalers take const
14385         DBusString arguments.
14386
14387         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14388         validate message args here, so we don't have to do slow validation
14389         later, and so we catch bad messages as they are incoming. Also add
14390         better checks on header_len and body_len. Also fill in
14391         message->byte_order
14392
14393         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14394         implemented properly)
14395         (_dbus_string_validate_nul): new function to check all-nul
14396
14397         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14398         get_arg_end_pos and remove all validation
14399         (_dbus_marshal_validate_arg): actually do validation here.
14400
14401 2003-01-29  Havoc Pennington  <hp@pobox.com>
14402
14403         * dbus/dbus-message.c (check_message_handling): fix assertion
14404         failure on set_client_serial
14405
14406 2003-01-28  Havoc Pennington  <hp@pobox.com>
14407
14408         * dbus/dbus-server-debug.c: Add doc section comments
14409
14410         * dbus/dbus-transport-debug.c: add doc section comments
14411
14412 2003-01-28  Havoc Pennington  <hp@redhat.com>
14413
14414         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14415         the reverse order from how I had it
14416         (_dbus_string_base64_encode): reverse encoding order. I was
14417         basically byteswapping everything during encoding.
14418
14419 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14420
14421         * dbus/dbus-connection-internal.h:
14422         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14423         (_dbus_connection_remove_timeout):
14424         Add functions for adding and removing timeouts.
14425
14426         * dbus/dbus-message.c: (dbus_message_new_from_message):
14427         Add new function that takes a message and creates an exact
14428         copy of it, but with the refcount set to 1.
14429         (check_message_handling):
14430         Fix build error.
14431
14432         * dbus/dbus-server-protected.h:
14433         * dbus/dbus-server.c: (_dbus_server_init_base),
14434         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14435         (dbus_server_set_timeout_functions):
14436         (_dbus_server_remove_timeout):
14437         New functions so that a server can add and remove timeouts.
14438
14439         (dbus_server_listen):
14440         Add commented out call to dbus_server_debug_new.
14441
14442         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14443         Actually set the handler, doh.
14444
14445         * dbus/dbus-transport.c: (_dbus_transport_open):
14446         Add commented out call to dbus_transport_debug_client_new.
14447
14448         * dbus/Makefile.am:
14449         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14450
14451 2003-01-28  Havoc Pennington  <hp@pobox.com>
14452
14453         * dbus/dbus-message.c (check_message_handling): function to check
14454         on the loaded message, iterates over it etc.
14455
14456 2003-01-28  Havoc Pennington  <hp@pobox.com>
14457
14458         * test/Makefile.am (dist-hook): fix make distdir
14459
14460         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14461
14462 2003-01-27  Havoc Pennington  <hp@pobox.com>
14463
14464         * dbus/dbus-mempool.c (time_for_size): replace printf with
14465         _dbus_verbose
14466
14467         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14468         empty lines; fix the SAVE_LENGTH stuff to be
14469         START_LENGTH/END_LENGTH so it actually works; couple other
14470         bugfixes
14471
14472         * test/Makefile.am (dist-hook): add dist-hook for .message files
14473
14474         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14475         can be constant or locked.
14476         (_dbus_string_free): allow freeing a const string as
14477         documented/intended
14478
14479         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14480
14481         * dbus/dbus-test-main.c (main): take an argument which is the
14482         directory containing test data
14483
14484         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14485         argument to this and load all the messages in test/data/
14486         checking that they can be loaded or not loaded as appropriate.
14487
14488 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14489
14490         * bus/dispatch.c: (bus_dispatch_message_handler):
14491         Dispatch messages sent to services.
14492
14493         * bus/driver.c: (bus_driver_send_service_deleted),
14494         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14495         (bus_driver_send_service_acquired):
14496         Add helper functions for sending service related messages.
14497
14498         (bus_driver_send_welcome_message):
14499         Send HELLO_REPLY instead of WELCOME.
14500
14501         (bus_driver_handle_list_services):
14502         Send LIST_SERVICES_REPLY instead of SERVICES.
14503
14504         (bus_driver_handle_own_service),
14505         (bus_driver_handle_service_exists):
14506         New message handlers.
14507
14508         (bus_driver_handle_message):
14509         Invoke new message handlers.
14510
14511         (bus_driver_remove_connection):
14512         Don't remove any services here since that's done automatically
14513         by bus_service_remove_owner now.
14514
14515         * bus/driver.h:
14516         New function signatures.
14517
14518         * bus/services.c: (bus_service_add_owner):
14519         Send ServiceAcquired message if we're the only primary owner.
14520
14521         (bus_service_remove_owner):
14522         Send ServiceAcquired/ServiceLost messages.
14523
14524         (bus_service_set_prohibit_replacement),
14525         (bus_service_get_prohibit_replacement):
14526         Functions for setting prohibit replacement.
14527
14528         (bus_service_has_owner):
14529         New function that checks if a connection is in the owner queue of
14530         a certain service.
14531
14532         * bus/services.h:
14533         Add new function signatures.
14534
14535         * dbus/dbus-list.c: (_dbus_list_test):
14536         Add tests for _dbus_list_remove_last and traversing the list backwards.
14537
14538         * dbus/dbus-list.h:
14539         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14540         go any further, so return NULL then.
14541
14542         * dbus/dbus-protocol.h:
14543         Add new messages, service flags and service replies.
14544
14545 2003-01-26  Havoc Pennington  <hp@pobox.com>
14546
14547         * dbus/dbus-message-builder.c: implement, completely untested.
14548
14549         * test/data/*: add data to be used in testing.
14550         ".message" files are our simple loadable text format.
14551         ".message-raw" will be binary dumps of messages.
14552
14553         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14554
14555 2003-01-26  Havoc Pennington  <hp@pobox.com>
14556
14557         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14558
14559         * dbus/dbus-errors.c (dbus_result_to_string): add
14560         file errors
14561
14562         * dbus/dbus-message-builder.c: new file, will contain code to load
14563         up messages from files. Not implemented yet.
14564
14565 2003-01-26  Havoc Pennington  <hp@pobox.com>
14566
14567         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14568         the sender by setting to NULL
14569
14570 2003-01-26  Havoc Pennington  <hp@pobox.com>
14571
14572         The unit tests pass, but otherwise untested.  If it breaks, the
14573         tests should have been better. ;-)
14574
14575         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14576         the connection.
14577
14578         * dbus/dbus-message.c: redo everything so we maintain
14579         message->header as the only copy of the various fields.
14580         This avoids the possibility of out-of-memory in some cases,
14581         for example dbus_message_lock() can't run out of memory anymore,
14582         and avoids extra copying. Figured I may as well go ahead and do
14583         this since it was busted for dbus_message_lock to not return
14584         failure on OOM, and dbus_message_write_header was totally
14585         unchecked for OOM. Also fixed some random other bugs.
14586
14587         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14588         that strings are nul-terminated. Also, end_pos can be equal
14589         to string length just not greater than, I think.
14590         (_dbus_marshal_set_int32): new function
14591         (_dbus_marshal_set_uint32): new function
14592         (_dbus_marshal_set_string): new function
14593
14594         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14595         a warning, init timeout_list to NULL
14596         (dbus_connection_send_message): don't use uninitialized variable
14597         "serial"
14598
14599         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14600
14601 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14602
14603         * bus/driver.c: (bus_driver_handle_hello),
14604         (bus_driver_send_welcome_message):
14605         Plug leaks
14606
14607 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14608
14609         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14610         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14611         (dbus_connection_unref):
14612         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14613         * dbus/dbus-message.c: (dbus_message_unref),
14614         Plug memory leaks.
14615
14616         (dbus_message_get_fields):
14617         Remove debugging printout.
14618
14619         (_dbus_message_loader_return_buffer):
14620         Don't store the header string.
14621
14622         (_dbus_message_test):
14623         Plug leaks.
14624
14625 2003-01-26  Richard Hult  <rhult@codefactory.se>
14626
14627         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14628         the file descriptor list, since it can change under us.
14629
14630 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14631
14632         * glib/dbus-gmain.c: (dbus_connection_prepare),
14633         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14634         (remove_watch), (dbus_connection_hookup_with_g_main):
14635         Rewrite the glib handling to use its own GSource instead of a
14636         GIOChannel so we can catch messages put in the queue while waiting
14637         for a reply.
14638
14639 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14640
14641         * bus/Makefile.am:
14642         * bus/connection.c: (connection_disconnect_handler),
14643         (connection_watch_callback), (bus_connection_setup):
14644         * bus/dispatch.c: (send_one_message),
14645         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14646         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14647         * bus/dispatch.h:
14648         * bus/driver.c: (bus_driver_send_service_deleted),
14649         (bus_driver_send_service_created), (bus_driver_handle_hello),
14650         (bus_driver_send_welcome_message),
14651         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14652         (bus_driver_handle_message):
14653         * bus/driver.h:
14654         Refactor code, put the message dispatching in its own file. Use
14655         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14656         is disconnected.
14657
14658 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14659
14660         * dbus/dbus-internals.h:
14661         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14662
14663         * dbus/dbus-message.c: (dbus_message_get_sender):
14664         * dbus/dbus-message.h:
14665         Implement dbus_message_get_sender.
14666
14667         * dbus/dbus-protocol.h:
14668         Add message and service defines.
14669
14670 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14671
14672         * dbus/dbus-connection.c: (dbus_connection_send_message):
14673         * dbus/dbus-message-internal.h:
14674         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14675         (dbus_message_write_header):
14676         Remove _dbus_messag_unlock and don't set the client serial on a
14677         message if one already exists.
14678
14679 2003-01-24  Havoc Pennington  <hp@pobox.com>
14680
14681         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14682         list_pool
14683
14684         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14685         on OOM
14686
14687 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14688
14689         * dbus/dbus-list.c: (alloc_link), (free_link):
14690         Use a memory pool for the links.
14691
14692 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14693
14694         * bus/connection.c: (bus_connection_foreach):
14695         * bus/connection.h:
14696         Add new bus_connection_foreach function.
14697
14698         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14699         Add function that broadcasts a message to all clients.
14700
14701         (bus_driver_send_service_created), (bus_driver_handle_hello),
14702         (bus_driver_send_welcome_message),
14703         (bus_driver_handle_list_services), (bus_driver_message_handler):
14704         Implement functions that take care of listing services, and notifying
14705         clients when new services are created.
14706
14707         * bus/services.c: (bus_services_list):
14708         * bus/services.h:
14709         Add new function that returns an array of strings with the currently
14710         registered services.
14711
14712         * glib/dbus-glib.h:
14713         * glib/dbus-gmain.c:
14714         Update copyright year.
14715
14716 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14717
14718         * dbus/dbus-connection.c: (dbus_connection_send_message):
14719         Unlock the message in case it was sent earlier.
14720
14721         (dbus_connection_send_message_with_reply_and_block):
14722         Remove the reply message from the list.
14723
14724         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14725         Set array_len and new_pos correctly.
14726
14727         (_dbus_marshal_test):
14728         Remove debug output.
14729
14730         * dbus/dbus-message-internal.h:
14731         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14732         New function that returns the reply serial.
14733
14734         (_dbus_message_unlock):
14735         New function that unlocks a message and resets its header.
14736
14737         (dbus_message_append_string_array),
14738         (dbus_message_get_fields_valist),
14739         (dbus_message_iter_get_field_type),
14740         (dbus_message_iter_get_string_array),
14741         (dbus_message_get_fields),
14742         (dbus_message_append_fields_valist):
14743         Handle string arrays.
14744
14745         (dbus_message_set_sender):
14746         Make this function public since the bus daemon needs it.
14747
14748         (decode_header_data):
14749         Set the reply serial to -1 initially.
14750
14751         * dbus/dbus-message.h:
14752         Add dbus_message_set_sender.
14753
14754 2003-01-24  Havoc Pennington  <hp@pobox.com>
14755
14756         * doc/dbus-specification.sgml: add some stuff
14757
14758 2003-01-22  Havoc Pennington  <hp@pobox.com>
14759
14760         * doc/dbus-specification.sgml: Start to document the protocol.
14761
14762 2003-01-22  Havoc Pennington  <hp@pobox.com>
14763
14764         * dbus/dbus-connection.c
14765         (dbus_connection_send_message_with_reply_and_block): add some @todo
14766
14767         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14768
14769 2003-01-21  Havoc Pennington  <hp@pobox.com>
14770
14771         (patch untested because can't compile)
14772
14773         * bus/driver.c (create_unique_client_name): make this function
14774         never recycle client names. Also, caller should initialize
14775         the DBusString.
14776
14777         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14778
14779 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14780
14781         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14782         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14783         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14784         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14785         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14786         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14787         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14788         * dbus/dbus-marshal.h:
14789         * dbus/dbus-protocol.h:
14790         Add support for marshalling and demarshalling integer, double
14791         and string arrays.
14792
14793 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14794
14795         * bus/Makefile.am:
14796         Add driver.[ch]
14797
14798         * bus/connection.c: (connection_disconnect_handler):
14799         Remove the connection from the bus driver's list.
14800
14801         (connection_watch_callback): Dispatch messages.
14802
14803         (free_connection_data): Free connection name.
14804
14805         (bus_connection_setup): Add connection to the bus driver's list.
14806         (bus_connection_remove_owned_service):
14807         (bus_connection_set_name), (bus_connection_get_name):
14808         Add functions for setting and getting the connection's name.
14809
14810         * bus/connection.h:
14811         Add function headers.
14812
14813         * bus/driver.c: (create_unique_client_name),
14814         (bus_driver_handle_hello_message),
14815         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14816         (bus_driver_add_connection), (bus_driver_remove_connection):
14817         * bus/driver.h:
14818         * bus/main.c:
14819         * bus/services.c: (bus_service_free):
14820         * bus/services.h:
14821         New file that handles communication and registreation with the bus
14822         itself.
14823
14824 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14825
14826         * dbus/dbus-connection.c: (dbus_connection_send_message):
14827         Add a new client_serial parameter.
14828
14829         (dbus_connection_send_message_with_reply):
14830         Remove a @todo since we've implemented the blocking function.
14831
14832         (dbus_connection_send_message_with_reply_and_block):
14833         New function that sends a message and waits for a reply and
14834         then returns the reply.
14835
14836         * dbus/dbus-connection.h:
14837         Add new functions.
14838
14839         * dbus/dbus-errors.c: (dbus_result_to_string):
14840         * dbus/dbus-errors.h:
14841         Add new DBUS_RESULT.
14842
14843         * dbus/dbus-message-internal.h:
14844         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14845         (_dbus_message_set_sender), (dbus_message_write_header),
14846         (dbus_message_new_reply), (decode_header_data),
14847         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14848         * dbus/dbus-message.h:
14849         Add new functions that set the reply serial and sender.
14850         Also marshal and demarshal them correctly and add test.
14851
14852         * dbus/dbus-protocol.h:
14853         Add new DBUS_MESSAGE_TYPE_SENDER.
14854
14855         * glib/dbus-glib.h:
14856         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14857         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14858         (dbus_connection_hookup_with_g_main):
14859         * glib/test-dbus-glib.c: (main):
14860         Rewrite to use GIOChannel and remove the GSource crack.
14861
14862         * test/echo-client.c: (main):
14863         * test/watch.c: (check_messages):
14864         Update for changed APIs
14865
14866 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14867
14868         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14869
14870         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14871         Create a DBusTimeoutList.
14872         (dbus_connection_set_timeout_functions): Add new function to
14873         set timeout callbacks
14874
14875         * dbus/dbus-connection.h: Add public DBusTimeout API.
14876
14877         * dbus/dbus-message.c: (dbus_message_get_service):
14878         * dbus/dbus-message.h:  New function.
14879
14880         * dbus/dbus-server.c: Fix small doc typo.
14881
14882         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14883
14884 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14885
14886         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14887         of the string, just as long as specified.
14888
14889 2003-01-19  Havoc Pennington  <hp@pobox.com>
14890
14891         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14892         new function
14893
14894         * dbus/dbus-server.c (dbus_server_set_max_connections)
14895         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14896         keep track of current number of connections, and add API for
14897         setting a max (but haven't implemented enforcing the max yet)
14898
14899 2003-01-18  Havoc Pennington  <hp@pobox.com>
14900
14901         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14902         reading/writing if read_watch != NULL or write_watch != NULL.
14903
14904         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14905         the message loader code to actually load message->header and
14906         message->body into the newly-created message.
14907
14908         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14909         in OOM case
14910
14911         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14912         (dbus_connection_get_max_message_size)
14913         (dbus_connection_set_max_live_messages_size)
14914         (dbus_connection_get_max_live_messages_size): implement some
14915         resource limitation functions
14916
14917         * dbus/dbus-resources.c: new file implementing some of the
14918         resource limits stuff
14919
14920         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14921         missing docs, add @todo to handle OOM etc.
14922
14923         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14924         docs
14925
14926 2003-01-18  Havoc Pennington  <hp@pobox.com>
14927
14928         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14929         connection if it hasn't been already.
14930
14931         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14932         replace with DisconnectFunction.
14933
14934 2003-01-18  Havoc Pennington  <hp@pobox.com>
14935
14936         Building --disable-verbose-mode --disable-asserts --disable-tests
14937         cuts the library from 112K to 45K or so
14938
14939         * configure.in: check for varargs macro support,
14940         add --enable-verbose-mode, --enable-asserts.
14941
14942         * dbus/dbus-internals.h (_dbus_assert): support
14943         DBUS_DISABLE_ASSERT
14944         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14945
14946 2003-01-18  Havoc Pennington  <hp@pobox.com>
14947
14948         * dbus/dbus-test.c: include config.h so that tests actually run
14949
14950         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14951         so the failure mode when that assumption fails will be plenty
14952         obvious.
14953
14954 2003-01-18  Havoc Pennington  <hp@pobox.com>
14955
14956         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14957
14958         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14959         the distribution
14960
14961         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14962         since we don't want to use those in make check
14963
14964 2003-01-15  Havoc Pennington  <hp@redhat.com>
14965
14966         Release 0.2
14967
14968         * NEWS: update
14969
14970 2003-01-15  Havoc Pennington  <hp@redhat.com>
14971
14972         * test/Makefile.am: fix so that test source code ends up in the
14973         distribution on make distcheck
14974
14975 2003-01-15  Havoc Pennington  <hp@redhat.com>
14976
14977         Release 0.1.
14978
14979         * NEWS: update
14980
14981 2003-01-15  Havoc Pennington  <hp@redhat.com>
14982
14983         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14984         fix build when --disable-tests
14985
14986         * Makefile.am (EXTRA_DIST): put HACKING in here
14987
14988         * HACKING: document procedure for making a tarball release.
14989
14990 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14991
14992         * bus/connection.c: (connection_error_handler),
14993         (bus_connection_setup):
14994         * bus/main.c: (main):
14995         Make sure that the DBusConnectionData struct is NULLed
14996         out to prevent a segfault.
14997
14998         * dbus/dbus-errors.c: (dbus_result_to_string):
14999         * dbus/dbus-errors.h:
15000         * dbus/dbus-message.c: (dbus_message_get_fields),
15001         (dbus_message_get_fields_valist), (_dbus_message_test):
15002         * dbus/dbus-message.h:
15003         Make dbus_message_get_fields return a result code so we can
15004         track invalid fields as well as oom.
15005
15006 2003-01-11  Havoc Pennington  <hp@pobox.com>
15007
15008         * configure.in: change --enable-test/--enable-ansi action-if-given
15009         to enable_foo=$enableval instead of enable_foo=yes
15010
15011 2003-01-08  Havoc Pennington  <hp@pobox.com>
15012
15013         * dbus/dbus-string.c (_dbus_string_align_length): new function
15014
15015         * dbus/dbus-test-main.c: move main() for test app here
15016         * dbus/dbus-test.c
15017         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
15018         symbol to run tests, because dbus-test isn't in the main
15019         library
15020
15021         Code review nitpicks.
15022
15023         * dbus/dbus-message.c (dbus_message_write_header): add newlines
15024         for people with narrow emacs ;-). Assert client_serial was filled
15025         in. Assert message->name != NULL.
15026         (dbus_message_append_fields): have "first_field_type" arg separate
15027         from va list, needed for C++ binding that also uses varargs IIRC
15028         and helps with type safety
15029         (dbus_message_new): add @todo about using DBusString to store
15030         service/name internally
15031         (dbus_message_new): don't leak ->service and ->name on OOM later
15032         in the function
15033         (dbus_message_unref): free the service name
15034         (dbus_message_get_fields): same change to varargs
15035         i.e. first_field_type
15036         (_dbus_message_loader_return_buffer): assert that the message data
15037         is aligned (if not it's a bug in our code). Put in verbose griping
15038         about why we set corrupted = TRUE.
15039         (decode_header_data): add FIXME that char* is evil.  Was going to
15040         add FIXME about evil locale-specific string.h strncmp, but just
15041         switched to wacky string-as-uint32 optimization. Move check for
15042         "no room for field name" above get_const_data_len() to avoid
15043         assertion failure in get_const_data_len if we have trailing 2
15044         bytes or the like. Check for service and name fields being
15045         provided twice. Don't leak service/name on error. Require field
15046         names to be aligned to 4 bytes.
15047
15048         * dbus/dbus-marshal.c: move byte swap stuff to header
15049         (_dbus_pack_int32): uscore-prefix
15050         (_dbus_unpack_int32): uscore-prefix
15051         (_dbus_unpack_uint32): export
15052         (_dbus_demarshal_string): add @todo complaining about use of
15053         memcpy()
15054         (_dbus_marshal_get_field_end_pos): add @todo about bad error
15055         handling allowing corrupt data to go unchecked
15056
15057 2003-01-08  Havoc Pennington  <hp@redhat.com>
15058
15059         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
15060         to the select() as needed for authentication. (should be using
15061         _dbus_poll() not select, but for another day)
15062
15063         * dbus/dbus.h: include dbus/dbus-protocol.h
15064
15065 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
15066
15067         * dbus/Makefile.am (dbusinclude_HEADERS): Install
15068         dbus-connection.h
15069
15070 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
15071
15072         * dbus/dbus-internals.c: (_dbus_type_to_string):
15073         New function that returns a string describing a type.
15074
15075         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
15076         * dbus/dbus-marshal.h:
15077         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
15078         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
15079         (dbus_message_iter_get_byte_array):
15080         * dbus/dbus-message.h:
15081         Add new convenience functions for appending and getting message fields.
15082         Also add demarshalling routines for byte arrays.
15083
15084 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15085
15086         * dbus/dbus-connection-internal.h:
15087         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
15088         (_dbus_connection_get_next_client_serial),
15089         (dbus_connection_send_message):
15090         * dbus/dbus-internals.h:
15091         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
15092         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
15093         (_dbus_marshal_uint32), (_dbus_demarshal_double),
15094         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
15095         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
15096         (_dbus_verbose_bytes), (_dbus_marshal_test):
15097         * dbus/dbus-marshal.h:
15098         * dbus/dbus-message-internal.h:
15099         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
15100         (dbus_message_write_header), (_dbus_message_lock),
15101         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
15102         (dbus_message_get_name), (dbus_message_append_int32),
15103         (dbus_message_append_uint32), (dbus_message_append_double),
15104         (dbus_message_append_string), (dbus_message_append_byte_array),
15105         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
15106         (dbus_message_iter_unref), (dbus_message_iter_has_next),
15107         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
15108         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
15109         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
15110         (decode_header_data), (_dbus_message_loader_return_buffer),
15111         (message_iter_test), (_dbus_message_test):
15112         * dbus/dbus-message.h:
15113         * dbus/dbus-protocol.h:
15114         * dbus/dbus-test.c: (main):
15115         * dbus/dbus-test.h:
15116         * glib/test-dbus-glib.c: (message_handler), (main):
15117         * test/echo-client.c: (main):
15118         * test/watch.c: (check_messages):
15119         Make messages sendable and receivable for real.
15120
15121 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15122
15123         * dbus/dbus-marshal.c: (_dbus_marshal_double),
15124         (_dbus_marshal_string), (_dbus_marshal_byte_array):
15125         * dbus/dbus-message.c: (dbus_message_append_int32),
15126         (dbus_message_append_uint32), (dbus_message_append_double),
15127         (dbus_message_append_string), (dbus_message_append_byte_array):
15128         Handle OOM restoration.
15129
15130 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15131
15132         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15133         (_dbus_demarshal_string), (_dbus_marshal_test):
15134         * dbus/dbus-marshal.h:
15135         * dbus/dbus-message.c: (dbus_message_get_name),
15136         Document these functions.
15137
15138         (dbus_message_append_int32), (dbus_message_append_uint32),
15139         (dbus_message_append_double), (dbus_message_append_string),
15140         (dbus_message_append_byte_array):
15141         * dbus/dbus-message.h:
15142         Add functions for adding message fields of different types.
15143
15144         * dbus/dbus-protocol.h:
15145         Add the different types.
15146
15147 2003-01-05  Havoc Pennington  <hp@pobox.com>
15148
15149         * bus/connection.c: implement routines for handling connections,
15150         first thing is keeping a list of owned services on each connection
15151         and setting up watches etc.
15152
15153         * bus/services.c: implement a mapping from service names to lists
15154         of connections
15155
15156         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
15157
15158         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
15159         to use static mutexes for global data
15160
15161         * dbus/dbus-connection.c (dbus_connection_set_data): add new
15162         collection of functions to set/get application-specific data
15163         on the DBusConnection.
15164
15165 2003-01-04  Havoc Pennington  <hp@pobox.com>
15166
15167         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
15168         (_dbus_poll): new function
15169
15170         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
15171         copied from GLib
15172
15173         * bus/loop.c: initial code for the daemon main loop
15174
15175 2003-01-04  Havoc Pennington  <hp@pobox.com>
15176
15177         * test/watch.c (error_handler): make it safe if the error handler
15178         is called multiple times (if we s/error handler/disconnect
15179         handler/ we should just guarantee it's called only once)
15180
15181         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
15182         error handler on disconnect (it's quite possible we should
15183         just change the error handler to a "disconnect handler," I'm
15184         not sure we have any other meaningful errors)
15185
15186         * configure.in: check for getpwnam_r
15187
15188         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
15189         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
15190         mechanism as in SASL spec, using socket credentials
15191
15192         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
15193         (_dbus_send_credentials_unix_socket): new function
15194
15195         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
15196         dbus_accept()
15197         (_dbus_write): only check errno if <0 returned
15198         (_dbus_write_two): ditto
15199
15200 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
15201
15202         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
15203         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
15204         (_dbus_marshal_test):
15205         * dbus/dbus-marshal.h:
15206         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
15207         to _dbus_marshal_utf8_string. Also fix some tests.
15208
15209 2002-12-28  Harri Porten  <porten@kde.org>
15210
15211         * configure.in: added check for C++ compiler and a very cheesy
15212         check for the Qt integration
15213
15214         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
15215
15216         * qt/Makefile.am: added
15217
15218         * qt/.cvsignore: added
15219
15220         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
15221         latter, added #ifdef QT_THREAD_SUPPORT guard.
15222
15223         * dbus/Makefile.am: added missing headers for make dist
15224
15225 2002-12-28  Kristian Rietveld  <kris@gtk.org>
15226
15227         * dbus/Makefile.am: fixup export-symbols-regex.
15228
15229 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15230
15231         * acinclude.m4: Add this file and put the
15232         PKG_CHECK_MODULE macro in it.
15233
15234 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15235
15236         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15237         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15238         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15239         (_dbus_marshal_test):
15240         Make the demarshalling routines align the pos argument.
15241         Add string marshalling tests and fix the obvious bugs
15242         discovered.
15243
15244 2002-12-26  Havoc Pennington  <hp@pobox.com>
15245
15246         * dbus/dbus-auth.c: fixes fixes fixes
15247
15248         * dbus/dbus-transport-unix.c: wire up support for
15249         encoding/decoding data on the wire
15250
15251         * dbus/dbus-auth.c (_dbus_auth_encode_data)
15252         (_dbus_auth_decode_data): append to target string
15253         instead of nuking it.
15254
15255 2002-12-26  Havoc Pennington  <hp@pobox.com>
15256
15257         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
15258         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
15259         doh
15260
15261         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
15262         avoid swap_bytes() overhead (ignoring possible assembly stuff for
15263         now). Main point is because I wanted unpack_uint32 to implement
15264         _dbus_verbose_bytes
15265         (_dbus_verbose_bytes): new function
15266
15267         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
15268
15269         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
15270         mechanism to handle a corrupt message stream
15271         (_dbus_message_loader_new): fix preallocation to only prealloc,
15272         not prelengthen
15273
15274         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
15275         (_dbus_string_test): enhance tests for copy/move and fix the
15276         functions
15277
15278         * dbus/dbus-transport-unix.c: Hold references in more places to
15279         avoid reentrancy problems
15280
15281         * dbus/dbus-transport.c: ditto
15282
15283         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
15284         leak reference count in no-message case
15285
15286         * test/watch.c (do_mainloop): handle adding/removing watches
15287         during iteration over the watches. Also, ref the connection/server
15288         stored on a watch, so we don't try to mangle a destroyed one.
15289
15290         * dbus/dbus-transport-unix.c (do_authentication): perform
15291         authentication
15292
15293         * dbus/dbus-auth.c (get_state): add a state
15294         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
15295         (_dbus_auth_get_unused_bytes): append the unused bytes
15296         to the passed in string, rather than prepend
15297
15298         * dbus/dbus-transport.c (_dbus_transport_init_base): create
15299         the auth conversation DBusAuth
15300
15301         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
15302         (_dbus_transport_new_for_domain_socket): when creating a
15303         transport, pass in whether it's a client-side or server-side
15304         transport so we know which DBusAuth to create
15305
15306 2002-12-03  Havoc Pennington  <hp@pobox.com>
15307
15308         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15309         _after_ finalizing the derived members
15310         (unix_connection_set): unref watch if we fail to add it
15311
15312         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15313         transport first, so that the connection owned by the
15314         transport will be valid as the transport finalizes.
15315
15316         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15317         if necessary, and remove watches from the connection.
15318
15319         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15320
15321 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15322
15323         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15324         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15325         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15326         (_dbus_marshal_test):
15327         * dbus/dbus-marshal.h:
15328         Add string marshal functions and have the demarshal functions
15329         return the new position.
15330
15331 2002-12-25  Havoc Pennington  <hp@pobox.com>
15332
15333         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15334         it is a simple protocol that just maps directly to SASL.
15335
15336         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15337         initial implementation, not actually used yet.
15338
15339         * dbus/dbus-string.c (_dbus_string_find): new function
15340         (_dbus_string_equal): new function
15341         (_dbus_string_base64_encode): new function
15342         (_dbus_string_base64_decode): new function
15343
15344 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15345
15346         * dbus/Makefile.am:
15347         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15348         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15349         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15350         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15351         * dbus/dbus-marshal.h:
15352         * dbus/dbus-protocol.h:
15353         * dbus/dbus-test.c: (main):
15354         * dbus/dbus-test.h:
15355         Add un-optimized marshalling/demarshalling routines.
15356
15357 2002-12-25  Harri Porten  <porten@kde.org>
15358
15359         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15360
15361 2002-12-24  Zack Rusin  <zack@kde.org>
15362
15363         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15364         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15365         main loop stuff
15366
15367 2002-12-24  Havoc Pennington  <hp@pobox.com>
15368
15369         * glib/dbus-gthread.c: fix include
15370
15371         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15372         I think glib API needs to change, though, as you don't
15373         want to use DBusMessageFunction, you want to use the
15374         DBusMessageHandler object. Probably
15375         dbus_connection_open_with_g_main_loop()
15376         and dbus_connection_setup_g_main_loop() or something like that
15377         (but think of better names...) that just create a connection
15378         that has watch/timeout functions etc. already set up.
15379
15380         * dbus/dbus-connection.c
15381         (dbus_connection_send_message_with_reply): new function just to
15382         show how the message handler helps us deal with replies.
15383
15384         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15385
15386         * dbus/dbus-string.c (_dbus_string_test): free a string that
15387         wasn't
15388
15389         * dbus/dbus-hash.c: use memory pools for the hash entries
15390         (rebuild_table): be more paranoid about overflow, and
15391         shrink table when we can
15392         (_dbus_hash_test): reduce number of sprintfs and write
15393         valid C89. Add tests for case where we grow and then
15394         shrink the hash table.
15395
15396         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15397
15398         * dbus/dbus-connection.c (dbus_connection_register_handler)
15399         (dbus_connection_unregister_handler): new functions
15400
15401         * dbus/dbus-message.c (dbus_message_get_name): new
15402
15403         * dbus/dbus-list.c: fix docs typo
15404
15405         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15406         an object representing a handler for messages.
15407
15408 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15409
15410         * glib/dbus-glib.h:
15411         * glib/dbus-gthread.c: (dbus_gthread_init):
15412         Don't use the gdbus prefix for public functions.
15413
15414 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15415
15416         * Makefile.am:
15417         * configure.in:
15418         Add GLib checks and fixup .pc files
15419
15420         * glib/Makefile.am:
15421         * glib/dbus-glib.h:
15422         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15423         (gdbus_connection_check), (gdbus_connection_dispatch),
15424         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15425         (dbus_connection_gsource_new):
15426         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15427         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15428         * glib/test-dbus-glib.c: (message_handler), (main):
15429         Add GLib support.
15430
15431 2002-12-15  Harri Porten  <porten@kde.org>
15432
15433         * autogen.sh: check for libtoolize before attempting to use it
15434
15435         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15436         struct.
15437
15438         * .cvsignore: ignore more stamp files
15439
15440         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15441
15442         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15443         without make install.
15444
15445 2002-12-15  Havoc Pennington  <hp@pobox.com>
15446
15447         * dbus/dbus-threads.c: add thread stubs that a higher library
15448         layer can fill in. e.g. the GLib wrapper might fill them in with
15449         GThread stuff. We still need to use this thread API to
15450         thread-safe-ize the library.
15451
15452 2002-12-12  Havoc Pennington  <hp@pobox.com>
15453
15454         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15455         below new interfaces and include fewer system headers.
15456
15457         * dbus/dbus-sysdeps.c (_dbus_read): new function
15458         (_dbus_write): new function
15459         (_dbus_write_two): new function
15460         (_dbus_connect_unix_socket): new function
15461         (_dbus_listen_unix_socket): new function
15462
15463         * dbus/dbus-message-internal.h: change interfaces to use
15464         DBusString
15465
15466 2002-12-11  Havoc Pennington  <hp@pobox.com>
15467
15468         * dbus/dbus-types.h: add dbus_unichar
15469
15470         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15471
15472         * dbus/dbus-connection.c (dbus_connection_send_message): return
15473         TRUE on success
15474
15475         * dbus/dbus-transport.c: include dbus-watch.h
15476
15477         * dbus/dbus-connection.c: include dbus-message-internal.h
15478
15479         * HACKING: add file with coding guidelines stuff.
15480
15481         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15482         handling here, for security purposes (as in vsftpd). Not actually
15483         using this class yet.
15484
15485         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15486         system/libc usage here, as in vsftpd, for ease of auditing (and
15487         should also simplify portability). Haven't actually moved all the
15488         system/libc usage into here yet.
15489
15490 2002-11-25  Havoc Pennington  <hp@pobox.com>
15491
15492         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15493         always print the first verbose message.
15494
15495 2002-11-24  Havoc Pennington  <hp@pobox.com>
15496
15497         * test/echo-client.c, test/echo-server.c: cheesy test
15498         clients.
15499
15500         * configure.in (AC_CHECK_FUNCS): check for writev
15501
15502         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15503         function
15504
15505         * dbus/dbus-list.c (_dbus_list_foreach): new function
15506
15507         * dbus/dbus-internals.c (_dbus_verbose): new function
15508
15509         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15510         representing a server that listens for connections.
15511
15512         * dbus/.cvsignore: create
15513
15514         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15515         public API for reporting errors
15516
15517         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15518         public object representing a connection that
15519         sends/receives messages. (Same object used for
15520         both client and server.)
15521
15522         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15523         Basic abstraction for different kinds of stream
15524         that we might read/write messages from.
15525
15526 2002-11-23  Havoc Pennington  <hp@pobox.com>
15527
15528         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15529         _DBUS_INT_MAX
15530
15531         * dbus/dbus-test.c (main): add list test, and include
15532         dbus-test.h as intended
15533
15534         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15535         (_dbus_hash_table_remove_int): return value indicates
15536         whether the entry existed to remove
15537
15538         * dbus/dbus-list.c: add linked list utility class,
15539         with docs and tests
15540
15541         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15542         array sometimes.
15543
15544 2002-11-23  Havoc Pennington  <hp@pobox.com>
15545
15546         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15547         DBUS_END_DECLS to nothing, that should fix this once and for all
15548
15549         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15550
15551         * dbus/dbus-message.c, dbus/dbus-hash.c:
15552         add some missing @brief
15553
15554 2002-11-23  Havoc Pennington  <hp@pobox.com>
15555
15556         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15557         to avoid confusing Doxygen
15558
15559         * dbus/dbus-hash.c: @} not }@
15560
15561         * dbus/dbus-message.c (struct DBusMessage): split out
15562         internals docs
15563
15564 2002-11-23  Havoc Pennington  <hp@pobox.com>
15565
15566         * configure.in: pile on more warning flags if using gcc
15567
15568         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15569         to document static functions
15570
15571         * configure.in: add summary to end of configure so it
15572         looks nice and attractive
15573
15574         * dbus/dbus-hash.c: finish implementation and write unit
15575         tests and docs
15576
15577         * configure.in: add --enable-tests to enable unit tests
15578
15579         * dbus/dbus-test.c: test program to run unit tests
15580         for all files in dbus/*, initially runs a test for
15581         dbus-hash.c
15582
15583         * dbus/dbus-internals.h: file to hold some internal utility stuff
15584
15585 2002-11-22  Havoc Pennington  <hp@redhat.com>
15586
15587         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15588         "ported" away from Tcl
15589
15590         * dbus/dbus-types.h: header for types such as dbus_bool_t
15591
15592 2002-11-22  Havoc Pennington  <hp@redhat.com>
15593
15594         * dbus/dbus.h: fixups for doc warnings
15595
15596         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15597         macros
15598         (QUIET): make it quiet so we can see warnings
15599
15600         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15601
15602 2002-11-22  Havoc Pennington  <hp@redhat.com>
15603
15604         * Makefile.am: include "Doxyfile" target in all-local
15605
15606         * configure.in: generate the Doxyfile
15607
15608         * Doxyfile.in: move Doxyfile here, so we can use
15609         configure to generate a Doxyfile with the right
15610         version number etc.
15611
15612 2002-11-22  Havoc Pennington  <hp@redhat.com>
15613
15614         * dbus/dbus-message.c: move inline docs into .c file
15615
15616         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15617         so all docs are under doc/
15618         (MAN_EXTENSION): generate man pages. Use extension
15619         ".3dbus" which matches ".3qt" on my system,
15620         I guess this is OK, I don't know really.
15621         (FILE_PATTERNS): look for .c files not .h, makes sense
15622         for plain C I think
15623
15624 2002-11-22  Havoc Pennington  <hp@pobox.com>
15625
15626         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15627         because any app can be a server, and any app can be a client,
15628         the bus is a special kind of server.
15629
15630 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15631
15632         * Doxyfile : adding. Still needs Makefile rules to be generated
15633         automatically (just run "doxygen" in the toplevel dir for now to
15634         generate docs)
15635
15636         * dbus/dbus-message.h : Adding sample docs (javadoc since
15637         resembles gtk-doc a little more)
15638
15639         * dbus/dbus.h : Adding sample docs
15640
15641 2002-11-21  Havoc Pennington  <hp@redhat.com>
15642
15643         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15644         so we can allow ourselves to include files directly,
15645         instead of having to use dbus.h
15646
15647         * dbus/dbus.h: fill in
15648
15649         * dbus/dbus-message.h: sketch out a sample header file.
15650         Include griping if you include it directly instead of
15651         via dbus.h
15652
15653         * dbus/dbus-macros.h: new file with macros for extern "C",
15654         TRUE/FALSE, NULL, etc.
15655
15656         * doc/file-boilerplate.c: put include guards in here
15657
15658 2002-11-21  Havoc Pennington  <hp@redhat.com>
15659
15660         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15661
15662         * COPYING: include the GPL as well, and license code
15663         under both AFL and GPL.
15664
15665 2002-11-21  Havoc Pennington  <hp@redhat.com>
15666
15667         * acconfig.h: get rid of this
15668
15669         * autogen.sh (run_configure): add --no-configure option
15670
15671         * configure.in: remove AC_ARG_PROGRAM to make
15672         autoconf complain less. add AC_PREREQ.
15673         add AC_DEFINE third arg.
15674
15675 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15676
15677         * doc/Makefile.am:
15678         Fix references so we can distcheck.
15679
15680 2002-11-21  Havoc Pennington  <hp@redhat.com>
15681
15682         * Initial module creation
15683