* bus\config-parser.c (test_default_session_servicedirs):win32 fix.
[platform/upstream/dbus.git] / ChangeLog
1 2007-04-29 Ralf.Habacker  <ralf.habacker@freenet.de>
2  
3         * bus\config-parser.c (test_default_session_servicedirs):
4         win32 fix.
5
6 2007-04-29 Ralf.Habacker  <ralf.habacker@freenet.de>
7  
8         * configure.in: define constant DBUS_UNIX.
9
10 2007-05-14  Ralf Habacker <ralf.habacker@freenet.de>
11
12         * dbus/dbus-sysdeps-win.c (_dbus_printf_string_upper_bound):
13         compile fix for MS Platform SDK 6 
14         patch from Michael Luschas <mluschas@gmail.com>
15
16 2007-05-10  John (J5) Palmieri <johnp@redhat.com>
17
18         * dbus-1.pc.in: add daemondir to pc file
19         patch from Brian Cameron <brian.cameron at sun.com>
20
21 2007-05-04  Simon McVittie <simon.mcvittie@collabora.co.uk>
22
23         * doc/dbus-specification.xml: mention the reserved o.fd.DBus.Local
24         interface and the corresponding /o/fd/DBus/Local object path;
25         describe them as reserved and forbid using them in a sent message,
26         mentioning that in the reference implementation this will cause the
27         connection to be dropped. Patch approved by Havoc.
28
29 2007-04-28  Ralf Habacker <ralf.habacker@freenet.de>
30
31         * cmake/: don't install test applications and service files,
32         moved CMAKE_DEBUG_POSTFIX to top level CMakeLists.txt
33
34 2007-04-27  Havoc Pennington  <hp@redhat.com>
35
36         * dbus/dbus-sysdeps-unix.c (_dbus_open_socket): fix #10781 from
37         Tobias Nygren, checking pointer to fd vs. 0 rather than checking
38         the fd itself
39
40 2007-04-26 Ralf Habacker  <ralf.habacker@freenet.de>
41
42         * cmake/: added debug postfixes to debug exe's for 
43         easier debugging.
44         * dbus\dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error): 
45         print error code in case no string message is available.
46
47 2007-04-06 Simon McVittie <simon.mcvittie@collabora.co.uk>
48
49         * dbus/dbus-message-util.c, dbus/dbus-message.c,
50         dbus/dbus-message.h: Add API to convert a DBusMessage to/from a
51         byte array. Patch from Dafydd Harries <dafydd.harries@collabora.co.uk>,
52         approved by Havoc Pennington.
53
54 2007-04-03  Timo Hoenig  <thoenig@suse.de>
55
56         * dbus/dbus-address.c (dbus_parse_address): Do not accept zero-
57           length address.
58         * dbus/dbus-address.c (_dbus_address_test): Add test for zero-
59           length address.
60
61 2007-03-25 Ralf.Habacker  <ralf.habacker@freenet.de>
62
63         * cmake/dbus/CMakeLists.txt: debug postfix also for mingw.
64
65 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
66
67         * cmake/modules/FindExpat.cmake: fix package detection on win32.
68
69         * README.win: update install instructions. 
70
71 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
72
73         * dbus/dbus-sysdeps.h (_dbus_split_paths_and_append):
74         new prototyp
75         (_DBUS_PATH_SEPARATOR): new macro. 
76
77         * dbus/dbus-sysdeps.c (_dbus_split_paths_and_append): merged 
78         from dbus/dbus-sysdeps-unix.c and dbus/dbus-sysdeps-win.c. 
79
80 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
81
82         * bus/config-parser.c, bus/policy.c,  
83         bus/policy.h, bus/dbus-daemon.1.in,
84         bus/session.conf.in: added eavesdrop support 
85         for replies - patch by olli.salli at collabora.co.uk
86         approved by Havoc Pennington. 
87
88 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
89
90         * dbus\dbus-sysdeps-win-thread.c: renamed to 
91         dbus-sysdeps-thread-win.c, it is a platform depending file 
92         similar to dbus-sysdeps-pthread.c.
93
94 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
95
96         * cmake\doc\CMakeLists.txt: added prelimary xml doc 
97         support, needs cmake Find script.
98
99 2007-03-14 Ralf.Habacker  <ralf.habacker@freenet.de>
100
101         * cmake: add doxygen support
102
103 2007-03-14  Ralf.Habacker  <ralf.habacker@freenet.de>
104
105         * cmake/config.h.cmake: WINCE fixes, defined DBUS_UNIX.
106
107 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
108
109         * dbus/dbus-sysdeps-util-win.c (dbus_become_daemon): 
110         win32 compile fix. 
111
112 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
113
114         * dbus-win.patch: removed obsolate patches. 
115
116 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
117
118         * dbus/dbus-sysdeps-win.c: added zero byte sending 
119         and receiving after connection start up
120
121 2007-03-11  Havoc Pennington  <hp@redhat.com>
122
123         * tools/dbus-launch.c (do_close_stderr): fix C89 problem and
124         formatting problem
125
126         * Mostly fix the DBusPipe mess.
127         - put line break after function return types
128         - put space before parens
129         - do not pass structs around by value
130         - don't use dbus_strerror after calling supposedly cross-platform
131         api
132         - don't name pipe variables "fd"
133         - abstract special fd numbers like -1 and 1
134
135 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
136
137         * dbus/dbus-sysdeps-win.h, dbus/dbus-sysdeps-win.c, 
138         dbus/dbus-sysdeps-util-win.c: renamed functions 
139         _dbus_xxx_file() to _dbus_file_xxx() to reflect 
140         struct name DBusFile. 
141
142 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
143
144         * dbus/dbus-sysdeps-util-unix.c (_dbus_become_daemon):
145         fix _dbus_pid_fd check. 
146
147 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
148
149         * tools/dbus-print-message.c (print_message):
150         added printing of the reply serial to method returns and 
151         errors, so you can actually figure out the message/reply 
152         pairs - patch by olli.salli at collabora.co.uk.
153
154 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
155
156         * dbus-win.patch: removed committed patches. 
157
158 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
159
160         * bus/bus.c, bus/bus.h, bus/main.c, bus/test.c,
161         dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-util-unix.c,
162         dbus/dbus-sysdeps-util-win.c, dbus/dbus-sysdeps-win.c,
163         dbus/dbus-sysdeps.h: renamed _dbus_xxx_pipe to _dbus_pipe_xxx,
164         completed _dbus_pipe support. 
165
166 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
167
168         * dbus/dbus-sysdeps.h (_dbus_listen_tcp_socket):
169         changed type or port to pointer, because the port is given back.
170
171         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
172         implemented returning tcp port. Skipping port parameter
173         and non integer port values in config <listen> statement
174         needs more effort.
175
176         * dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-win.c
177         (_dbus_listen_tcp_socket): return the real used tcp port.
178
179         * bus/dbus-daemon.1.in: added <listen> tcp examples
180
181 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
182
183         * cmake/config.h.cmake: win32 msvc bug fix
184
185 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
186
187         * cmake/config.h.cmake: fixed DBUS_WINxx defines,
188         using _WINCE does not work.
189
190 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
191
192         * dbus-win.patch: removed _dbus_write_pipe() patch, it is now 
193         committed.
194
195 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
196
197         * bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h:
198         rename pipe related write() function calls to _dbus_write_pipe().
199
200 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
201
202         * dbus-win.patch: added bus/config-loader-libexpat.c patch, 
203         uses DBUS_WIN for alls win32 related #ifdefs, 
204         some minor cleanups
205
206 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
207
208         * dbus-win.patch: updated patch for bus/dispatch.c.
209
210 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
211
212         * dbus-win.patch: dbus-connection.c (dbus_connection_get_unix_user,
213         dbus_connection_get_unix_process_id): Let return them valid user id's, 
214         otherwise bus-test fails. How to replace on win32 ?.
215         
216         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir):
217         fix memory leak.
218
219 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
220
221         * dbus/dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error):
222         use dbus friendly error name.
223         (fill_win_user_info_homedir): print user name in error case too.
224
225 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
226
227         * cmake/ConfigureChecks.cmake: fixed socketpair check
228
229 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
230
231         * bus/dispatch.c: disabled segfault test on win32 for now
232
233 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
234
235         * configure.in, cmake/ConfigureChecks.cmake: added check 
236         for setrlimit. 
237         * test/test-segfault.c: only include setrlimit stuff only 
238         when available.  
239
240 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
241
242         * test/test-segfault.c: unix compile fix.
243         * dbus-win.patch: removed obsolate patches.
244
245 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
246
247         * bus/activation.c: removed obsolate include header.
248         * test/test-segfault.c: win32 compile fix, rlimit 
249         isn't available on win32.
250         * dbus-win.patch: removed some more patches, they
251         are applied or obsolate 
252
253 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
254
255         * bus-win.patch: fixes unix listen problems, dbus-test 
256         now runs.
257
258 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
259
260         * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
261         cmake/CMakeLists.txt: win32 compile fix
262
263 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
264
265         * dbus-win.patch, README.win: added available win32 
266         patches from windbus project (http://sf.net/projects/windbus)
267
268 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
269
270         * bus/activation.c: (bus_activation_activate_service):
271         fixed call to _dbus_spawn_async_with_babysitter().
272
273 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
274
275         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
276         added environment pointer as function parameter, used on win32.
277
278         * test/spawn-test.c: fixed call to above mentioned function.
279
280 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
281
282         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
283         added configure check for unistd.h.
284
285 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
286
287         * test/Makefile.am: fixed test data copy problem in 
288         out of source build, when sources came from svn or cvs. 
289
290 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
291
292         * dbus/*-win.*,bus/*-win.*: added win32 platform related
293         files. These files are only added to the cmake build system.  
294         The missing dbus-win.patch file will be added later. 
295
296 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
297
298         * cmake: new directory, contains cmake build support.
299         See http://www.cmake.org for more informations.
300         Currently only unix will be buildable because some 
301         win32 required files are still missing. 
302
303 2007-03-03  Thiago Macieira  <thiago@kde.org>
304
305         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
306         output and add it to the DBusError message we return.
307
308         * tools/dbus-launch.1:
309         * tools/dbus-launch.c: Add option --close-stderr to, well,
310         close stderr before starting dbus-daemon.
311
312 2007-01-31  Havoc Pennington  <hp@redhat.com>
313
314         * bus/dbus-daemon.1.in: write a section in the man page on running
315         a test daemon for debugging purposes
316
317 2007-01-26  Havoc Pennington  <hp@redhat.com>
318
319         * bus/session.conf.in: override all the default limits with much
320         higher limits on the session bus, there is no reason the session
321         bus should have low limits
322
323         * bus/config-parser.c (bus_config_parser_new): increase default
324         limits so they are less likely to be hit; in particular the max
325         replies per connection was way too low
326
327 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
328
329         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
330         a pointer to the tutorial maintained as part of dbus-python
331
332 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
333
334         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
335         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
336         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
337
338 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
339
340         * tools/dbus-monitor.c: gettimeofday() is not available 
341         on windows so we have to provide our own. It's taken from 
342         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
343
344 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
345
346         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
347         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
348         is in dbus-sysdeps-win.c (not in this patch).
349
350         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
351         with InterlockedInc/Decrement. 
352         - Patches from Christian Ehrlicher
353         
354 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
355
356         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
357
358 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
359
360         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
361         fix mispaced const statement. - Patch from Peter Kümmel
362
363 2006-12-19  Ray Strode  <rstrode@redhat.com>
364
365         * bus/bus.c (process_config_every_time):
366         don't overwrite existing bus context activation object
367         until after we've checked that the new activation is
368         valid.
369
370         * bus/main.c 
371         (signal_handler), (handle_reload_watch):
372         don't call exit() on failure, instead make do and keep
373         going.
374         (close_reload_pipe): new function to turn off
375         hangup-causes-config-reload behavior if an unexpected
376         error occurs
377
378 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
379
380         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
381         correctness fix. - Patch from Christian Ehrlicher
382
383 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
384
385         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
386         we should also use it. - Patch from Christian Ehrlicher
387
388 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
389   
390         * dbus-sysdeps-util.c: added win32 related tests
391
392 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
393
394         * dbus/dbus-string.c (_dbus_string_pop_line),
395         bus/desktop-file.c (parse_section_start,
396         parse_comment_or_blank,parse_key_value,): uses
397         _dbus_string_find_eol() to support platform independent eol style.
398
399 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
400
401         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
402         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
403               _dbus_string_find_eol().
404         Approved by: Havoc Pennington.
405
406 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
407
408         * configure.in: Added switch to disable user_database caching.
409
410         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
411         be able disable user_dabase caching.
412
413 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
414
415         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
416         struct. It is unnecessary we have a global one already. Also remove 
417         bus_context_get_user_database function, it is no longer needed.
418         Flush the global database on reload.
419
420         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
421         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
422
423         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
424         Add _dbus_user_database_flush_system. 
425         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
426         Small unrelated change in _dbus_is_a_number: change 
427         _dbus_string_parse_int to _dbus_string_parse_uint. 
428
429         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
430         _dbus_groups_from_uid.
431
432         * bus/policy.c, bus/policy.h: Change call to 
433         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
434         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
435         needs it.
436
437 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
438
439         * bus/signal.c: Fix match_rule_equal errata
440         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
441         <kimmo.hamalainen@nokia.com>)
442
443 2006-11-19  Thiago Macieira  <thiago@kde.org>
444
445         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
446         _dbus_pthread_condvar_wait,
447         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
448         pthread_self() after coming back from a conditional variable
449         wait as well as in one codepath where it was forgotten.
450         Approved by: Havoc Pennington.
451
452 2006-11-17  Havoc Pennington  <hp@redhat.com>
453
454         * update-dbus-docs.sh: allow setting fd.org username via env
455         variable. Make it run autogen with --enable-xml-docs=yes
456         --enable-doxygen-docs=yes so configure will fail if the required
457         tools are missing.
458
459 2006-11-17  Havoc Pennington  <hp@redhat.com>
460
461         * doc/dbus-faq.xml: minor FAQ tweaks
462
463 2006-11-14  Havoc Pennington  <hp@redhat.com>
464         
465         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
466         dbus_get_local_machine_id() to its own file, no substantive
467         changes. There are a couple other things we might want to add that
468         are "misc" so moving out of dbus-connection.[hc] which is big
469         enough already.
470         
471 2006-11-14  Havoc Pennington  <hp@redhat.com>
472
473         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
474         UUID had the timestamp last, but the implementation had it first;
475         move it to last since I think it's a tiny bit nicer (easier to
476         compare at a glance, faster to sort, less code), and will not
477         cause any practical compatibility problems. Also, always convert
478         the timestamp to big endian.
479
480         * doc/dbus-specification.xml: Clean up the docs on the UUID.
481
482         * tools/dbus-uuidgen.1: more prominently say it is not suitable
483         as a replacement for regular uuidgen/RFC4122.
484
485 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
486
487         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
488         the correct value so we don't assert when initalizing recursive threads
489
490         * test/name-test/test-thread-init.c: call dbus_threads_init_default
491         instead of _dbus_threads_init_debug since it is more of a real world
492         test
493
494 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
495
496         * Released 1.0.0
497
498 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
499
500         * AUTHORS: added Peter and Tor of windows porting fame
501
502 2006-11-08  Havoc Pennington  <hp@redhat.com>
503
504         * doc/dbus-specification.xml: add a note about protocol stability
505
506         * doc/TODO: Remove "important for 1.0" section, replace with
507         "important for 1.2" section
508         
509 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
510
511         * README: remove some of the out of date flags
512
513         * doc/TODO: Remove todo items which are done
514
515 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
516
517         * tools/dbus-monitor.c: Handle sigint so we flush stdout
518         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
519
520 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
521
522         * tools/dbus-monitor.1: update the manpage for dbus-monitor
523         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
524
525 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
526
527         * AUTHORS: Update with all people listed in the ChangeLog
528
529 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
530
531         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
532         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
533
534 2006-11-07  Havoc Pennington  <hp@redhat.com>
535
536         * HACKING: Update release instructions to include stuff about
537         stable releases, branching, etc. May not be totally correct,
538         please fix if needed, but keep instructions up-to-date so we do
539         each stable release consistently in the future.
540
541 2006-11-07  Havoc Pennington  <hp@redhat.com>
542
543         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
544         documentation updates. Bump faq/spec versions (not to 1.0; I don't
545         think the spec will be "finished"/1.0 when we ship the 1.0 library).
546
547 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
548
549         * bus/bus.c: Missed patch - pass in the context to the directory watch
550
551 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
552
553         * Released D-Bus 1.0 RC 3(0.95)
554
555 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
556
557         * bus/activation.c (bus_activation_new): don't fail if we can not read
558         the directory as it may not exist
559
560 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
561
562         * bus/config-parser.c (service_dirs_find_dir): use 
563         _dbus_list_get_next_link so we don't get stuck in an infinite loop
564         (start_busconfig_child): move processing of standard_session_servicedirs
565         tags here because they have no content
566         (bus_config_parser_content): check we don't have content in 
567         standard_session_servicedirs tag
568
569 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
570
571         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
572         Packagers need to own this directory
573
574 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
575
576         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
577         <standard_session_servicedirs> tag with a <sevicedir> tag that
578         points to the test service directory
579
580 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
581
582         * configure.in: Add a check for DIR *dirp->dd_fd
583
584         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
585         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
586         of both Solaris and Irix
587
588 2006-11-01  Havoc Pennington  <hp@redhat.com>
589
590         * bus/dbus-daemon.1.in: document standard_session_servicedirs
591
592 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
593
594         * configure.in: expose DBUS_DATADIR
595         
596         * bus/config-parser.c: add the standard_session_servicedirs element
597         to the parser
598         (bus_config_parser_content): process the standard_session_servicedirs
599         element by getting the standard directories from sysdeps and merging
600         them into the service directory list
601         (test_default_session_servicedirs): make sure we get what we expect
602
603         * bus/session.conf.in: replace the servicedir tag with the 
604         standard_session_servicedirs tag
605
606         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
607         dbus-sysdeps.h to avoid circular header dependencies
608
609         * dbus/dbus-sysdeps.h: add the typedef of DBusList
610
611         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
612         which takes a string of directories delimited by colons, parses them 
613         out, appends a suffix and puts them in a list ignoring empty elements
614         (_dbus_get_standard_session_servicedirs): returns the standard 
615         directories for a session bus to look for service activation files
616         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
617         DBUS_DATADIR directories
618
619         * test/data/valid-config-files/many-rules.conf: add the 
620         standard_session_servicedirs tag to the valid config file tests
621
622 2006-10-30  Havoc Pennington  <hp@redhat.com>
623
624         * tools/dbus-launch.1, doc/TODO: capture intent to change the
625         command line options of dbus-launch a bit post 1.0
626
627 2006-10-27  Havoc Pennington  <hp@redhat.com>
628         
629         * dbus/dbus-connection.c (dbus_connection_open_private): document
630         how to choose shared vs. private connections
631
632 2006-10-27  Havoc Pennington  <hp@redhat.com>
633
634         * dbus/dbus-test.c: enclose more of the file in the
635         DBUS_BUILD_TESTS check.
636
637         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
638         DBUS_DISABLE_ASSERT case.
639
640         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
641         that it only works on the server side
642
643         * dbus/dbus-bus.c: add a global lock covering the BusData we
644         attach to each connection
645         (internal_bus_get): lock our access to the BusData
646         (dbus_bus_register): lock the entire registration process
647         with _DBUS_LOCK(bus_datas). If we get the lock and 
648         registration is already complete, silently return (vs. previous
649         behavior of aborting).
650         (dbus_bus_set_unique_name): lock the BusData
651         (dbus_bus_get_unique_name): lock the BusData
652
653 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
654
655         * bus/config-parser.c (service_dirs_find_dir, 
656         service_dirs_append_unique_or_free, 
657         service_dirs_append_link_unique_or_free): New static methods
658         for only appending unique service directory names into
659         the service directory list
660         (merge_included, bus_config_parser_content): Only add unique
661         service directory names into the list
662
663 2006-10-27  Havoc Pennington  <hp@redhat.com>
664
665         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
666         variables volatile, suggested by Thiago. Document struct fields.
667         (PTHREAD_CHECK): remove pthread error checking if assertions are
668         disabled, should reduce the no-assertions case to the bare
669         minimum code.
670
671 2006-10-26  Havoc Pennington  <hp@redhat.com>
672         
673         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
674         to be recursive
675         (_dbus_pthread_mutex_unlock): make it recursive
676         (_dbus_pthread_condvar_wait): save/restore the recursion count
677         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
678
679 2006-10-26  Havoc Pennington  <hp@redhat.com>
680
681         * doc/dbus-specification.xml: clarify the UUID text slightly
682
683         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
684         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
685         in preparation for being able to extend them for e.g. recursive
686         mutexes.
687
688 2006-10-26  Havoc Pennington  <hp@redhat.com>
689
690         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
691         condition variables relate to recursive mutexes.
692         
693         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
694         dbus/dbus-threads.c: Split the platforms-specific thread 
695         implementations into their own files.
696         
697         * dbus/dbus-sysdeps-pthread.c
698         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
699         was backward. Not that anything uses it.
700
701 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
702
703         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
704         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
705         needs to be cleaned up more.
706
707         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
708         up the CREDS issue.
709
710 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
711
712         * configure.in, dbus-1.pc.in: Check to see if thread methods 
713         are in glibc or libpthread and add -lpthread to the link stage 
714         if it is the latter
715
716 2006-10-26  Thiago Macieira  <thiago@kde.org>
717
718         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
719         bug 8780: the connection lock is only required while recording
720         the shared connection, so protect only that code
721         section. Don't require connection_lookup_shared to return a
722         locked connection.
723
724 2006-10-26  Thiago Macieira  <thiago@kde.org>
725
726         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
727         check if get_machine_uuid() returns NULL before proceeding any
728         further: we can't init the X atoms or create a session file
729         name if there is no machine ID.
730         This solves a crash reported by some users if
731         --exit-with-session was used without --autolaunch=<machine-id>
732
733 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
734
735         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
736         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
737
738         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
739         before we run dbus-launch
740
741         * configure.in: define TEST_BUS_BINARY to be the full path to 
742         dbus-daemon in the build root 
743
744 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
745
746         * dbus/Makefile.am:
747         * tools/Makefile.am:
748         * toos/dbus-uuidgen.1:
749                 Move the machine-id file to /var/lib/dbus 
750
751 2006-10-24  David Zeuthen  <davidz@redhat.com>
752
753         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
754         _dbus_assert (thread_init_generation != _dbus_current_generation)
755         not _dbus_assert (thread_init_generation == _dbus_current_generation)
756
757 2006-10-24  Thiago Macieira  <thiago@kde.org>
758
759         * dbus/dbus-sysdeps.h:
760         * dbus/dbus-sysdeps-unix.c: Add function
761         _dbus_make_file_world_readable that chmods a file to 0644.
762
763         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
764         Avoid writing to the static "argv" array, thereby avoiding a
765         COW on the child process.
766
767         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
768         call _dbus_make_file_world_readable on the created file.
769
770 2006-10-23  David Zeuthen  <davidz@redhat.com>
771
772         * dbus/dbus-memory.c: Use atomic variable to protect
773         n_blocks_outstanding otherwise OOM will be reported using SMP on
774         some arches
775         
776         * bus/dispatch.c: Add missing end of line characters
777
778         * bus/desktop-file.c (parse_section_start, parse_key_value) 
779         (bus_desktop_file_load): Propertly handle OOM
780
781         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
782         thread_init_generation equals _dbus_current_generation, not 0
783
784 2006-10-22  Havoc Pennington  <hp@redhat.com>
785
786         * dbus/dbus-connection-internal.h: move prototype of
787         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
788         it isn't in a public header and doesn't end up in the DBusBus
789         group in Doxygen
790
791 2006-10-21  Havoc Pennington  <hp@redhat.com>
792
793         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
794         the tarball if packagers want to run it
795
796         * cleanup-man-pages.sh: Add a script which munges all the internal
797         API man pages out of the Doxygen output. This reduces the size of
798         the installed man pages from 7 to 2 megs, and avoids
799         namespace-polluting pages. Right now (like Doxygen) this script
800         isn't in the build, it's something packagers can do manually.
801
802 2006-10-21  Havoc Pennington  <hp@redhat.com>
803
804         * dbus/dbus-connection.h: don't include the watch/timeout
805         functions in connection section
806
807 2006-10-21  Havoc Pennington  <hp@redhat.com>
808
809         * Documentation! Whee! Doxygen now 100% silent. If you make it
810         angry again, you will be punished.
811         
812 2006-10-21  Havoc Pennington  <hp@redhat.com>
813
814         * More documentation - all public API now documented according to
815         Doxygen
816
817 2006-10-21  Havoc Pennington  <hp@redhat.com>
818
819         * Document a bunch of undocumented stuff
820         
821 2006-10-21  Havoc Pennington  <hp@redhat.com>
822
823         * Clean up Doxygen group markers for public API so Doxygen finds
824         everything (not comprehensively fixed for private API).
825         Means all remaining Doxygen warnings are just about missing docs
826         and thus pretty simple to resolve.
827         
828 2006-10-21  Havoc Pennington  <hp@redhat.com>
829         
830         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
831
832         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
833         as DBUS_GNUC_DEPRECATED
834
835 2006-10-21  Havoc Pennington  <hp@redhat.com>
836
837         * Move all private API into the private Doxygen group sections of
838         the files, so they don't show up in the public API docs
839         
840 2006-10-21  Havoc Pennington  <hp@redhat.com>
841
842         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
843         dbus_message_iter_get_array_len().
844
845         * throughout: documentation improvements.
846
847 2006-10-20  Havoc Pennington  <hp@redhat.com>
848
849         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
850         matter, and the message-loader-breaker thing since nobody is going
851         to do it.  Add an item to 1.0 about supporting recursive locks
852         in dbus_threads_init_default() though, since it should be easy.
853
854         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
855         Fix this in the !dispatch case to avoid busy-looping after
856         disconnection
857
858         * More misc docs improvements
859
860 2006-10-19  Havoc Pennington  <hp@redhat.com>
861
862         * more Doxygen-related fixes (lots of moving things from the
863         public to internal section in dbus-connection.c)
864
865 2006-10-19  Havoc Pennington  <hp@redhat.com>
866
867         * Fix a pile of Doxygen warnings and missing docs
868
869 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
870
871         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
872         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
873         instead of a void *.  kqueue uses this to get the context's loop
874         while the other modules ignore the parameter.  This allows us to
875         avoid platform conditionals
876
877         * bus/bus.c (process_config_postinit): Pass in the context to the 
878         watch
879
880 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
881
882         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
883         when starting the system bus
884
885 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
886
887         * configure.in: More fixups for cross compile (Patch from 
888         Marco Pracucci <development at pracucci dot com>)
889
890 2006-10-17  Havoc Pennington  <hp@redhat.com>
891
892         * tools/dbus-send.c (main): don't close shared connection, fix
893         from Timo Hoenig
894
895 2006-10-17  Havoc Pennington  <hp@redhat.com>
896
897         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
898
899         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
900         since realistically it doesn't look like we'll be changing it
901         anymore.
902
903 2006-10-17  Havoc Pennington  <hp@redhat.com>
904
905         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
906         be used for return_if_fail type warnings; prefixes the pid, and
907         fatal by default.
908
909 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
910
911         * configure.in: Released 1.0 RC 2(0.94)
912         Add check for -fPIC and enable it if available
913
914 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
915
916         * doc/TODO: Remove the check TODO item
917
918 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
919
920         * dbus-transport-socket.c (exchange_credentials):
921         Print out more detailed errors if reading or sending
922         credentials fail (Patch from Julio M. Merino Vidal 
923         <jmmv at NetBSD dot org>)
924
925 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
926
927         * configure.in: when checking for posix getpwnam_r assume true
928         for cross compiles
929
930 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
931
932         * configure.in: Check for gethostbyname first before we check for it
933         in libnsl.  On gnu systems it is implemeneted 
934
935 2006-10-13  Havoc Pennington  <hp@redhat.com>
936
937         * dbus/dbus-connection.c
938         (dbus_connection_send_with_reply_and_block): fix to handle closed
939         connections, from Tambet Ingo bug #8631
940
941 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
942
943         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
944
945 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
946
947         * test/name-test/Makefile.am: don't link against both libdbus and
948         libdbus-convenience
949
950 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
951
952         * configure.in: check for dirfd even if it is a macro
953         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
954
955 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
956
957         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
958         avoid using dirfd on systems that don't have dirfd 
959         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
960
961 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
962
963         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
964         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
965
966         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
967         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
968         macro because _dbus_abort calls it
969
970         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
971         works
972
973 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
974
975         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
976         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
977
978 2006-10-02  Thiago Macieira  <thiago@kde.org>
979
980         * tools/dbus-launch.c (main): make it complain and abort
981         execution in case an unknown option is given. Also, process
982         the '--' argument as the end of arguments.
983
984 2006-10-01  Havoc Pennington  <hp@redhat.com>
985
986         * tools/dbus-launch.c (print_variables): if no syntax is given,
987         don't print something that's sort-of-half-sh-syntax, just print
988         a plain key-value pairs thing.
989
990         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
991         the local machine representation (but still have the hostname in
992         the display). Remove the hostname from the display if it is
993         localhost. Change session files to be named
994         ~/.dbus/session-bus/machine-display. Change X atoms to be
995         underscore-prefixed so nobody whines about ICCCM compliance.
996         Otherwise name them the same as the env variables.
997         Change session file format to include key-value pairs and an
998         explanatory comment. Keys are the same as the env variables.
999         (set_address_in_x11): X property format can't depend on
1000         sizeof(pid_t) on a particular machine, fix to always be 32 bits
1001
1002         * tools/dbus-launch.c: make --autolaunch take a machine id
1003         argument. If --autolaunch is used with a program to run, complain
1004         for now (but add a FIXME). Also, don't look for existing bus if 
1005         there's a program to run (but add a FIXME).
1006
1007         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
1008         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
1009         just to get this, and avoids duplicating uuid-reading code).
1010
1011         * tools/dbus-launch.1: clarify various things
1012         
1013 2006-10-01  Havoc Pennington  <hp@redhat.com>
1014
1015         * test/test-service.c (path_message_func): remove broken extra
1016         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
1017
1018         * test/test-shell-service.c (path_message_func): same fix
1019         
1020         * dbus/dbus-connection.c
1021         (_dbus_connection_get_dispatch_status_unlocked): break up the
1022         function a little for clarity and fix the notification of
1023         dbus-bus.c to not require dispatch to be complete
1024
1025         * dbus/dbus-connection.c (dbus_connection_unref): improve the
1026         warning when you try to finalize an open connection.
1027         
1028 2006-10-01  Havoc Pennington  <hp@redhat.com>
1029
1030         * dbus/dbus-bus.c
1031         (internal_bus_get): only weak ref the connection; this means 
1032         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
1033         called safely in any context
1034         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
1035         unref
1036
1037         * dbus/dbus-connection.c
1038         (_dbus_connection_get_dispatch_status_unlocked): move
1039         _dbus_bus_notify_shared_connection_disconnected_unlocked here
1040         when queuing Disconnected instead of when the Disconnected message
1041         arrives, so dbus_bus_get() won't return closed connections.
1042         
1043 2006-10-01  Havoc Pennington  <hp@redhat.com>
1044
1045         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
1046         Add a hack to make DBusNewConnectionFunction work right.
1047
1048         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
1049         the hack here. Also, fix the todo about refcount leak.
1050         
1051         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1052         and use the hack here
1053         
1054         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
1055         "shareable" flag; this was completely broken, since it meant 
1056         dbus_connection_open() returned a connection of unknown
1057         shared-ness. Now, we always hold a ref on anything opened 
1058         as shareable.
1059
1060         Move the call to notify dbus-bus.c into
1061         connection_forget_shared_unlocked, so libdbus consistently forgets
1062         all its knowledge of a connection at once. This exposed numerous
1063         places where things were totally broken if we dropped a ref inside
1064         get_dispatch_status_unlocked where
1065         connection_forget_shared_unlocked was previously, so move
1066         connection_forget_shared_unlocked into
1067         _dbus_connection_update_dispatch_status_and_unlock. Also move the
1068         exit_on_disconnect here.
1069
1070         (shared_connections_shutdown): this assumed weak refs to the
1071         shared connections; since we have strong refs now, the assertion 
1072         was failing and stuff was left in the hash. Fix it to close
1073         still-open shared connections.
1074         
1075         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
1076         debug pipe connections
1077         
1078         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
1079         dbus-bus.c if the closed connection is in fact shared
1080         (_dbus_connection_close_possibly_shared): rename from 
1081         _dbus_connection_close_internal
1082         (dbus_connection_close, dbus_connection_open,
1083         dbus_connection_open_private): Improve docs to explain the deal
1084         with when you should close or unref or both
1085
1086         * dbus/dbus-bus.c
1087         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
1088         from _dbus_bus_check_connection_and_unref_unlocked and modify to
1089         loop over all connections
1090
1091         * test/test-utils.c (test_connection_shutdown): don't try to close
1092         shared connections.
1093
1094         * test/name-test/test-threads-init.c (main): fix warnings in here
1095
1096         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
1097         env variable to cause blocking waiting for gdb; drop
1098         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
1099         unconditionally.
1100
1101         * configure.in: add -export-dynamic to libtool flags if assertions enabled
1102         so _dbus_print_backtrace works.
1103
1104         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
1105         instead of _dbus_verbose to print the backtrace, and diagnose lack 
1106         of -rdynamic/-export-dynamic
1107         
1108 2006-09-30  Havoc Pennington  <hp@redhat.com>
1109
1110         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
1111         (internal_bus_get): fix screwy code formatting. whoever committed
1112         that was not paying attention!
1113
1114 2006-09-30  Havoc Pennington  <hp@redhat.com>
1115
1116         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
1117         reflect addition of interfaces.
1118
1119         * doc/dbus-specification.xml: describe a new
1120         org.freedesktop.DBus.Peer.GetMachineId method
1121
1122         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
1123         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
1124         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
1125         at end of skip_white
1126         (_dbus_string_chop_white): new function
1127
1128         * bus/connection.c (bus_connections_setup_connection): call
1129         dbus_connection_set_route_peer_messages.
1130
1131         * dbus/dbus-connection.c
1132         (_dbus_connection_peer_filter_unlocked_no_update): modify to
1133         support a GetMachineId method.
1134
1135         Also, support a new flag to let the bus pass peer methods through
1136         to apps on the bus, which can be set with
1137         dbus_connection_set_route_peer_messages.
1138
1139         Finally, handle and return an error for anything unknown on the
1140         Peer interface, which will allow us to extend the Peer interface
1141         in the future without fear that we're now intercepting something
1142         apps were wanting to see.
1143         
1144         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
1145         dbus/dbus-uuidgen.c
1146
1147         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
1148         binary here, since most of the code is already in libdbus
1149
1150         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
1151         uuid from the system config file
1152
1153         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
1154         (_dbus_read_uuid_file_without_creating) 
1155         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
1156         uuid-related functions, partly factored out from dbus-server.c
1157
1158         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
1159         DBUS_ERROR_FILE_EXISTS instead of EEXIST
1160
1161         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
1162
1163         * tools/dbus-cleanup-sockets.1: explain what the point of this
1164         thing is a bit more
1165
1166         * autogen.sh (run_configure): add --config-cache to default
1167         configure args
1168
1169         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
1170         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
1171
1172         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
1173         don't try to save address, fixes crash in make check
1174         
1175 2006-09-30  Thiago Macieira  <thiago@kde.org>
1176
1177         * configure.in: add DBUS_BINDIR as a #define to C source code.
1178
1179         * tools/dbus-launch.c
1180         * tools/dbus-launch.h
1181         * tools/dbus-launch-x11.c:
1182         * tools/dbus-launch.1: Add the --autolaunch option to
1183         dbus-launch, which makes it scan for an existing session
1184         started with --autolaunch. With that option, it also creates
1185         an X11 window and saves the bus address and PID to it.
1186
1187         * dbus/dbus-sysdeps.h:
1188         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
1189         a function that runs "dbus-launch --autolaunch" to retrieve
1190         the running D-Bus session address (or start one if none was running)
1191
1192         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
1193         address protocol, which tries to get the running session from
1194         dbus-launch.
1195
1196         * dbus/dbus-bus.c:
1197         * dbus/dbus-internals.h: Make "autolaunch:" be the default
1198         D-Bus session bus address.
1199
1200         * dbus/dbus-connection.c: Fix horrible typo in error message.
1201
1202 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
1203
1204         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
1205
1206 2006-09-17  Havoc Pennington  <hp@redhat.com>
1207
1208         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1209         fix so that if unix_user_function is set on windows, we still
1210         do the default check that the auth identity matches the bus identity
1211
1212 2006-09-16  Havoc Pennington  <hp@redhat.com>
1213
1214         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
1215         to _dbus_transport_open_platform_specific,
1216         _dbus_transport_open_socket,
1217         and _dbus_transport_open_debug_pipe
1218
1219         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
1220
1221 2006-09-16  Havoc Pennington  <hp@redhat.com>
1222
1223         Attempt auditing public API to remove all cases where a Unix
1224         function returns weird emulated goo to Windows. This probably 
1225         breaks the bus daemon on Windows, to fix it again we may 
1226         need to stop processing unix-specific config options on Windows,
1227         and may need to add Windows-specific public API or config options.
1228         
1229         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
1230         to reflect added interfaces; should not break soname.
1231         
1232         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
1233         not invoke unix user function on Windows. Kind of a hacky fix, but 
1234         we don't want a "unix uid" leaking out on Windows.
1235
1236         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
1237         to get the socket fd on Windows or UNIX
1238         (dbus_connection_get_unix_fd): make this always fail on Windows
1239
1240 2006-09-16  Havoc Pennington  <hp@redhat.com>
1241
1242         * dbus/dbus-server.c (dbus_server_listen): change how this works
1243         to be able to delegate to a set of handlers that can succeed,
1244         fail, or choose not to handle. Allows us to have 
1245         dbus_server_listen_platform_specific.
1246
1247         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
1248         factor out the tcp socket stuff to be used on windows, leaving
1249         unix domain socket only in dbus-socket-unix.c
1250
1251         * dbus/dbus-transport-socket.c
1252         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
1253         stuff to be used on windows, leaving unix domain socket only 
1254         in dbus-transport-unix.c
1255
1256         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
1257         temporary hack to be sure this fails on windows
1258         (dbus_connection_get_unix_process_id): ditto
1259
1260 2006-09-16  Havoc Pennington  <hp@redhat.com>
1261
1262         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1263         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1264         _dbus_open_socket so the domain/type/protocol from system headers
1265         are not required. This is kind of pointless though unless we move
1266         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1267         sysdeps-unix.c, which would mean adding a wrapper around
1268         bind/listen/etc.
1269         Also, add DBusError to the socket-opening functions so they 
1270         don't require use of errno.
1271
1272 2006-09-16  Havoc Pennington  <hp@redhat.com>
1273
1274         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1275         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1276
1277         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1278         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1279         functions specifically for sockets only, and move generic 
1280         read/write/open/close into unix-specific code.
1281
1282 2006-09-14  Havoc Pennington  <hp@redhat.com>
1283
1284         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1285         complaint about accessing revents when poll returns 0, from Julian Seward.
1286
1287 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1288
1289         * Released 1.0 RC 1 (0.93) 
1290
1291 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1292
1293         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1294         use _dbus_close instead of close
1295
1296 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1297
1298         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1299         credentials.  Fixes "external" authentication under e.g. NetBSD
1300         which does not support any other socket credentials mechanism.
1301         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1302
1303 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1304
1305         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1306         dbus_threads_init and be used by the dbus mutex functions to
1307         avoid deadlocks.
1308
1309         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1310
1311 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1312
1313         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1314         use threadsafe readdir_r instead of readdir
1315
1316 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1317
1318         * dbus-threads.c (dbus_threads_init_default): New method for
1319         initializing the internal thread implementation (Patch from
1320         Alexander Larsson <alexl at redhat dot com>)
1321
1322 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1323
1324         * remove a bunch of todo items from the 1.0 list
1325
1326 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1327
1328         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1329         key not found
1330
1331 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1332
1333         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1334         complex debugging code
1335
1336         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1337         between the test suite ifdefs
1338         (_dbus_verbose_bytes): return if verbosity is not enabled 
1339
1340 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1341
1342         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1343         remove DBusMark
1344
1345 2006-09-10  Havoc Pennington  <hp@redhat.com>
1346
1347        patch mostly by Peter Kümmel, bug #8211
1348         
1349         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1350         unix-specific stuff in dbus-sysdeps.c
1351
1352         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1353         and move unix-specific stuff to dbus-sysdeps-unix.c
1354
1355         * configure.in: check HAVE_ERRNO_H
1356         
1357 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1358
1359         * bus/test-main.c (main): Initialize threading during tests
1360
1361         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1362         Unlock connection on error
1363         (generate_local_error_message): static method for generating
1364         an error message when we don't have a message to reply to
1365         (_dbus_connection_block_pending_call): Send a disconnect error
1366         instead of just a timeout (NULL) when the bus gets disconnected
1367         while blocking for a reply.
1368         
1369 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1370
1371         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1372         filters (Patch from Kimmo Hämäläinen 
1373         <kimmo dot hamalainen at nokia dot com>)
1374
1375 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1376
1377         * dbus/dbus-connection-internal.h: Add prototype for 
1378         _dbus_connection_test_get_locks to remove warning
1379
1380 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1381
1382         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1383         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1384         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1385
1386 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1387
1388         * Clean up close calls to use _dbus_close (Patch from 
1389         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1390
1391 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1392
1393         * doc/TODO:
1394         - Remove pending call locking todo item
1395         - dbus_connection_open now holds hard ref.  Remove todo item
1396         - do proper locking on _dbus_bus_check_connection_and_unref
1397           and handle DBUS_BUS_STARTER. Remove todo item
1398         - Warn on closing of a shared connection.  Remove todo item
1399
1400         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1401         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1402         so we don't get the warning when closing shared connections
1403
1404         * test/test-service.c, test/test-shell-service.c: Applications
1405         don't close shared connections themselves so we unref instead of
1406         close
1407
1408         * test/test-utils.c (test_connection_shutdown): Close the connection
1409
1410         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1411         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1412         method on a locked connection.  
1413         Make sure we call _dbus_connection_unref_unlocked instead of 
1414         dbus_connection_unref also.
1415         Handle DBUS_BUS_STARTER correctly
1416
1417         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1418         Mark as shared and hard ref the connection
1419         (connection_forget_shared_unlocked): Remove the hard ref from the 
1420         connection
1421         (_dbus_connection_close_internal_and_unlock):  New internal function
1422         which takes a locked connection and unlocks it after closing it
1423         (_dbus_connection_close_internal): New internal function which acts
1424         like the origonal dbus_connection_close method by grabbing a connection
1425         lock and calling _dbus_connection_close_internal_and_unlock
1426         (dbus_connection_close): Public close method, warns when the app
1427         trys to close a shared connection
1428
1429 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1430
1431         * bus/driver.c:
1432         (bus_driver_generate_introspect_string): New method for populating
1433         a DBusString with the introspect data
1434         (bus_driver_handle_introspect): Move introspect generation code to 
1435         bus_driver_generate_introspect_string
1436
1437         * bus/main.c:
1438         (introspect): New function which prints out the intropect data and
1439         exits
1440         (main): Add a --introspect switch
1441
1442 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1443
1444         * doc/TODO: Removed dtd publishing item.  
1445         It seems the dtd has already been added at
1446         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1447
1448 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1449
1450         * doc/TODO, various source files: Audited todo's and FIXME's and
1451         prepended the ones we should be looking at with 1.0.  Those
1452         prepended with 1.0? need clerification or might not be needed
1453         for 1.0
1454
1455 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1456
1457         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1458         NULL in the public API (Patch from Kimmo Hämäläinen 
1459         <kimmo dot hamalainen at nokia dot com>)
1460
1461 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1462
1463         * configure.in: Fix for OS-X compile time endian issues (patch from
1464         Benjamin Reed <ranger at befunk dot com>)
1465
1466 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1467
1468         * configure.in: Check for no-common compiler flag (OS-X fix from
1469         Benjamin Reed <ranger at befunk dot com>)
1470
1471 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1472
1473         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1474         <fcrozat at mandriva dot com>)
1475
1476 2006-08-29  Havoc Pennington  <hp@redhat.com>
1477
1478         * test/test-service.c (path_message_func): fix lack of return value
1479
1480         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1481         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1482         any more sense than on anything else in this file.
1483         (_dbus_get_tmpdir): add const to return value, and keep the
1484         results of the various getenv around in a static variable.
1485
1486 2006-08-29  Havoc Pennington  <hp@redhat.com>
1487
1488         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1489         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1490
1491 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1492
1493         * test/Makefile.am: change find to use syntax that works with non
1494         gnu versions of find
1495
1496 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1497
1498         * dbus/dbus-transport.c: fix invalid deref when checking if
1499         a vtable method exists (Patch from Christian Ehrlicher 
1500         <ch dot ehrlicher at gmx dot de>)
1501
1502 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1503
1504         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1505         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1506         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1507         <bernard at brenda-arkle dot demon dot co dot uk>)
1508
1509 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1510
1511         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1512         default case
1513
1514 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1515
1516         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1517         it works on any system providing this interface, not only FreeBSD.
1518         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1519
1520 2006-08-20  Havoc Pennington  <hp@redhat.com>
1521
1522         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1523         the docs
1524
1525 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1526
1527         * Released 0.92 
1528
1529 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1530
1531         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1532         to reflect the init late change
1533
1534         * bus/bus.c (bus_context_new): Check user before we fork so we can
1535         print out an error message a user will be able to see
1536
1537 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1538
1539         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1540
1541         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1542         Add two more global locks for use on windows platforms.  These are
1543         unused on non-windows platforms but are not ifdefed out to avoid
1544         potential bugs (i.e. the few bytes lost does not warrent the extra
1545         maintanence and complexity that having seperate sets of locks would
1546         cause)
1547
1548 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1549
1550         * bus/services.c (bus_registry_acquire_service): Return an error
1551         when an application tries to register the org.freedesktop.DBus Bus Name
1552
1553         * bus/services.c (bus_registry_release_service): Return an error
1554         when an application tries to release the org.freedesktop.DBus Bus Name
1555
1556 2006-08-17  Alp Toker  <alp@atoker.com>
1557
1558         * doc/dbus-specification.xml: Fix some minor typos.
1559
1560 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1561
1562         * configure.in: use $with_init_scripts instead of $operating_system
1563         to determine where to store the pid since the init scripts manipulate 
1564         the pid file (patch from Marcelo Ricardo Leitner 
1565         <marcelo dot leitner at terra dot com dot br>.  
1566
1567 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1568
1569         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1570         static DBusList *uninitialized_condvar_list to support new late 
1571         initialization threading model.  In this model threads can be initialized
1572         even after the D-Bus API has been used but still needs to be initialized 
1573         before the second thread has been started.  Mutexes and condvar addresses
1574         are stored in the two static lists and are replaced with actuall locks
1575         when threads are initalized.
1576         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1577         the location into the static list
1578         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1579         from the static list and freeing the mutex
1580         (_dbus_condvar_new_at_location): New method for creating a conditional 
1581         variable and placing the location into the static list
1582         (_dbus_condvar_free_at_location): New method for removing a conditional
1583         variable location from the static list and freeing the conditional variable 
1584         (init_uninitialized_locks): Atomic method which goes through the static 
1585         lists of mutex and condvar location and updates them with actuall locks
1586         (init_global_locks): changed to init_locks
1587         
1588         * dbus/dbus-connection.c:
1589         (_dbus_connection_test_get_locks): New method for tests to check connections
1590         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1591         condvar API
1592         (dbus_connection_allocate_data_slot): Pass in the global lock address
1593         to _dbus_data_slot_allocator_alloc
1594
1595         * dbus/dbus-dataslot.c:
1596         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1597         instead of the mutex itself
1598
1599         * dbus/dbus-message.c:
1600         (dbus_message_allocate_data_slot): Pass in the global lock address
1601         to _dbus_data_slot_allocator_alloc
1602
1603         * dbus/dbus-pending-call.c:
1604         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1605         to _dbus_data_slot_allocator_alloc
1606
1607         * dbus/dbus-server.c:
1608         (_dbus_server_init_base): Use the new at_location mutex API
1609         (dbus_server_allocate_data_slot): Pass in the global lock address
1610         to _dbus_data_slot_allocator_alloc
1611
1612         * test/name-test/test-threads-init.c: New test case for late thread
1613         initialization
1614
1615 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1616
1617         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1618         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1619         causes compile problems when asserts are turned off
1620         Keeping _dbus_warn for printing out the message so even if
1621         asserts are turned off the user gets the messages that something is 
1622         wrong 
1623
1624 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1625
1626         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1627
1628         * bus/services.c (bus_service_list_queued_owners):
1629         Add a pointer cast to fix compiler warning
1630
1631         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1632         return a NULL instead of FALSE since the return type
1633         is not expecting a boolean
1634
1635         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1636         Remove unused variable
1637
1638         * dbus/dbus-marshal-recursive-util.c (node_new):
1639         return a NULL instead of FALSE since the return type
1640         is not expecting a boolean
1641
1642         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1643         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1644         because we are expecting a pointer not a boolean
1645
1646         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1647         add void as the parameter so some compilers
1648         don't complain
1649
1650         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1651           _dbus_transport_new_for_tcp_socket):
1652         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1653         because we are expecting a pointer not a boolean
1654
1655         * test/shell-test.c (test_command_line):
1656         cast the second argument to _dbus_list_append to avoid compiler
1657         warnings
1658
1659         * test/test-names.c (main): remove unused variable
1660
1661         * test/test-service.c (check_hello_from_self_reply):
1662         Initialize echo_message and echo_reply to NULL
1663         
1664         * test/test-shell-service.c (handle_echo):
1665         Remove unused variable and cast the third parameter passed to
1666         dbus_connection_get_object_path_data to avoid compiler warrnings
1667
1668         * test/name-test/test-names.c (clear_message_queue):
1669         Remove unused function
1670
1671         * test/name-test/test-pending-call-dispatch.c:
1672         Fix format string in printf
1673
1674
1675 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1676
1677         * dbus/dbus-bus.c:
1678         * test/name-test/test-names.c:
1679         Remove test method dbus_bus_connection_get_unique_name because 
1680         we already have public method dbus_bus_get_unique_name that 
1681         does the exact same thing
1682
1683 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1684
1685         * dbus/dbus-signature.c:
1686         fix typos in Julio's previous patch which cause make check to fail
1687
1688 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1689
1690         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1691         In any case it was wrong since this is a test checking to see if
1692         address parsing is correct.  There was no need to get the true
1693         tmp directory.  
1694
1695 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1696
1697         * dbus/dbus-macros.h: Revert the addition of stddef.h
1698         as we should not be adding it to library headers 
1699
1700 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1701
1702         * dbus/dbus-signature.c:
1703         Fix the unit tests so that they work if assertions are not enabled.
1704         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1705
1706 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1707
1708         * tools/run-with-tmp-session-bus.sh:
1709         * test/name-test/run-test.sh:
1710         Remove bashisms (patch from Julio M. Merino Vidal
1711         <jmmv at NetBSD dot org>)
1712
1713 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1714
1715         * configure.in: add a version (>= 2.6.0) check for libxml2
1716
1717 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1718
1719         * configure.in: make sure the compiler supports -Wfloat-equal
1720         
1721         * bus/dir-watch-dnotify.c: move functional code after 
1722         variable declerations (C99 fix)  (patches from Jens Granseuer
1723         <jensgr at gmx dot net>
1724
1725 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1726
1727         * dbus/dbus-macros.h:
1728         add #include <stddef.h> so that Sun compilers don't complain about
1729         the defining NULL
1730
1731 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1732
1733         * dbus/dbus-sysdeps.c:
1734         * dbus/dbus-address.c:
1735         * bus/activation.c:
1736         * test/shell-test.c:
1737         don't hardcode tmp directory (patch from Dave Meikle 
1738         <dmk at davemeikle dot co dot uk>)
1739
1740 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1741
1742         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1743         Change an assert to a detailed warning and abort.  
1744         When allocator->lock != mutex it indicates that the user has failed
1745         to initalize threads before using the D-Bus library.  This warning
1746         helps the user identify the issue and fix their app.
1747
1748 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1749
1750         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1751         with cleanups of bugs found from Coverity reports:
1752
1753         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1754         close the file on error to avoid a leak
1755
1756         * bus/expirelist.c (bus_expire_list_test):
1757         Check for NULL on dbus_new0
1758
1759         * bus/activation.c (update_directory):
1760         remove dead code
1761
1762         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1763         Fix some leaks
1764
1765         * bus/bus.c (process_config_every_time):
1766         Fixed a leak
1767
1768         * bus/desktop-file.c (parse_key_value):
1769         Fixed leak
1770
1771         * bus/selinux.c (bus_selinux_id_table_insert):
1772         Fixed leak
1773
1774 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1775
1776         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1777         remove dead code
1778
1779 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1780
1781         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1782         #!/bin/bash
1783
1784 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1785
1786         * Doxyfile.in: fix the INPUT line so we can generate docs 
1787         when sourcedir != builddir (patch from Cygwin Ports maintainer
1788         <yselkowitz at users dot sourceforge dot net>
1789
1790 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1791
1792         * dbus/dbus-sysdeps.h:
1793         * dbus/dbus-sysdeps.c: 
1794         * dbus/dbus-string.c: 
1795         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1796         GLib's function which does the same thing
1797
1798         * configure.in:
1799         * bus/Makefile.am:
1800         * bus/dir-watch-default.c:
1801         * bus/dir-watch-dnotify.c:
1802         * bus/dir-watch-kqueue.c:
1803         Add kqueue directory watching for freebsd and split the directory
1804         watching code into seperate files per method/arch
1805         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1806
1807 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1808
1809         * configure.in:
1810         * tools/Makefile.am:
1811         * tools/dbus-launch.c:
1812         * bus/Makefile.am:
1813         allow --with-dbus-daemondir switch to be used to make the
1814         daemon install to a seperate bindir like /usr/libexec
1815         (patch from Brian Cameron <brian dot cameron at sun dot com)
1816
1817 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1818
1819         * bus/Makefile.am (install-data-hook): removed the slash after 
1820         $(DESTDIR) so we don't get the double slash which does not work
1821         in windows (patch from Andras Porjesz 
1822         <andras dot porjesz at siemens dot com>)
1823
1824 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1825
1826         * dbus/dbus-sysdeps.h:
1827         * dbus/dbus-sysdeps.c: 
1828           add _dbus_printf_length (patch from Peter Kümmel 
1829           <syntheticpp at gmx dot net>)
1830
1831 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1832
1833         * dbus/dbus-internals.c: unistd.h is not used 
1834         (_dbus_verbose_real): only enable verbose printing 
1835         if DBUS_VERBOSE environment var is set to '1'
1836         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1837
1838 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1839
1840         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1841         so we still compile on older gcc (patch from Frederic Peters 
1842         <fpeters at 0d dot be>
1843
1844 2006-08-04  Havoc Pennington  <hp@redhat.com>
1845
1846         * configure.in: add -Wdeclaration-after-statement
1847
1848         * dbus/dbus-connection.c: change all the pending call stuff to
1849         reflect the fact that pending call operations use the connection
1850         lock
1851
1852         * dbus/dbus-pending-call.c: add locking here
1853
1854         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1855         field const consistent with how message field is done
1856
1857 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1858
1859         * s/D-BUS/D-Bus/g
1860
1861 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1862
1863         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1864         <in7y118 at public.uni-hamburg dot de> - fix invalid
1865         read/write reported by valgrind
1866
1867 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1868
1869         * Released 0.91
1870
1871 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1872
1873         * dbus/dbus-connection.c:
1874         (_dbus_connection_attach_pending_call_unlocked):
1875         (connection_timeout_and_complete_all_pending_calls_unlocked):
1876         Make sure we set timeout_added on pending calls to FALSE when
1877         we remove the timeout from the connection
1878
1879 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1880
1881         * Removed some extra bindings stuff lingering around (thanks timo)
1882         * dbus-pendingcall.c (_dbus_pending_call_new): 
1883         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1884         when we tried to take a lock on an already locked connection
1885
1886 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1887
1888         * Released 0.90
1889
1890 2006-07-17  Havoc Pennington  <hp@redhat.com>
1891
1892         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1893         ints, reported by Owen Taylor
1894
1895 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1896
1897         * doc/TODO:
1898         * dbus/dbus-bus.c:
1899         * dbus-errors.c:
1900         * dbus/dbus-marshal-validate.c:
1901           Removed TODO items which were fixed or are no longer relevent
1902
1903 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1904
1905         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1906         Remove stray files from the stripped bindings
1907
1908 2006-07-16  Havoc Pennington  <hp@redhat.com>
1909
1910         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1911         Improve the error message on reply timeout
1912
1913 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1914
1915         * Remove all bindings
1916
1917 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1918
1919         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1920         and set pending_reply out arg to NULL is connection is disconnected
1921         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1922         static method for cleaning up pending calls on disconnect
1923         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1924         calls queued timeouts on disconnect 
1925
1926          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1927         Remove 
1928
1929 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1930
1931         * bus/activation.[ch] (bus_activation_list_services): new function to 
1932         get the list of services that can be activated
1933
1934         * bus/dispatch.c: test coverage for the new bus method
1935         ListActivatableNames
1936
1937         * bus/driver.c: new bus method ListActivatableNames to get the list of
1938         services that can be activated
1939
1940         * doc/dbus-specification.xml: ListActivatableNames method documentation
1941
1942 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1943         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1944         source files
1945
1946 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1947         * dbus/dbus-message-factory.c:
1948         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1949
1950 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1951         * dbus/dbus-connection-internal.h:
1952         * dbus/dbus-connection.c:
1953         * file dbus/dbus-pending-call.c:
1954         * dbus/dbus-pending-call.h:
1955         Make DBusPendingCall an opaque type even to D-Bus internals
1956
1957 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1958
1959         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1960         connection_close
1961
1962         * dbus/dbus-connection.c: include dbus-bus.h
1963         (_dbus_connection_read_write_dispatch): make static
1964
1965 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1966
1967         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1968         function
1969         (dbus_connection_dispatch): On disconnect unref any shared connections
1970
1971         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1972         for cleaning up shared connections on disconnect
1973         (internal_bus_get): get a hard refrence to shared connections when
1974         they are created
1975         
1976         * doc/TODO: Remove items which are no longer relevent or have been fixed
1977         Split 1.0 todo items with a 0.90 freeze todo list
1978  
1979 2006-06-14  Ross Burton  <ross@openedhand.com>
1980
1981         * glib/dbus-gobject.c:
1982         Free a leaking GArray (surely not!) in dbus_g_method_return.
1983
1984 2006-06-14  Ross Burton  <ross@openedhand.com>
1985
1986         * tools/Makefile.am:
1987         * tools/dbus-monitor.c:
1988         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1989         Habacker).
1990         
1991 2006-06-14  Ross Burton  <ross@openedhand.com>
1992
1993         * tools/dbus-print-message.c:
1994         Also print the object path when outputting signals or method calls.
1995
1996 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1997
1998         * qt/src/Makefile.am: install the qdbus.h header.
1999         This allows people to actually use the installed code.
2000
2001 2006-06-12  Ross Burton  <ross@openedhand.com>
2002
2003         * glib/dbus-gproxy.c:
2004         Don't leak a GArray when firing signals (thank Rob Taylor for review).
2005
2006 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2007
2008         * Released 0.62
2009
2010 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2011
2012         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
2013         break pedantic builds. Closes bug 6043 (patch approved by
2014         Havoc back in February).
2015
2016 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2017
2018         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
2019         that took a QDBusMessage parameter.
2020         * qt/src/qdbusbus.h: Add a default flag for RequestName.
2021         * qt/tools/dbus.cpp: Don't use automatic call because we might
2022         be calling an async method: request a reply.
2023
2024 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
2025
2026         * test/qt/*: Update the testcases, including testing the new
2027         functionality of sending null QByteArray and QString over the
2028         bus. Add new headertest test and restore the old
2029         qdbusxmlparser test.
2030
2031 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
2032
2033         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
2034         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
2035
2036         * qt/examples/Makefile.am:
2037         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
2038         form.
2039
2040         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
2041         QByteArray() (nulls) over the bus.
2042         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
2043         the one that has the signature suffix stripped.
2044         * qt/src/qdbusreply.h: Make some methods const.
2045
2046 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
2047
2048         Patch from Timo Hoenig <thoenig@suse.de>.
2049
2050         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
2051         required during build to EXTRA_DIST.
2052         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
2053         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
2054         * configure.in: Fix "make dist", take care that the Makefile for
2055         qt/dbus is being generated.
2056
2057 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2058
2059         * bus/bus.c: Fix eavesdropping on method calls
2060
2061 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2062
2063         * configure.in:
2064         * dbus/dbus-userdb-util.c:
2065         Add Solaris console owner patch from Artem Kachitchkine
2066
2067 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
2068
2069         * qt/Makfile.am:
2070         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
2071         reorganisation. Thanks to Timo Hoenig for pointing this out.
2072
2073 2006-06-06  Robert McQueen  <robot101@debian.org>
2074
2075         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
2076           call to dbus_g_type_get_struct.
2077
2078 2006-06-06  Robert McQueen  <robot101@debian.org>
2079
2080         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
2081           pointers were put into a GPtrArray-based specialised collection, and
2082           then freed along with the array. GValues which you add into
2083           collections or maps which have the NOCOPY flag set are assumed to not
2084           belong to the caller, so rather than the existing pointer-stealing
2085           semantics, they are copied instead. Given that the main consumers of
2086           this abstraction are the bindings themselves, I don't think this is
2087           too bad, but others should watch their choice of take vs set_static.
2088
2089 2006-06-06  Robert McQueen  <robot101@debian.org>
2090
2091         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
2092           of g_slist_prepend not being used. Fixed copying of slist-based
2093           specialised collections, then wrote a test case and found that it was
2094           all broken. Went on to fix iterating and appending too. Good thing
2095           nobody uses this code yet.
2096
2097 2006-06-06  Robert McQueen  <robot101@debian.org>
2098
2099         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
2100           the iterators use gvalue_take_ptrarray_value (the GValues themselves
2101           are discarded without unsetting, so it makes no difference whether
2102           we take or set_static). Remove cases for G_TYPE_POINTER because
2103           there really is nothing useful we can do with them in our
2104           specialised types - we *need* boxed copy/free functions at the very
2105           least.
2106
2107 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
2108
2109         * qt/dbus: Add directory. I had forgotten to add this
2110         yesterday after the move...
2111
2112         * qt/examples/Makefile.am:
2113         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
2114
2115         * qt/tools/Makefile.am:
2116         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
2117         Added feature to get and set properties.
2118         Added validation of service, object path and interface names.
2119
2120         * qt/tools/dbusidl2cpp.cpp: Two new features:
2121         1) Allow specifying both the header and the source file names,
2122         by separating them with a colon.
2123         2) Don't write an interface output if the -p switch wasn't
2124         given, but the -a was.
2125
2126         * qt/src/*: Fix usage of Iterators and ConstIterators.
2127         Fix shadowing of variables by other variables (-Wshadow).
2128         Fix keyword-cleanliness in headers.
2129         Fix ASCII-cast (QLatin1String, QLatin1Char).
2130         Fix validation of member names.
2131         Add extra checking of introspection data during XML parsing.
2132         Various bug fixes.
2133
2134 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2135
2136         * dbus/Makefile.am:
2137         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
2138         qt/dbus/qdbus.h now.
2139
2140 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2141
2142         * configure.in: Make --disable-qt actually do
2143           something. Patch inspired by Zack Rusin.
2144
2145 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2146
2147         * qt/: Update to Subversion r548032.
2148         This includes a big reorganisation of the files inside the
2149         subdir.
2150
2151 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
2152
2153         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
2154         clear:  
2155         "Failed to connect to socket <host>:<port> <error>" instead of
2156         "Failed to connect to socket <host>: <error>:<port>"
2157
2158         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
2159         for a tcp transport. 
2160
2161 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2162
2163         * qt/*: Update the QtDBus bindings up to revision 546310 in
2164         Subversion.
2165         This adds the dbuscpp2xml tool, that parses a C++ header and
2166         outputs a D-BUS Introspection XML.
2167
2168 2006-05-21  Havoc Pennington  <hp@redhat.com>
2169
2170         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
2171         is not NULL when it shouldn't be. Also a couple of possible fixes
2172         for #4637 though I don't understand why the bug happens, to be
2173         honest... also the object constructor has an assert name != NULL
2174         and the name is only currently NULL for peer-to-peer proxies that 
2175         I don't think anyone uses? So it should be asserting.
2176         Anyway, for now at least see if we get an earlier assertion failure.
2177
2178         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
2179         apparently broken code to be sure the tests fail and someone 
2180         will fix them...
2181
2182 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
2183
2184         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
2185         and arrays when they had a single element: has_next returns
2186         false, even before you read the element. So, instead, check
2187         the array length.
2188
2189 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2190
2191         * qt/qdbusmessage.cpp:
2192         * qt/qdbustypehelper_p.h:
2193         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
2194         the list is a const-reference
2195
2196 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
2197
2198         * Adding old doc patch that never got applied
2199         
2200         * dbus/bus.c (dbus_bus_add_match): Add documentation
2201
2202         * doc/dbus-specification.xml: Add documentation for the match rules
2203           and the AddMatch and RemoveMatch methods
2204
2205 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
2206
2207         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2208         call (r535506)
2209
2210         * qt/dbusidl2cpp.cpp:
2211         * qt/qdbusabstractadaptor.cpp:
2212         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
2213         sibling of the QDBusAbstractAdaptor objects instead of the
2214         parent. (r535848)
2215
2216         * qt/dbusidl2cpp.cpp:
2217         * qt/qdbusabstractinterface.cpp:
2218         * qt/qdbusabstractinterface.h:
2219         * qt/qdbusabstractinterface_p.h:
2220         * qt/qdbusinterface.cpp: Make properties in interfaces
2221         actually work. The code that was generated would not compile,
2222         due to moc calls to functions that did not exist. They now
2223         shall. (r536571)
2224
2225 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
2226
2227         * Makefile.am:
2228         * configure.in:
2229         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
2230         Thanks to Brad Hards for providing the patch
2231
2232 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2233
2234         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2235         call. (r535506)
2236
2237 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2238
2239         * qt/examples/dbus.cpp: Enhance error messages and use
2240         QDBusInterfacePtr.
2241
2242 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2243
2244         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
2245         and disable the copy operators. (r533772, r534746)
2246
2247         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
2248
2249         * qt/qdbusabstractinterface.cpp:
2250         * qt/qdbusabstractinterface.h: Change the default call mode to
2251         not use the event loop. Add convenience call() methods that
2252         take a CallMode parameter. (r534042)
2253
2254         * qt/qdbusconnection.h: Change the default call mode to not
2255         use the event loop. (r534042)
2256
2257         * qt/qdbusinterface.cpp:
2258         * qt/qdbusinterface.h: Add a method to tell us if the
2259         interface is valid (since we don't return a null pointer
2260         anymore) (r534099)
2261
2262         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2263         (r534101)
2264
2265         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2266         function in two so taht we get the chance to introspect
2267         without having a QDBusMessage (r534102)
2268
2269         * qt/qdbusbus.h:
2270         * qt/qdbusconnection.cpp:
2271         * qt/qdbusconnection_p.h:
2272         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2273         avoid a round-trip to the server when attempting to introspect
2274         one of our own objects. Also make sure the filter functions
2275         match the empty interface as well. (r534108)
2276         Don't keep the connection names. Instead, trust the unique
2277         connection name (r534111)
2278         Remove event loop usage (r534112)
2279
2280 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2281
2282         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2283         Brad Hards.
2284
2285 2006-04-28  Robert McQueen  <robot101@debian.org>
2286
2287         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2288         any order, making it easier for people who inherit from this
2289         object.
2290
2291 2006-04-28  Robert McQueen  <robot101@debian.org>
2292
2293         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2294         of memory from within pointer arrays and lists. Fixes bug #6300.
2295
2296 2006-04-28  Robert McQueen  <robot101@debian.org>
2297
2298         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2299         generating struct signatures. Fixes bug #6083.
2300
2301 2006-04-28  Robert McQueen  <robot101@debian.org>
2302
2303         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2304         to qdbusconnection_p.moc.
2305
2306 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2307
2308         * README, INSTALL: Doc fixes
2309         Patch from Brad Hards <bradh at frogmouth.net>
2310
2311 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2312
2313         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2314         the dynamic meta object. No need to guess which interface to
2315         call.
2316
2317 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2318
2319         * qt/qdbusconnection_p.h:
2320         * qt/qdbusmetaobject.cpp:
2321         * qt/qdbusmetaobject_p.h:
2322         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2323         for the dynamic meta object. No need to guess which
2324         interface to call.
2325         * qt/qdbusabstractinterface_p.h:
2326         * qt/qdbusconnection.cpp:
2327         * qt/qdbusintegrator.cpp:
2328         * qt/qdbusinterface.cpp:
2329         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2330         Add a QDBusRef that looks and behaves like DCOPRef.
2331
2332 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2333
2334         * dbus/dbus-connection.c: Interfaces are optional in method
2335         calls, so don't give up if the interface parameter is NULL.
2336         Patch reviewed by Havoc Pennington.
2337
2338 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2339
2340         * qt/qdbusreply.h: Add default constructor and operator=
2341           (r532625)
2342         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2343           in public headers (r532952)
2344         * qt/qdbusabstractinterface.cpp:
2345         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2346           make it the default (r532951)
2347
2348 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2349
2350         * dbus/dbus-connection.c: Fix asserts
2351         Patch from Tim Moloney <t.moloney at verizon.net>
2352
2353 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2354
2355         * mono/Connection.cs, mono/Message.cs: Check Target type
2356         Patch from Aaron Bockover (abockover at novell.com)
2357
2358 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2359
2360         * INSTALL: fine-tune the requirements for the Qt4 binding.
2361
2362 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2363
2364         * tools/dbus-print-message.c: Added support for printing of all 
2365           remaining data types. Fixed logic for indentation of compound
2366           data types.
2367         
2368 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2369
2370         * INSTALL: fill out content of file providing DBus specific
2371           build installations, followed by generic Auto* INSTALL file
2372           content
2373         
2374 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2375
2376         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2377           Patch by Stefan Eilers. (r529537)
2378
2379 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2380
2381         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2382           contents (r528208)
2383
2384 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2385
2386         * qt/Makefile.am: fix the dependency for
2387           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2388           not in qdbusconnection.cpp.
2389           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2390           spotting this.
2391
2392 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2393
2394         * qt/examples/listnames.cpp:
2395         * qt/examples/Makefile.am: Three ways to list the names on the
2396           bus.
2397
2398 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2399
2400         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2401           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2402
2403 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2404
2405         Merge from Subversion:
2406         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2407           something that exists (r526315)
2408         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2409           slots/signals (r526316)
2410         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2411           also return an unknown-method error if the parameters don't
2412           match for org.freedesktop.DBus.Properties. (r526842)
2413         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2414         * qt/qdbusintegrator.cpp: Restore the proper order of
2415           delivery: don't make method returns be delivered on priority
2416           (r528150)
2417
2418 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2419
2420         * configure.in qt/Makefile.am: add qt/examples
2421         * qt/examples: Add QtDBus example programs:
2422           - hello: Hello, World
2423           - ping: Simple method-calling program
2424           - pong: Simple object-exporting program (not using adaptors)
2425           - complexping: Interactive method-calling program 
2426                 (also gets and sets properties).
2427           - complexpong: Sample program exporting methods, signals and
2428                 properties, using adaptors.
2429           - dbus: Simple implementation of a generic method-calling
2430                 program, similar to 'dbus-send', but with semantics
2431                 similar to 'dcop'.
2432           - chat: Simplistic chat program, implemented using signals
2433                 and the system bus. Looks like IRC.
2434
2435 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2436
2437         * configure.in: Detect QtGui (necessary for one of the
2438           example programs). Note: this increases the minimum required
2439           version of Qt to 4.1.3.
2440
2441 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2442
2443         * test/qt/*: Sync with KDE Subversion revision 523647.
2444         Update the testcases to the new API. Remove testcases for
2445         classes that are no longer public or have been removed.
2446
2447 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2448
2449         * qt/*: 
2450         * dbus/qdbus.h: Sync with KDE Subversion revision
2451         523647. Hopefully, this will be the last of the
2452         source-incompatible changes. Documentation has been improved;
2453         support for QList<basic-types> has been added; QDBusObject is
2454         gone; QDBus(Abstract)Interface is now a QObject with
2455         auto-generated meta-object; QDBusIntrospection is marked
2456         private, since QMetaObject can be used now; lots of bugfixes.
2457
2458 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2459
2460         Patch from Milosz Derezynski <internalerror at gmail.com>
2461         
2462         * configure.in:
2463         Output the service directory in the configure summary
2464
2465         * dbus-1.pc.in:
2466         Add session_bus_services_dir
2467
2468 2006-03-10  Ross Burton  <ross@openedhand.com>
2469
2470         * tools/dbus-print-message.c:
2471         Add support for object paths and signatures.
2472
2473 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2474
2475         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2476         config reload.
2477         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2478         information caches
2479         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2480         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2481         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2482         * dbus/dbus-userdb.h: Add function to flush all user/group information
2483         caches.
2484
2485 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2486
2487         * qt/dbusidl2cpp.cpp:
2488         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2489         for dcopidl2cpp, found in the KDE installations (or the more
2490         modern kalyptus): generate Qt4 C++ code for the input XML
2491         introspection. Currently no IDL parsing.
2492
2493 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2494
2495         * test/qt/*: Update the self-tests.
2496
2497 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2498
2499         * qt/*: 
2500         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2501         represents the first feature-complete version of the Qt4
2502         bindings since I took ove maintainership.
2503
2504 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2505
2506         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2507         dir. This is C++, so we can't use the DBus ones.
2508
2509 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2510
2511         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2512         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2513
2514 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2515
2516         * dbus/dbus-connection.c: 
2517         (_dbus_connection_block_pending_call):
2518         Check to see if our data has already been read off the connection
2519         by another blocking pending call before we block in poll.
2520         (check_for_reply_and_update_dispatch_unlocked):
2521         Code taken from _dbus_connection_block_pending_call - checks for
2522         an already read reply and updates the dispatch if there is one.
2523
2524         * test/name-test/test-pending-call-dispatch.c:
2525         New test for making sure we don't get stuck polling a 
2526         dbus connection which has no data on the socket when
2527         blocking out of order on two or more pending calls.
2528
2529 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2530
2531         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2532         make/automake don't detect that we're talking about the same
2533         .lo file if I specify the full path to the source files.
2534
2535 2006-02-26  Havoc Pennington  <hp@redhat.com>
2536
2537         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2538
2539         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2540         session bus variable is unset, suggest "man dbus-launch" and "man
2541         dbus-daemon" to figure out how to fix the problem
2542
2543 2006-02-25  Havoc Pennington  <hp@redhat.com>
2544
2545         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2546         should make this thing use the new glib options parser
2547
2548 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2549
2550         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2551         .lo files taking moc sources.
2552
2553 2006-02-25  Havoc Pennington  <hp@redhat.com>
2554
2555         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2556         and install it as a public header
2557
2558 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2559
2560         * Released 0.61
2561
2562 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2563         
2564         * proxies.py: Fix the callchain
2565
2566 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2567         
2568         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2569
2570         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2571         dbus/dbus-sysdeps.c
2572
2573         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2574         call _dbus_group_info_free_allocated which causes infinite loop,
2575         correctly call _dbus_group_info_free
2576
2577 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2578
2579         * qt/qdbusinterface_p.h:
2580         * qt/qdbusinterface.cpp: Use the standard
2581         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2582         calls instead of creating one for us.
2583
2584         * qt/qdbusconnection_p.h:
2585         * qt/qdbusintegrator.cpp: Remove debugging code.
2586
2587         * qt/qdbusintegrator.cpp:
2588         * qt/qdbusmessage.cpp:
2589         * qt/qdbusmessage_p.h:
2590         * qt/qdbusmessage.h: Change the behaviour of automatic
2591         reply-sending: now a reply is always sent, unless the caller
2592         didn't request one or if the user slot has already sent one.
2593
2594 2006-02-16  Robert McQueen  <robot101@debian.org>
2595
2596         * configure.in: Patch from Debian packages by Sjoerd Simons
2597         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2598         arguments so it's possible to build both bindings in the
2599         same tree.
2600
2601         * qt/Makefile.am: Fix truncated value so that make dist works.
2602
2603 2006-02-16  Robert McQueen  <robot101@debian.org>
2604
2605         * acinclude.m4, configure.in: Patch from Brad Hards
2606         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2607         improving quoting, re-ordering a few checks, and a few other
2608         aesthetic tidy-ups.
2609
2610 2006-02-16  Robert McQueen  <robot101@debian.org>
2611
2612         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2613         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2614         assertion that the next element to read from the iter is fixed in
2615         size. This is not the case when you are at the end of the iter,
2616         because the next element type is INVALID.
2617
2618         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2619         a bogus assert which means that you may not initialise a 0-length
2620         string unless you provide a non-NULL pointer. This prevented
2621         you from marshalling messages containing zero-length arrays in
2622         some cases.
2623
2624         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2625         from Rob to correct bogus asserts when trying to demarshal an
2626         array and get_fixed_array got you 0 elements. Append nothing to
2627         the GArray in this case.
2628
2629         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2630         an empty array via the glib bindings. Without all of the above
2631         patches, this new test fails.
2632
2633 2006-02-16  Robert McQueen  <robot101@debian.org>
2634
2635         * glib/dbus-gmain.c: Make the previous commit compile.
2636
2637         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2638         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2639         specify sender_keyword="foo", path_keyword="bar" when adding
2640         a signal listener, so that you can bind to signals generically
2641         but still do something useful in your callback.
2642
2643         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2644         chars so that they're not cast to chars and made negative. Thanks
2645         to Jakub Stachowski for reporting this and testing the fix.
2646
2647 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2648
2649         * dbus/dbus-glib.h:
2650         * glib/dbus-gmain.h:
2651         (dbus_g_connection_open): new method for openning
2652         a connection to an arbitrary address in the glib bindings
2653
2654         * ChangeLog: checkin last entry which doesn't seem to be commited
2655
2656 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2657
2658         * tools/dbus-launch.c: Fixed sh syntax output
2659
2660 2006-02-13  Robert McQueen  <robot101@debian.org>
2661
2662         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2663         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2664         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2665         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2666         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2667         missing piece of the glib bindings jigsaw puzzle. This modifies
2668         the existing specialised types to have N type parameters (rather
2669         than the current 1 or 2 for arrays and dictionaries respectively).
2670         You can then use this to get a glib type to represent any arbitrary
2671         D-Bus struct type using dbus_g_type_get_struct. The only
2672         implementation of these types is with GValueArrays as before,
2673         but it's now possible to store these in arrays, emit them in
2674         signals, etc.
2675
2676 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2677
2678         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2679         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2680         <thiago.macieira at trolltech.com>
2681
2682 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2683
2684         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2685         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2686
2687 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2688
2689         * bus/connection.c (bus_connections_expect_reply): Make
2690         pending reply limit not common to all connections (Bug #5416)
2691         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2692
2693 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2694
2695         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2696
2697 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2698
2699         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2700         patch from Doug Goldstein <cardoe at gentoo.org>
2701
2702 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2703
2704         * mono/Arguments.cs: Fix a magic number in the mono bindings
2705         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2706
2707 2006-01-27  Robert McQueen  <robot101@debian.org>
2708
2709         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2710         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2711         when generating the client-side methods, instead of overloading
2712         CSymbol which broke everything horribly. My apologies.
2713
2714 2006-01-27  Robert McQueen  <robot101@debian.org>
2715
2716         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2717         by me and Rob Taylor to add a simple_free function to D-Bus map
2718         and collection types, which allows those types which can be freed
2719         with a GDestroyNotify (such as GHashTables and GArrays, but not
2720         GPtrArrays) to be stored as the values in hashtables.
2721
2722         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2723         Patch by Rob Taylor to add nested dicts to the glib tests to check
2724         the above code works, and appears not to leak when called repeatedly.
2725
2726 2006-01-27  Robert McQueen  <robot101@debian.org>
2727
2728         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2729         to free a D-Bus allocated string with dbus_free () instead of
2730         g_free ().
2731
2732 2006-01-27  Iain Holmes  <iain@openedhand.com>
2733
2734         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2735         method from being called multiple times.
2736
2737 2006-01-19  Robert McQueen  <robot101@debian.org>
2738
2739         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2740         <rob.taylor@collabora.co.uk> to add support for generating bindings
2741         to arrays that are represented as GPtrArrays rather than GArrays (ie
2742         size-variable things, such as strings, objects, structs, etc).
2743
2744 2006-01-05  Robert McQueen  <robot101@debian.org>
2745
2746         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2747         <ricardo.kekki@movial.fi> to make it possible to inherit from
2748         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2749         a private part, and moving the setting of the DBusGProxyManager into a
2750         connection property, allowing proper GObject construction.
2751
2752 2006-01-05  Robert McQueen  <robot101@debian.org>
2753
2754         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2755         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2756         annotations when generating glib client bindings.
2757
2758 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2759
2760         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2761
2762         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2763
2764 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2765
2766         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2767
2768 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2769
2770         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2771
2772 2005-12-19  Ross Burton  <ross@openedhand.com>
2773
2774         * doc/dbus-tutorial.xml:
2775         Document the Glib client-side bindings, and list all possible annotations.
2776
2777 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2778
2779         * dbus/bus.c (dbus_bus_release_name): Add documentation
2780
2781 2005-12-06  Robert McQueen  <robot101@debian.org>
2782
2783         * python/service.py: s/sucessful/successful/ so we're allocating to
2784         and reading from the same variable. Oops.
2785
2786 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2787
2788         * Released 0.60
2789
2790 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2791
2792         * test/qt/Makefile.am: build from srcdir
2793
2794         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2795         Note - this code is wrong and needs to be fixed by the Qt binding
2796         developers.  The flags should be treated as bitfields and not enums.
2797
2798         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2799
2800 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2801
2802         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2803           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2804           in production code
2805
2806 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2807
2808         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2809         method for getting messages off the bus in the absence of a
2810         mainloop.  This method is much like 
2811         dbus_connection_read_write_dispatch except it does not dispatch
2812         the messages to a registered filter function.  Instead it
2813         allows a developer to process messages by directly popping
2814         them off the bus.
2815
2816 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2817
2818         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2819         the parser to continue instead of returning error
2820         (bus_desktop_file_load): Do not free parser data when
2821         parse_section_start or parse_key_value fails because it was 
2822         already freed by parser_free (patch from Carlos Garcia Campos  
2823         <carlosgc at gnome.org>)
2824
2825 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2826
2827         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2828         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2829         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2830         test/test-segfault.c, test/test-utils.c,
2831         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2832         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2833         Various cleanup of dead code and compiler warnings (patch from
2834         Kjartan Maraas <kmaraas at gnome.org>) 
2835
2836 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2837
2838         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2839         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2840
2841 2005-11-27  Robert McQueen  <robot101@debian.org>
2842
2843         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2844         part of the preceding one. Oops. Merge patch by Johan Hedberg
2845         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2846         on big-endian platforms.
2847
2848         * test/python/test-client.py: Add some 16-bit integers to the test
2849         values.
2850
2851 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2852
2853         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2854         method return message for property getters
2855
2856 2005-11-27  Robert McQueen  <robot101@debian.org>
2857
2858         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2859         with type v of an instance of dbus.Variant(foo, type='x') caused
2860         it to be boxed twice before sending over the bus.
2861
2862         * python/dbus_bindings.pyx, python/service.py,
2863         test/python/test-client.py: Update the constants for the new
2864         request_name flags, and update comments/test cases now that queueing
2865         is the default action.
2866
2867 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2868
2869         * configure.in:
2870         - Change version to 0.60 for impending release
2871         - upped the sonames because of ABI and API breakage
2872
2873 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2874
2875         * configure.in: Add test/name-test/Makefile to the generated
2876         Makefile list
2877
2878         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2879         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2880         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2881         not to queue an ower if it can't be the primary owner
2882
2883         * bus/bus.h: Add new internal BusOwner struct
2884
2885         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2886         to bus_registry_ensure and don't set the prohibit_replacement flag
2887         since they are now set per BusOwner and not per name.
2888         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2889         that returns the list of connections in a name's connection queue
2890         
2891         * bus/services.c (struct BusService): remove prohibit_replacement field
2892         (struct BusOwner): new struct for keeping track of queued connections
2893         and their associated flags for the queue
2894         (struct BusRegistry): add a BusOwner memory pool
2895         (bus_registry_new): initialize the BusOwner memory pool
2896         (bus_registry_unref): free the BusOwner memory pool
2897         (_bus_service_find_owner_link): new internal method for
2898         searching the queue for a specific connection
2899         (bus_owner_set_flags): new method for adding setting the flags on a
2900         bus owner
2901         (bus_owner_new): new method that creates a BusOwner object from the
2902         pool and sets its flags
2903         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2904         (bus_registry_ensure): Add the flags parameter
2905         (bus_registry_acquire_service): Switch from using raw connections to
2906         using the BusOwner struct
2907         Add new state machine for dealing with the new set of flags
2908         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2909         cancel_ownership, free_ownership_cancel_data, 
2910         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2911         restore_ownership, free_ownership_restore_data, 
2912         add_restore_ownership_to_transaction): Switch to using BusOwner 
2913         instead of raw connections
2914         (bus_service_add_owner): Add flags parameter
2915         Switch to using BusOwner instead of raw connections
2916         Add state machine for dealing with the new set of flags
2917         (bus_service_swap_owner): Swaps the first and second owners in the
2918         queue.  Used to make sure proper signals are sent when a service looses 
2919         or gains primary ownership.  We never insert an owner at the top of the
2920         queue.  Instead we insert it in the second position and then swap.
2921         (bus_service_remove_owner): Remove the owner from the queue sending
2922         out the NameLost and NameOwnerChanged signals if the we were the 
2923         primary owner
2924         (bus_service_get_primary_owners_connection): New method that extracts
2925         the connection from the primary owner
2926         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2927         connection
2928         (bus_service_get_allow_replacement): Changed from the old 
2929         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2930         primary owner and returns if it can be replaced or not
2931         (bus_service_set_prohibit_replacement): removed
2932         (bus_service_has_owner): returns TRUE if and owner with
2933         the specified connection exists in the queue
2934         
2935         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2936         method that only compiles if tests are enabled.  Allows us to get the 
2937         unique name of a connection so we can check it against the queue when
2938         doing regression tests
2939
2940         * bus/activation.c (bus_activation_send_pending_auto_activate),
2941         bus/dispatch.c (bus_dispatch),  
2942         bus/driver.c (bus_driver_handle_get_service_owner, 
2943         bus_driver_handle_get_connection_unix_user, 
2944         bus_driver_handle_get_connection_unix_process_id,
2945         bus_driver_handle_get_connection_selinux_security_context),
2946         bus/signals.c (connection_is_primary_owner): 
2947         use bus_service_get_primary_owners_connection instead of
2948         bus_service_get_primary_owner
2949
2950         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2951         _dbus_listen_unix_socket): Calculate the length of the socket
2952         path and use that instead of using a fixed length which was
2953         causing socket names to contain many trailing Nul bytes.
2954
2955         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2956         (dbus_g_method_get_sender): New method for extracting the sender 
2957         from a DBusGMethodInvocation
2958         (dbus_g_method_return_get_reply): changed name to 
2959         dbus_g_method_get_reply
2960         (dbus_g_method_return_send_reply): changed name to
2961         dbus_g_method_send reply
2962
2963         * doc/dbus-specification.xml: New docs that describe how the new
2964         queueing system works and talks about the changes to the how
2965         we specify socket names
2966
2967         * glib/examples/example-service.c, 
2968         glib/examples/example-signal-emitter.c,
2969         glib/examples/statemachine/statemachine-server.c:
2970         Changed the RequestName flags to the new system
2971
2972         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2973         regression test suite for testing various states of the new
2974         queueing system
2975         
2976 2005-11-15  Robert McQueen  <robot101@debian.org>
2977
2978         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2979         Taylor to add two methods, dbus_g_method_return_get_reply and
2980         dbus_g_method_return_send_reply, to allow you to get the reply
2981         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2982         and send it. The GLib bindings can't marshal a return value of
2983         something like a(s) if the array is empty - ultimately they should be
2984         made to heed the signature of the out arguments as the Python bindings
2985         now can, but this is a workable interim solution which might have
2986         other applications.
2987
2988 2005-11-15  Robert McQueen  <robot101@debian.org>
2989
2990         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2991         method to org.freedesktop.DBus to release a bus name or give up
2992         waiting in the queue for it.
2993
2994         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2995         dbus_bus_release_name method to send the ReleaseName method calls.
2996         Add constants for the return values to dbus/dbus-shared.h.
2997
2998         * doc/dbus-specification.xml: Document the new ReleaseName method
2999         in the specification.
3000
3001         * python/dbus_bindings.pyx: Add a low-level python binding for the
3002         release name method.
3003
3004         * python/exceptions.py, python/service.py: Make freeing BusName
3005         objects release the name. Add a NameExistsException, and fix a
3006         bug with creating UnknownMethodException.
3007
3008         * test/python/test-client.py: Add tests for freeing BusName
3009         objects causing names to be released.
3010
3011 2005-11-14  Robert McQueen  <robot101@debian.org>
3012
3013         * python/service.py: Include the traceback in the error reply when we
3014         send an exception over the bus. _BEST_ _PATCH_ _EVER_
3015
3016 2005-11-14  David Zeuthen  <davidz@redhat.com>
3017
3018         Patch from Timo Hoenig <thoenig@suse.de>.
3019
3020         * bus/bus.c: I've recently investigated why the automatic reload
3021         of configuration files does not work as expected.
3022
3023         Currently, reloading configuration files does only work when
3024         running dbus-daemon with --nodaemon.  If we are running as daemon
3025         we're hitting a dnotify bug once we fork the process.
3026
3027         We're initializing the dnotify fds before calling fork().  Once
3028         the child process forked it does still have the fds (and they
3029         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
3030         getting SIGIO as changes are made to the configuration files.
3031
3032         The attached patch moves the initialization of the dnotify fds to
3033         process_config_postinit().  This is safe for all current code
3034         paths and solves the dnotify disfunction.  If we're running
3035         dbus-daemon as daemon the fds for dnotify are now being
3036         initialized after fork() for the child process.
3037
3038         * configure.in: The current configure.in check for dnotify probes
3039         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
3040         match for 'xlinux', too. Additionally I have adapted the configure
3041         option's style to match with the others.
3042
3043 2005-11-14  Robert McQueen  <robot101@debian.org>
3044
3045         * python/decorators.py, python/service.py: Add a new argument to the
3046         dbus.service.method decorator called sender_keyword, which if set,
3047         specifies the name of an argument which will be provided the bus
3048         name of the method caller.
3049
3050         * test/python/test-client.py, test/python/test-service.py: Add a
3051         method and test to check the sender_keyword functionality.
3052
3053 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
3054
3055         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
3056         empty reply so blocking calls don't block forever (Patch from Sjoerd 
3057         Simons <sjoerd at luon.net>)
3058
3059         * AUTHORS: Add Robert McQueen for his work on the Python
3060         Bindings and other parts of D-Bus
3061
3062 2005-11-07  Robert McQueen  <robot101@debian.org>
3063
3064         * python/decorators.py: Change emit_signal function to use the
3065         signature annotation of the signal when marhsalling the arguments from
3066         the service. Fix a bug where the code checking signature length
3067         against argument length referenced the wrong variable.
3068
3069         * python/introspect_parser.py: Avoid adding the type signature of
3070         signal arguments to any methods which occur after them in the
3071         introspection data (!) by making the parser a little more careful
3072         about its current state.
3073
3074         * python/service.py: Remove debug prints from last commit (again :D).
3075
3076         * test/python/test-client.py, test/python/test-service.py: Add test
3077         signals with signature decorators to test the strict marshalling code
3078         gives errors at the right time. Could do with checking the signals
3079         actually get emitted too, given that the test does nothing with
3080         signals at the moment...
3081
3082 2005-11-07  Robert McQueen  <robot101@debian.org>
3083
3084         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
3085         instances to stop madness of creating new instances representing
3086         the same bus connection all the time, rendering any tracking of
3087         match rules and bus names quite meaningless. Caught a bug where
3088         the private argument to SessionBus() and friends was being passed
3089         in as use_default_mainloop by mistake. Still some problems with
3090         multiple dbus_binding.Connection instances representing the same
3091         low-level connection (eg when you use both SessionBus() and
3092         StarterBus() in same process), but it's a lot better now than it
3093         was.
3094
3095         * python/dbus_bindings.pyx: Add constants with the return values
3096         for bus_request_name().
3097
3098         * python/service.py: Store bus name instances in a per-dbus.Bus cache
3099         and retrieve the same instances for the same name, so deletion can be
3100         done with refcounting. Also now throws some kind of error if you
3101         don't actually get the name you requested, unlike previously...
3102
3103         * test/python/test-client.py: Add tests for instance caching of buses
3104         and bus name objects.
3105
3106 2005-11-04  Robert McQueen  <robot101@debian.org>
3107
3108         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
3109         marshalling of boolean values. Add some booleans to the values in
3110         the test client.
3111
3112         * python/decorators.py, python/service.py: Add an 'async_callbacks'
3113         argument to the dbus.service.method decorator, which allows you to
3114         name arguments to take two callback functions for replying with
3115         return values or an exception.
3116
3117         * test/python/test-client.py, test/python/test-service.py: Add test
3118         case using asynchronous method reply functions, both return values and
3119         errors, and from within both the function itself and from a mainloop
3120         callback.
3121
3122         * python/decorators.py, python/service.py: Perform checking that the
3123         number of method/signal arguments matches the number of types in the
3124         signature at class loading time, not when you first introspect the
3125         class.
3126
3127         * python/service.py: Remove debug print left by the last commit.
3128
3129 2005-11-03  Robert McQueen  <robot101@debian.org>
3130
3131         * python/service.py: Heavy refactoring of method invocation, with
3132         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
3133         in favour of a new _message_cb that uses seperate functions for
3134         looking up the method to call, marshalling the return values, and
3135         sending exceptions as errors, and is easier to follow as a
3136         consequence.  Fixes some corner cases about returning things that
3137         don't match your declared out_signature, allows exceptions to define
3138         _dbus_error_name and have it be sent over the bus as the error name,
3139         and paves the way for cool stuff like heeding the message no reply
3140         flag, asynchronous method implementations, informing the method of the
3141         sender, and including backtraces in the error messages.
3142
3143         * test/python/test-client.py: Catch and print exceptions thrown in the
3144         async callback tests, rather than passing them to the low-level
3145         bindings to be ignored in a noisy and frustrating manner.
3146
3147 2005-11-03  Robert McQueen  <robot101@debian.org>
3148
3149         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
3150         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
3151         tweak others to be consistent.
3152
3153         * test/python/test-client.py: Tweak output of testInheritance.
3154
3155 2005-10-29  Robert McQueen  <robot101@debian.org>
3156
3157         * python/service.py: Major changes to allow multiple inheritance
3158         from classes that define D-Bus interfaces:
3159         
3160          1. Create a new Interface class which is the parent class of
3161             Object, and make the ObjectType metaclass into InterfaceType.
3162         
3163          2. Patch written with Rob Taylor to replace use of method_vtable
3164             with code that walks the class's __MRO__ (method resolution order)
3165             to behave like Python does when invoking methods and allow
3166             overriding as you'd expect. Code is quite tricky because
3167             we have to find two methods, the one to invoke which has the
3168             right name and isn't decorated with the /wrong/ interface,
3169             and the one to pick up the signatures from which is decorated
3170             with the right interface.
3171         
3172             The same caveats apply as to normal multiple inheritance -
3173             this has undefined behaviour if you try and inherit from two
3174             classes that define a method with the same name but are
3175             decorated with different interfaces. You should decorate
3176             your overriding method with the interface you want.
3177         
3178          3. Replace grungy introspection XML generation code in the metaclass
3179             with dictionaries that cope correctly with multiple inheritance
3180             and the overriding of methods. This also uses the signature
3181             decorations to provide correct introspection data, including
3182             the debut appearance of the types of your return values. :D
3183
3184         * test/python/test-client.py, test/python/test-service.py: Add a test
3185         case to try invoking an method that overrides one inherited from a
3186         D-Bus interface class.
3187
3188 2005-10-29  Robert McQueen  <robot101@debian.org>
3189
3190         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
3191         Add checking for the end of struct character when marshalling a
3192         struct in MessageIter.append_strict.
3193
3194         * python/examples/example-service.py,
3195         python/examples/gconf-proxy-service.py,
3196         python/examples/gconf-proxy-service2.py: Update to use gobject
3197         mainloop directly rather than appearing to depend on gtk.
3198
3199         * python/test/test-client.py, python/test/test-server.py: Remove
3200         obsolete and broken test scripts for old bindings. We have up to date
3201         and working tests in test/python/.
3202
3203 2005-10-29  Robert McQueen  <robot101@debian.org>
3204
3205         * python/decorators.py: Add optional arguments to the method and
3206         signal decorators to allow you to specify the signature of arguments
3207         and return values. Preserve the doc strings of signal functions in the
3208         decorated version, for pydoc and friends.
3209
3210         * python/dbus_bindings.pyx, python/proxies.py: Replace the
3211         parse_signature_block function with an iterable dbus.Signature()
3212         type. Fix a bug in MessageIter.append_strict where you could append
3213         anything by claiming it was a string.
3214
3215         * python/service.py: Use the out_signature decoration on methods to
3216         marshal return values, meaning you no longer require dbus.Array()
3217         or dbus.Dictionary() to indicate the type when returning empty
3218         arrays or dictionaries. Fix a bug where exceptions which are defined
3219         in __main__ are not turned into error replies.
3220
3221         * test/python/test-client.py, test/python/test-service.py: Add test
3222         for correct marshalling of return values according to out_signature.
3223         Fix a bug in the async call test where the error_handler is missing a
3224         self argument.
3225
3226 2005-10-29  Robert McQueen  <robot101@debian.org>
3227
3228         * glib/Makefile.am, glib/examples/Makefile.am,
3229         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
3230         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
3231
3232         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
3233
3234         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
3235         from Ubuntu by Daniel Silverstone to allow specifying match rules on
3236         the command line.
3237
3238 2005-10-27  Ross Burton  <ross@openedhand.com>
3239
3240         * dbus/dbus-marshal-header.c:
3241         Remove dead code.
3242
3243         * glib/dbus-gobject.c:
3244         Stop compiler warning.
3245
3246 2005-10-25  Ross Burton  <ross@openedhand.com>
3247
3248         * dbus/dbus-auth.c:
3249         * dbus/dbus-server-unix.c:
3250         * dbus/dbus-transport-unix.c:
3251         * glib/dbus-gmain.c:
3252         * glib/dbus-gobject.c:
3253         Add some const keywords.
3254
3255 2005-10-25  Ross Burton  <ross@openedhand.com>
3256
3257         * doc/dbus-specification.xml:
3258         Document the NoReply annotation.
3259
3260         * glib/dbus-binding-tool-glib.h:
3261         * glib/dbus-binding-tool-glib.c:
3262         Respect the NoReply annotation.
3263
3264 2005-10-24  Robert McQueen <robot101@debian.org>
3265
3266         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3267         derive from unicode instead of str, and encode/decode UTF-8 when
3268         marshalling/unmarshalling bus messages
3269
3270         * python/introspect_parser.py: encode introspection data as UTF-8
3271         before passing the buffer into libxml2
3272
3273         * test/python/test-client.py: add unicode test strings
3274
3275         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3276         ignore generated python test files
3277
3278 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3279
3280         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3281         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3282         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3283
3284         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3285         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3286         when constructing struct signatures
3287
3288         * python/_dbus.py (Bus): handle private connections using the
3289         private keyword in the constructor. defaults to private=False
3290         (Bus::close): new method to close a connection to the bus
3291
3292         * python/dbus_bindings.pyx (Connection::close): renamed method
3293         was previously called disconnect
3294         (bus_get): now supports getting a private connection
3295
3296         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3297         keyword is set to True.  if it is, execute the method without waiting
3298         for a reply
3299         (ProxyObject::_introspect_execute_queue): new method for executing
3300         all the pending methods that were waiting for the introspect to
3301         finish.  this is called when introspect either succeeds or fails
3302         (ProxyObject::_introspect_error_handler): call queued methods
3303
3304 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3305
3306         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3307         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3308
3309         * python/service.py (Object::_message_cb): handle exceptions correctly
3310         by sending them over the wire to the calling app.  This makes sure
3311         the client returns immediately instead of waiting the 15 seconds to
3312         timeout.
3313
3314         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3315         Add a test to benchmark how long it takes to introspect a service and 
3316         call a method which returns a large element (pretty fast)
3317
3318         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3319         method which pushes a lot of data
3320
3321 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3322
3323         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3324         reclaim memory outside of the loop and use del istead of just setting
3325         the key to None
3326
3327 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3328
3329         * python/service.py (ObjectType::_reflect_on_signal): Always close
3330         signal tag even when there are no arguments
3331
3332 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3333
3334         * configure.in: Set mono, mono-docs and Qt3 to default
3335         to no instead of auto when building.  These bindings do not
3336         have full time maintainers and will not be supported for the
3337         1.0 release.
3338
3339 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3340
3341         patches from Michael Krivoruchko <misha at sun.com>: 
3342         
3343         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3344         _dbus_connection_message_sent, 
3345         _dbus_connection_send_preallocated_unlocked_no_update, 
3346         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3347         is NULL when calling _dbus_verbose
3348
3349         * configure.in: check for functions getpeerucred and getpeereid
3350
3351         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3352         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3353         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3354         Patch was only tested on Solaris 10 x86 so it might be issues
3355         with other platforms (i.e. BSDs and MacOSX)
3356         
3357
3358 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3359
3360         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3361         instead of marshal basic so we can handle recursive types in a variant
3362
3363         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3364         in variants
3365
3366         * test/glib/test-service-glib.c, test-service-glib.xml
3367         (my_object_echo_variant [EchoVariant], 
3368         my_object_process_variant_of_array_of_ints123
3369         [ProcessVariantOfArrayOfInts123]): 
3370         Add two test methods
3371
3372         * python/introspect_parser.py: New module for parsing introspect
3373         data.
3374
3375         * python/dbus_bindings.pyx:
3376         (various places): when throwing errors fix to use errormsg instead 
3377         of message local variable because Pyrex can get confused with other 
3378         message variables (initial patch by Robert McQueen 
3379         <robert.mcqueen at collabora.co.uk>)
3380         (MessageIter::parse_signature_block): new method for getting the next
3381         block in a signiture.
3382         (MessageIter::append_strict): new method for appending values strictly
3383         using the passed in signature instead of guessing at the type
3384         (MessageItter:: append_dict, append_struct, append_array): use 
3385         signatures to marshal children if the signature is available
3386         
3387         * python/exceptions.py (IntrospectionParserException): new exception
3388
3389         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3390         introspected signatures if available, else we fall back to the
3391         old way of doing things.
3392         (ProxyObject::_introspect_reply_handler ): parse introspection data
3393         
3394         * python/service.py (ObjectType::_reflect_on_method): Properly
3395         terminate <method> if there are no args in the reflection data
3396
3397         * test/python/test-client.py: add tests for talking with the GLib
3398         test server.  This gives us better coverage for introspection since
3399         python to python will always generate arguments as variants.  It also
3400         allows us to test the robustness of the GLib bindings and interlanguage
3401         communications.
3402
3403         
3404 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3405
3406         * bus/driver.c (bus_driver_handle_introspect): Add signals
3407         to the introspect data. (patch from Daniel P. Berrange 
3408         <dan at berrange.com>)
3409
3410         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3411         
3412         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3413         _dbus_connection_run_builtin_filters): Changed these to
3414         be unlock_no_update functions and call 
3415         _dbus_connection_send_unlocked_no_update instead of
3416         dbus_connection_send to avoid locking errors.
3417         
3418         * doc/TODO: Removed the make Ping test TODO
3419         
3420 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3421
3422         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3423         We now copy the message from a DBusError and then free 
3424         the error object befor throwing the error
3425
3426         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3427         DBusBindingOutputMode enum which was causing a warning.
3428         #include <time.h> so using time_t is explicitly defined
3429
3430 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3431
3432         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3433         - dbus/dbus-bus.c
3434         (internal_bus_get): new method that take over the heavy lifting
3435         of dbus_bus_get and adds the ability to get a private connection
3436         to the bus
3437         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3438         interface as in previous versions
3439         (dbus_bus_get_private): new method that is a wrapper to 
3440         internal_bus_get to get a private connection to the bus
3441
3442         - dbus/dbus-bus.h
3443         (dbus_bus_get_private): add as a public libdbus interface
3444
3445         - dbus-1.pc.in: output system_bus_default_address and 
3446         sysconfdir variables so apps can use them when compiling
3447
3448 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3449         * dbus/qt: New Qt bindings
3450
3451 2005-09-12  Waldo Bastian  <bastian@kde.org>
3452
3453         * dbus/dbus-marshal-validate.c,
3454         doc/dbus-specification.xml, test/Makefile.am,
3455         test/test-names.c: allow hyphens in bus names.
3456
3457 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3458
3459         * test/data/auth/fallback.auth-script: we don't
3460         retry the EXTERNAL method when we know its going
3461         to fail anymore.
3462
3463 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3464
3465         * dbus/dbus-connection-internal.h: rename
3466         (add|remove|toggle)_(watch|timeout) to unlocked()
3467         
3468         * dbus/dbus-connection.c: ditto.
3469         
3470         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3471         Update some callers for the renaming.
3472
3473 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3474
3475         * dbus/dbus-auth.c: (record_mechanisms): don't
3476         retry the first auth mechanism because we know
3477         we're just going to get rejected again.
3478         
3479         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3480         Fix thinko ... and what a nasty little bugger to
3481         track down you were ...
3482
3483         * dbus/dbus-connection.c:
3484         (_dbus_connection_add_watch),
3485         (_dbus_connection_remove_watch): add note about
3486         these needing the connection to be locked.
3487         (_dbus_connection_get_dispatch_status_unlocked):
3488         set status to DATA_REMAINS when we queue the
3489         disconnected message.
3490         
3491         * bus/dispatch.c:
3492         (bus_dispatch): fix warning.
3493         (check_existent_service_no_auto_start):
3494         Expect ChildSignaled error too.
3495         (check_existent_hello_from_self): fix another
3496         couple of warnings.
3497         
3498 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3499
3500         Patches from James Willcox <snorp@snorp.net>
3501
3502         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3503
3504         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3505         support array "out" parameters.
3506
3507         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3508         for 16-bit int support.
3509
3510 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3511
3512         * Released 0.50
3513
3514         * Patch from Steve Grubb:
3515         - bus/activation.c (bus_activation_service_reload_test): clean up
3516         some indentation
3517         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3518         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3519         buffer overflows in the test suite.  This is non critical because
3520         it can not be exploited and this code is only run when doing a 
3521         make check.
3522
3523         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3524         - configure.in: Don't check and link against kdecore, only qt headers
3525         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3526         - gcj/org/freedesktop/dbus/Makefile.am:
3527         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3528         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3529         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3530         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3531         - tools/Makefile.am: Add platform extentions to binaries 
3532         (i.e. .exe on windows)
3533
3534         * configure.in: 
3535         - Make it so if no suitable version of python is found we only 
3536         disable building python instead of exiting the configure script
3537         - Require version 2.4 of glib for glib bindings
3538         - Up version to 0.50
3539
3540         * python/__init__.py: Sync version with libdbus to (0,50,0)
3541         
3542 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3543
3544         * dbus/dbus-object-tree.c (find_subtree_recurse):
3545         a couple of optimizations (bug #710):
3546         - do a binary search in the tree
3547         - insert a new child at the right place directly, no need for
3548           qsort anymore
3549         - do the "double alloc" thing when allocating children
3550
3551 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3552
3553         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3554
3555         * python/dbus_bindings.pyx: Memory management foo
3556         (global): remove hacky _user_data_references global list
3557         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3558         tuples. Unref user_data
3559         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3560         (Connection::__del__): Remove and replace with __dealloc__ method
3561         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3562         to keep tuple from being deallocated instead of the global var hack
3563         (Connection::register_object_path): Stuff user_data into a tuple.
3564         Use Py_INCREF to keep tuple from being deallocated instead of the 
3565         global var hack
3566         (Connection::register_fallback): Stuff user_data into a tuple.
3567         Use Py_INCREF to keep tuple from being deallocated instead of the 
3568         global var hack
3569         (GIL_safe_pending_call_notification): Don't unref the message
3570         because it gets unreffed when going out of scope.  Py_XDECREF
3571         the user_data
3572         (PendingCall::__del__): Remove and replace with __dealloc__ method
3573         (PendingCall::set_notify): ref the pending call because we will
3574         need it to stick around for when the notify callback gets called
3575         (Message::__del__): Remove and replace with __dealloc__ method
3576
3577         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3578         gthreads_init to match up with the dbus call
3579
3580         * python/glib.py (init_threads): Changed to threads_init to match
3581         up with gobject.threads_init().  init_threads is kept for backwards
3582         compat but will most likely be deprecated in the future
3583
3584         * test/python/test-client.py: 
3585         - revamp to use Python's unittest functionality
3586         - add async call tests
3587         - setup threads in glib and dbus so we make sure locks are working
3588         
3589 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3590
3591         * python/dbus_bindings.pyx 
3592         (_pending_call_notification, cunregister_function_handler, 
3593         cmessage_function_handler): All callback functions have been rearranged 
3594         to workaround a bug in Pyrex when working with the GIL which is Python's 
3595         global lock when dealing with threads.  They have been split into
3596         a wrapper function (which assumes the name of the old function) and
3597         a _GIL_safe_<function name> function which contains the functionality
3598         of the old function.  This ensures that Pyrex does not write code
3599         the lock is released.
3600         
3601
3602 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3603
3604         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3605         GIL global lock when calling back into Python
3606
3607 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3608
3609         * Release 0.36.2
3610
3611         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3612
3613         * bus/policy.c (bus_policy_allow_user): change default "user is
3614         allowed" to be "user has same uid as the bus itself"; any
3615         allow/deny rules will override.
3616
3617         * bus/session.conf.in: don't allow all users, since now by default
3618         the user that ran the bus can connect.
3619
3620 2005-08-26  Colin Walters  <walters@verbum.org>
3621
3622         * tools/dbus-print-message.c (print_message): Flush stdout
3623         after printing a message, so that redirecting to a file, then
3624         hitting Ctrl-C works.
3625
3626 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3627
3628         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3629         (EmptyMessage): new class that subclasses Message.  This is a workaround
3630         to a Pyrex bug that fails to call __del__ when the Message object goes out
3631         of scope.  For some reason subclassing Message fixes this bug
3632         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3633         - s/Message(_create=0)/EmptyMessage everywhere else
3634         
3635         * test/python/test-{server|client}.py: add the python/.libs directory
3636         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3637         get picked up from the system
3638
3639 2005-08-25  Colin Walters  <walters@verbum.org>
3640
3641         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3642         to Ryan Lortie for the suggestion.
3643
3644 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3645
3646         * test/python: Add python regression test
3647
3648         * configure.in: Add test/python/Makefile
3649
3650         * test/Makefile.am: Add the python directory to SUBDIRS
3651
3652 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3653
3654         * Release 0.36.1
3655
3656         * python/_dbus.py: 
3657         (Interface::connect_to_signal): propigate keywords for match on args
3658         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3659
3660         * python/proxies.py (ProxyObject::connect_to_signal):
3661         propigate keywords for match on args
3662
3663         * Makefile.am: point everything to pyexecdir since python borks
3664         on multilib
3665
3666 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3667
3668         * Release 0.36
3669
3670 2005-08-23  Colin Walters  <walters@verbum.org>
3671
3672         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3673
3674 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3675
3676         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3677         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3678         of defining DBusConnection ourselves.
3679
3680 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3681
3682         * python/dbus.pth: New path file to fix up problems when installing
3683         c libraries to lib64 and python files to lib.
3684
3685         * python/Makefile.am: install dbus.pth in the correct spot
3686
3687 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3688         * ChangeLog: clean up my last entry a bit
3689
3690         * doc/introspect.xsl: New stylesheet for converting introspection data
3691         into browser renderable xhtml. Contributed by Lennart Poettering.
3692
3693         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3694         Poettering.
3695
3696         * doc/dbus-tutorial.xml: 
3697         - Add Colin Walter to the Authors section for authoring the GLib
3698         section
3699         - Add descriptions of the new signature and type functionality
3700         in the Python complex type mapping section
3701         - Add a sidenote on the new args matching functionality in 
3702         the Python bindings
3703         - Fixed up some of the examples to use the gobject.MainLoop
3704         instead of gtk.main
3705         
3706         * python/_dbus.py:
3707         (Bus::_create_args_dict): New. Converts a hash of arg matches
3708         to a more useable format
3709         (Bus::add_signal_receiver): add a **keywords parameter for catching
3710         arg match parameters
3711         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3712         arg match parameters
3713         
3714         * python/matchrules.py:
3715         (MatchTree::exec_matches): Check for arg matches
3716         (SignalMatchRule::add_args_match): New method
3717         (SignalMatchRule::execute): Added args_list parameter as an optimization
3718         so we don't have to marshal the args more than once
3719         (SignalMatchRule::match_args_from_list): New method that checks to see
3720         if the rule's arg matches match an argument list.  Only arguments
3721         set in the rule are checked.
3722         (SignalMatchRule::match_args_from_rule): New method that checks to see
3723         if the rule's arg matches match another rule's.  All args have to match
3724         in order for this method to return true.  If either rule has more args
3725         then it is not a match.
3726         (SignalMatchRule::is_match): Add args match
3727         (SignalMatchRule::repr): Add args to the final output if they exist
3728
3729 2005-08-17  Ross Burton  <ross@burtonini.com>
3730
3731         * glib/dbus-gproxy.c:
3732         (dbus_g_proxy_call_no_reply): unref the message once sent.
3733         (dbus_g_proxy_call): protect against NULL proxy.
3734
3735 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3736
3737         * python/__init__.py: Version updated (0, 43, 0)
3738         
3739         * python/dbus_bindings.pyx: 
3740         - Fixed type objects to have self passed into __init__
3741         - Added the Variant type
3742         - Add the ability to specify types or signatures for Array, Variant 
3743         and Dictionary
3744         (Connection::send_with_reply_handlers): return a PendingCall object
3745         (_pending_call_notification): handle the case when an error is returned 
3746         without an error message in the body
3747         (MessageIter::get_boolean): return True or False instead of an integer
3748         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3749         and add checks for objects with embeded signatures or types (Array, 
3750         Variant and Dictionary)
3751         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3752         (MessageIter::append_dict): handle embeded types or signatures
3753         (MessageIter::append_array): handle embeded types or signatures
3754         (MessageIter::append_variant): new method
3755         
3756         * python/proxies.py:
3757         (DeferedMethod): New. Dummy executable object used when queuing calls 
3758         blocking on introspection data
3759         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3760         or shorter timeouts for method calls
3761         (ProxyObject): Add first pass at an introspection state machine
3762         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3763         introspection. 
3764         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3765         the usual mechanisms for sending messages.  This is to avoid a deadlock
3766         where the Intospect call would be queued waiting for the Introspect 
3767         call to finish ;-)
3768         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3769         when introspection returns with no error
3770         (ProxyObject::_introspect_error_handler): New.  This method is called 
3771         when introspection encounters an error
3772         (ProxyObject::__getattr__): Code to handle different introspection 
3773         states.  Queue async calls or block blocking calls if we are 
3774         introspecting.  Pass through as normal if we are not or are done with 
3775         introspecting.
3776         
3777         * python/service.py: Import signal and method from decorators.py
3778
3779         * python/types.py: Add Variant type
3780
3781 2005-08-16  Colin Walters  <walters@verbum.org>
3782
3783         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3784         DBusError message is NULL.
3785
3786 2005-08-09  Havoc Pennington  <hp@redhat.com>
3787
3788         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3789         malloc'd copy of the name parameter
3790
3791 2005-08-09  Havoc Pennington  <hp@redhat.com>
3792
3793         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3794         warning if the reply serial is set to 0
3795
3796 2005-08-04  Colin Walters  <walters@verbum.org>
3797
3798         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3799         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3800         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3801         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3802         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3803         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3804         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3805         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3806         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3807         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3808         
3809         Prefix name with _ to ensure they're not exported.  All callers
3810         updated.
3811
3812         * glib/dbus-gvalue.c (typecode_to_gtype)
3813         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3814         (signature_iter_to_g_type_dict)
3815         (signature_iter_to_g_type_array)
3816         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3817         (dbus_gtypes_from_arg_signature):
3818         Move to dbus-gsignature.c.
3819
3820         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3821         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3822         (dbus_binding_tool_output_glib_client): Ditto.
3823
3824         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3825         and dbus-gsignature.h
3826
3827         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3828         unused variable.
3829
3830 2005-08-03  Colin Walters  <walters@verbum.org>
3831
3832         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3833         catch any incompatible changes accidentally made.
3834
3835 2005-08-03  Havoc Pennington  <hp@redhat.com>
3836
3837         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3838         typo, from Julien Puydt
3839
3840         * bus/connection.c (bus_connection_disconnected): we were always
3841         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3842
3843 2005-08-01  Colin Walters  <walters@verbum.org>
3844
3845         Patch from Joe Markus Clarke:   
3846         
3847         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3848         use-after-free.
3849
3850 2005-08-01  Colin Walters  <walters@verbum.org>
3851         
3852         Patch from Joe Markus Clarke:   
3853         
3854         * tools/dbus-send.c (main): 
3855         
3856         Don't use C99 style initializers (bug #3933).
3857         
3858 2005-08-01  Colin Walters  <walters@verbum.org>
3859
3860         Patch from Joe Markus Clarke:   
3861
3862         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3863         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3864         * glib/dbus-gobject.c (write_interface):
3865
3866         Don't use C99 style initializers (bug #3933).
3867
3868 2005-07-31  Havoc Pennington  <hp@redhat.com>
3869
3870         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3871         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3872
3873 2005-07-30  Havoc Pennington  <hp@redhat.com>
3874
3875         * fix a bunch of Doxygen warnings and mistakes
3876
3877 2005-07-30  Havoc Pennington  <hp@redhat.com>
3878
3879         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3880         DBUS_BUILD_TESTS since it's now used in production code
3881
3882 2005-07-29  Havoc Pennington  <hp@redhat.com>
3883
3884         * test/glib/test-profile.c (write_junk): initialize the junk
3885         buffer so valgrind doesn't have a breakdown
3886
3887 2005-07-29  Havoc Pennington  <hp@redhat.com>
3888
3889         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3890         (match_rule_matches): remove unused arg
3891         (test_matching): add tests for match_rule_matches()
3892
3893         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3894         do arg0='foo' arg5='bar' in the match rules
3895         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3896
3897         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3898
3899 2005-07-29  Ross Burton  <ross@openedhand.com>
3900
3901         * dbus/dbus-connection.c:
3902         Don't create a DBusCondVar which is never used.
3903
3904 2005-07-27  Ross Burton  <ross@openedhand.com>
3905
3906         * dbus/dbus-message.c:
3907         Reduce the size of the maximum cached message to 10K.
3908
3909 2005-07-25  Ross Burton  <ross@openedhand.com>
3910
3911         * glib/dbus-gproxy.c:
3912         Remove matches when all proxies are unregistered.
3913
3914 2005-07-24  Colin Walters  <walters@verbum.org>
3915
3916         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3917         typedata; recursive arrays won't have it.
3918
3919         * test/glib/test-dbus-glib.c:
3920         * test/glib/test-service-glib.c:
3921         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3922         
3923 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3924
3925         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3926         proxies.py, service.py: Cleanup of code after running it through the
3927         pyflakes code checker mostly dealing with undefined names.  
3928         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3929
3930 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3931
3932         * NEWS: Update to 0.35.2
3933
3934 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3935
3936         * python/_dbus.py: Remove import of the dbus.services
3937         module as it no longer exists (patch from Dimitur Kirov)
3938
3939         * python/service.py (Object::__init__): Fixed typo
3940         s/name/bus_name (patch from Dimitur Kirov)
3941
3942         * python/examples/example-signal-emitter.py: import dbus.glib
3943         to get the main loop and use glib mainloop instead of gtk so
3944         X doesn't have to be running.
3945
3946         * python/examples/example-signal-recipient.py: import dbus.glib
3947         to get the main loop and use glib mainloop instead of gtk so
3948         X doesn't have to be running. Import the decorators module
3949         directly.
3950
3951         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3952         didn't pick up on but are needed to build
3953
3954         * configure.in: upped version to 0.35.2
3955
3956         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3957         added Colin Walters' SELinux API rename patch from head 
3958         s/unix sercurity context/selinux security context/
3959
3960 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3961
3962         * python/Makefile.am: dbus_binding.pxd.in should be included 
3963         in EXTRA_DIST not dbus_binding.pxd
3964         fix up $(srcdir) hopefully for the last time
3965
3966         * NEWS: Update to 0.35.1
3967
3968 2005-07-16  Colin Walters  <walters@verbum.org>
3969
3970         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3971         from bus_driver_handle_get_connection_unix_security_context.  Update for
3972         error usage.
3973         (message_handlers): Update for renames.
3974
3975         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3976         _dbus_string_init failure correctly.
3977         (bus_selinux_append_context): Convert SID to context.  Append it
3978         as a byte array.
3979         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3980         hasn't been called.
3981
3982         * bus/selinux.h: Update prototype.
3983
3984         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3985         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3986
3987 2005-07-15  Colin Walters  <walters@verbum.org>
3988
3989         * doc/TODO: Add note about convenience wrappers.
3990
3991 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3992
3993         * NEWS: Update to 0.35
3994
3995 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3996
3997         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3998         so distcheck doesn't fail
3999
4000         * glib/examples/Makefile.am: Add example-service.xml and 
4001         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
4002
4003         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
4004         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
4005
4006         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
4007         compiler looks in the right places during distcheck
4008
4009 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4010
4011         * glib/example/Makefile.am: Fix a typo which cause make distcheck
4012         to fail
4013
4014 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4015
4016         * python/examples/example-service.py,
4017         python/examples/example-signal-emitter.py: Fixed up examples
4018         for API changes
4019
4020 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4021
4022         * python/__init__.py: Upped to version (0,42,0) because of
4023         the API change
4024
4025 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4026
4027         * ChangeLog: fix date in last entry
4028
4029         * configure.in, bus/system.conf.in: add the ability to configure 
4030         the system bus user at compiletime with the --with-dbus-user flag
4031         (patch from Kristof Vansant)
4032
4033 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4034
4035         * bus/dispatch.c, test/test-service.c: Add testcase
4036         for sending messages to oneself (TODO item).
4037
4038         * python/service.py (class Object): Swap ordering of bus_name 
4039         and object_path parameters to better support inheritance.
4040
4041         * doc/dbus-tutorial.xml: change Python docs to reflect change
4042         in parameter ordering and fix the inheritance section.
4043
4044         * doc/TODO: remove sending message to oneself TODO item
4045
4046 2005-07-15  Ross Burton  <ross@openedhand.com>
4047
4048         * glib/dbus-gproxy.c:
4049         Fix a leak when calling methods via the proxy.
4050
4051 2005-07-15  Colin Walters  <walters@verbum.org>
4052
4053         * bus/selinux.c (bus_selinux_append_context): Wrap in
4054         HAVE_SELINUX.
4055
4056 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4057
4058         * python/_dbus.py (Bus::remove_signal_receiver):
4059         don't add a callback to the match if none has been passed in
4060         
4061         * python/matchrules.py (SignalMatchTree::remove): if the rule
4062         being matched does not have a callback treat it as a wildcard
4063         fix matching logic
4064
4065         * doc/dbus-tutorial.xml: Add Python tutorial
4066
4067 2005-07-14  Colin Walters  <walters@verbum.org>
4068
4069         * bus/driver.c
4070         (bus_driver_handle_get_connection_unix_security_context): New function.
4071         (message_handlers): Add.
4072
4073         * bus/selinux.c (bus_selinux_append_context): New function; appends
4074         security context to message.
4075
4076         * bus/selinux.h: Prototype.
4077
4078         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
4079
4080 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4081
4082         * bus/activation.c: clean up all tabs to be 8 spaces 
4083         (bus_activation_activate_service): make sure we clean up
4084         if activation fails
4085
4086         * bus/dispatch.c: clean up all tabs to be 8 spaces 
4087         (check_shell_fail_service_auto_start): New function
4088         tests to make sure we get fail properly when trying to auto start a service
4089         with a faulty command line
4090         (check_shell_service_success_auto_start): New function tests to make sure
4091         auto started services get the arguments on the command line
4092
4093         * test/test-shell-service.c: Added service for testing auto-starting with 
4094         command line arguments
4095
4096         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
4097         test/data/valid-service-files/debug-shell-echo-success.service.in:
4098         Added service files for testing auto-starting with command line arguments
4099
4100         * */.cvsignore: added a bunch of generated files to various .cvsignore files
4101
4102 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
4103
4104         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
4105         
4106         * dbus/Makefile.am: added new files to build.
4107
4108         * bus/activation.c (bus_activation_activate_service): support
4109         activation commands with parameters.
4110
4111         * test/shell-test.c: added test program for the shell parsing
4112         code.
4113
4114 2005-07-13  David Zeuthen  <davidz@redhat.com>
4115
4116         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
4117         64 bit signed and unsigned parameters
4118
4119 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
4120
4121         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
4122
4123         * python/service.py (class Name): renamed BusName to make it clearer
4124         what the object is for (a name on the bus)
4125
4126         * python/examples/example-service.py,
4127         python/examples/example-signal-emitter.py: change the Name object to
4128         BusName
4129
4130 2005-07-12  Colin Walters  <walters@verbum.org>
4131
4132         Patch from Jim Gettys <Jim.Gettys@hp.com>.
4133
4134         * tools/dbus-launch.c: Include sys/select.h.
4135
4136 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
4137         * python/dbus_bindings.pyx.in: removed
4138
4139         * python/dbus_bindings.pyx: Added.
4140         - Fixed some memleaks (patch from 
4141         Sean Meiners <sean.meiners@linspireinc.com>)
4142         - Broke out the #include "dbus_h_wrapper.h" and put it in its
4143         own pxd file (Pyrex definition)
4144         - Broke out glib dependancies into its own pyx module
4145         
4146         * python/dbus_bindings.pdx: Added.
4147         - Defines C class Connection for exporting to other modules
4148
4149         * python/dbus_glib_bindings.pyx: Added.
4150         - New module to handle lowlevel dbus-glib mainloop integration
4151
4152         * python/glib.py: Added.
4153         - Registers the glib mainloop when you import this module
4154
4155         * python/services.py: Removed (renamed to service.py)
4156         
4157         * python/service.py: Added.
4158         - (class Server): renamed Name
4159
4160         * python/__init__.py: Bump ro version (0,41,0)
4161         -don't import the decorators or service module
4162         by default.  These now reside in the dbus.service namespace
4163
4164         * python/_dbus.py (Bus::__init__): Add code run the main loop 
4165         setup function on creation 
4166
4167         * python/examples/example-service.py,
4168         python/examples/example-signal-emitter.py: update examples
4169
4170         * python/examples/gconf-proxy-service.py,
4171         python/examples/gconf-proxy-service2.py: TODO fix these up
4172
4173         * doc/TODO: Addition
4174         - Added a Python Bindings 1.0 section
4175         - added "Add match on args or match on details to match rules"
4176
4177
4178 2005-07-12  Colin Walters  <walters@verbum.org>
4179
4180         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
4181         (statemachine-glue.h): 
4182         * glib/examples/Makefile.am (example-service-glue.h) 
4183         (example-signal-emitter-glue.h): 
4184         * glib/Makefile.am (dbus-glib-error-switch.h): 
4185         Add libtool --mode=execute so we use the built library instead
4186         of any installed one.
4187
4188 2005-07-11  Colin Walters  <walters@verbum.org>
4189
4190         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
4191         (dbus_g_value_types_init): Remove assertion.
4192         (dbus_g_value_get_g_type, dbus_g_value_open)
4193         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
4194         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
4195         functions related to DBusGValue.  Now we marshal/demarshal
4196         structures as GValueArray.
4197         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
4198         structures.
4199         (signature_iter_to_g_type_array): Don't call
4200         signature_iter_to_g_type_struct.
4201         (signature_iter_to_g_type_struct): Delete.
4202         (dbus_gvalue_to_signature): Delete.
4203         (dbus_gvalue_to_signature): New function with same name as other
4204         one; we can convert structures to signatures.
4205         (demarshal_valuearray): New function.
4206         (get_type_demarshaller): Use it.
4207         (demarshal_recurse): Delete.
4208         (marshal_proxy): New function.
4209         (marshal_map): Warn if we can't determine signature from type.
4210         (marshal_collection_ptrarray): Ditto.
4211         (marshal_collection_array): Ditto.
4212         (get_type_marshaller): Use marshal_valuearray.
4213         (marshal_recurse): Delete.
4214         (_dbus_gvalue_test): Add some tests.
4215
4216         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
4217         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
4218         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4219         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4220         (dbus_g_value_free): Remove prototypes.
4221
4222         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
4223         G_TYPE_VALUE_ARRAY.
4224
4225         * glib/examples/example-service.c:
4226         * glib/examples/example-client.c: Implement GetTuple.
4227
4228         * test/glib/test-dbus-glib.c:
4229         * test/glib/test-service-glib.c:
4230         * test/glib/test-service-glib.xml: Add structure tests.
4231
4232 2005-07-10  Colin Walters  <walters@verbum.org>
4233
4234         * doc/TODO: Knock off some GLib items with this patch.
4235
4236         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
4237         (_dbus_gvalue_signals_error): New functions.
4238
4239         * glib/dbus-gvalue-utils.h: Prototype them.
4240
4241         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
4242         and change to not output const/retval flags for input args.  All
4243         callers updated.
4244         (invoke_object_method): Refactor to handle return values.  Add
4245         some more comments in various places.  Remove debug g_print.
4246
4247         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
4248
4249         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
4250         Handle G_TYPE_NONE.
4251         (compute_gsignature): New function; refactored from code from
4252         compute_marshaller and compute_marshaller_name.  Enhance to
4253         handle return values and async ops more cleanly.  Update for
4254         async ops returning NONE instead of BOOLEAN.
4255         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
4256         and output appropriate string.
4257         (generate_glue): Handle return value annotation.  Also don't dump
4258         constness flag for input arguments.
4259
4260         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
4261         files shared between installed library and utilities.
4262         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4263         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4264         binding tool can access gtype utility functions.
4265
4266         * test/glib/test-service-glib.c: 
4267         * test/glib/test-service-glib.xml: 
4268         * test/glib/test-dbus-glib.c: Add some tests for return values.
4269
4270 2005-07-09  Colin Walters  <walters@verbum.org>
4271
4272         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4273         argument if available, not method.
4274
4275         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4276         (invoke_object_method): First, remove some redundant
4277         GValues (object_value, error_value) in favor of working on
4278         array directly.  Second, rework constness to be less buggy.
4279         Now we iterate directly over the argument metadata instead
4280         of parallel iterating over output signature and metadata.
4281
4282         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4283
4284         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4285         annotation on input args.
4286         
4287 2005-07-09  Colin Walters  <walters@verbum.org>
4288
4289         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4290         Define.
4291
4292         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4293         annotation.
4294
4295         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4296         (method_dir_signature_from_object_info): Handle arg_iterate change.
4297         (write_interface): Ditto.
4298         (lookup_object_info): Don't barf if format_version is > 0.
4299         (invoke_object_method): Handle arg constness.
4300
4301         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4302         (arg_info_new): Create.
4303         (arg_info_unref): Destroy.
4304         (arg_info_get_annotations, arg_info_get_annotation) 
4305         (arg_info_add_annotation): New functions.
4306
4307         * glib/dbus-gidl.h: Prototype them.
4308
4309         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4310         args, disallow them in properties.
4311         (parse_annotation): Handle arg annotations.
4312
4313         * test/glib/test-service-glib.xml: 
4314         * test/glib/test-service-glib.c: Update to make some methods
4315         const.
4316
4317 2005-07-08  Colin Walters  <walters@verbum.org>
4318
4319         * test/glib/test-service-glib.xml: 
4320         * test/glib/test-service-glib.c:
4321         * test/glib/test-dbus-glib.c: Test a{sv}.
4322
4323         * glib/examples/statemachine/statemachine.c:
4324         * glib/examples/statemachine/statemachine-server.c:
4325         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4326         add progress bar, etc.
4327
4328         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4329         needed anymore due to generic array/map marshalling.
4330         (dbus_g_value_types_init): Don't register basic arrays or the
4331         string/string hash.
4332         (dbus_gtype_from_signature_iter): Don't try to recurse into
4333         variants.
4334         (dbus_gtype_to_signature): Check collection/map before type
4335         metadata.
4336         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4337         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4338         generic map creation/append functions instead of hash table
4339         specifically.
4340         (get_type_demarshaller): Handle maps.
4341         (demarshal_collection): Dispatch on collection type to either
4342         demarshal_collection_ptrarray or demarshal_collection_array.
4343         (get_type_marshaller): Handle maps.
4344         (marshal_collection): Dispatch collection type to either
4345         marshal_collection_ptrarray or marshal_collection_array.
4346         (_dbus_gvalue_test): New test.
4347
4348         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4349         (hash_free_from_gtype): Use it to free GValues.
4350         (hashtable_append): New function.
4351         (ptrarray_append): Fix prototype.
4352         (slist_append): Ditto.
4353         (_dbus_gvalue_utils_test): Extend tests.
4354
4355         * glib/dbus-gtype-specialized.c
4356         (dbus_g_type_specialized_init_append): Renamed from
4357         dbus_g_type_specialized_collection_init_append.  Remove const from
4358         value, since we steal it.
4359         (dbus_g_type_specialized_map_append): New function.
4360
4361         * glib/dbus-gtype-specialized.h: Update prototypes.
4362         Add DBusGTypeSpecializedMapAppendFunc.
4363
4364         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4365         _dbus_gvalue_test.
4366         
4367         * glib/dbus-gtest.h: Prototype it.
4368
4369 2005-07-08  Ross Burton  <ross@openedhand.com>
4370
4371         * dbus/dbus-glib.h:
4372         Add DBysGAsyncData for the async bindings.
4373
4374         * glib/dbus-binding-tool-glib.c:
4375         Re-enable the async bindings.
4376
4377         * test/glib/test-dbus-glib.c:
4378         Add a test for the generated async bindings.
4379
4380 2005-07-08  Colin Walters  <walters@verbum.org>
4381
4382         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4383         connection concept.
4384         
4385 2005-07-08  Colin Walters  <walters@verbum.org>
4386         
4387         * tools/Makefile.am: Kill of print-introspect in favor of using
4388         dbus-send --print-reply=literal.
4389
4390         * test/glib/test-service-glib.xml: 
4391         * test/glib/test-service-glib.c (my_object_get_objs): New test
4392         for "ao".
4393
4394         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4395         (main): Test GetObjs.
4396
4397         * glib/examples/statemachine/Makefile.am:
4398         * glib/examples/statemachine/sm-marshal.list:
4399         * glib/examples/statemachine/statemachine-client.c:
4400         * glib/examples/statemachine/statemachine-server.c:
4401         * glib/examples/statemachine/statemachine-server.xml:
4402         * glib/examples/statemachine/statemachine.c:
4403         * glib/examples/statemachine/statemachine.h:
4404         * glib/examples/statemachine/statemachine.xml:
4405
4406         New example.
4407
4408         * glib/examples/example-service.c (main): Move invocation
4409         of dbus_g_object_type_install_info earlier, to emphasize it
4410         should only be done once.
4411
4412         * glib/examples/example-signal-emitter.c (main): Ditto.
4413
4414         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4415
4416         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4417         (dbus_gvalue_marshal): Update prototypes.
4418
4419         * glib/dbus-gvalue.c: Update all marshalling functions to take
4420         const GValue instead of GValue.
4421         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4422         types.
4423         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4424         change.
4425         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4426         Return a newly-allocated string.
4427         (demarshal_proxy, demarshal_object_path, demarshal_object)
4428         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4429         we get the wrong types from message.
4430         (get_type_demarshaller): New function, extracted from
4431         dbus_gvalue_demarshal.
4432         (demarshal_collection): New function, demarshals generic
4433         collection.
4434         (dbus_gvalue_demarshal): Just invoke result of
4435         get_type_demarshaller.  Throw error if we don't have one.
4436         (marshal_garray_basic): Abort on OOM.
4437         (get_type_marshaller): New function, extracted from
4438         dbus_gvalue_marshal.
4439         (collection_marshal_iterator, marshal_collection): New functions;
4440         implements generic marshalling for an iteratable specialized
4441         collection.
4442         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4443
4444         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4445         G_TYPE_STRING.
4446         (ptrarray_value_from_gvalue): Ditto.
4447         (ptrarray_append, ptrarray_free): New functions.
4448         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4449         (slist_append, slist_end_append, slist_free): New functions.
4450         (dbus_g_type_specialized_builtins_init): Add append fuctions
4451         for GPtrArray and GSList.  Register GSList.
4452         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4453
4454         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4455         New.
4456         (dbus_g_type_specialized_collection_init_append)
4457         (dbus_g_type_specialized_collection_append)
4458         (dbus_g_type_specialized_collection_end_append): Prototype.
4459         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4460         end_append_func.
4461
4462         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4463         (dbus_g_type_specialized_collection_append) 
4464         (dbus_g_type_specialized_collection_end_append): New functions.
4465         (dbus_g_type_map_value_iterate): Take const GValue.
4466         (dbus_g_type_collection_value_iterate): Ditto.
4467
4468         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4469         _dbus_gvalue_utils_test.
4470         
4471         * glib/dbus-gtest.h: Prototype it.
4472
4473         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4474         using uninitialized owner_list.
4475         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4476         public API.
4477         (dbus_g_proxy_end_call_internal): Update to use error set
4478         from dbus_gvalue_demarshal instead of setting it here.
4479         (dbus_g_proxy_begin_call): Move return_if_fail here.
4480
4481         * glib/dbus-gobject.c (write_interface): Update for
4482         dbus_gtype_to_signature returning new string.
4483
4484         * configure.in: Add glib/examples/statemachine.
4485
4486 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4487
4488         * configure.in: Add a configure option, --with-console-auth-dir
4489         
4490         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4491         new setting.  Patch from Kay Sievers.
4492
4493 2005-07-06  Colin Walters  <walters@verbum.org>
4494
4495         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4496         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4497         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4498         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4499         Delete in favor of dbus_g_proxy_begin_call and
4500         dbus_g_proxy_cancel_call.
4501         (DBusGProxyCall, DBusGProxyCallNotify): New.
4502         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4503         data, and destroy function.  This replaces
4504         dbus_g_pending_call_set_notify.
4505         (dbus_g_proxy_cancel_call): Prototype.
4506         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4507
4508         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4509         pending_calls map.
4510         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4511         internal proxy for calls to the bus. Remove
4512         pending_nameowner_calls, now the internal proxy keeps track.
4513         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4514         pending_nameowner_calls.
4515         (got_name_owner_cb): Update prototype, and use
4516         dbus_g_proxy_end_call.
4517         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4518         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4519         favor of using internal proxy.
4520         (dbus_g_proxy_manager_unregister): Update to use
4521         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4522         (dbus_g_proxy_init): Initialize pending calls map.
4523         (dbus_g_proxy_constructor): New.
4524         (dbus_g_proxy_class_init): Add get/set property functions,
4525         constructor, and add NAME, PATH, and INTERFACE properties.
4526         (cancel_pending_call): New function.
4527         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4528         cancel them.
4529         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4530         (GPendingNotifyClosure): New structure.
4531         (d_pending_call_notify, d_pending_call_free): Moved here from
4532         dbus-glib.c.
4533         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4534         ordering.
4535         (manager_begin_bus_call): New internal function for talking to
4536         internal bus proxy.
4537         (dbus_g_proxy_new): Construct object using GObjet properties.
4538         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4539         Create closure of same, and insert call into map of pending calls.
4540         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4541         call.  Look up pending call in current set.  Remove it when we've
4542         completed.
4543         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4544         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4545         and destroy function directly.
4546         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4547         (dbus_g_proxy_call): Invoke with NULL callback.
4548         (dbus_g_proxy_cancel_call): New function, replaces
4549         dbus_g_pending_call_cancel.
4550
4551         * glib/dbus-gparser.c (validate_signature): Fix call to
4552         dbus_set_g_error.
4553
4554         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4555         New quark for attaching metadata to GType.
4556         (info_hash): Delete.
4557         (lookup_object_info): Look up using quark.
4558         (dbus_g_object_type_install_info): Check that a type is classed,
4559         not that it's an object.  Also just install type data using quark
4560         instead of using global hash.
4561
4562         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4563         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4564         (GPendingNotifyClosure): Delete.
4565         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4566         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4567
4568         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4569         client method generation until we can fix it...
4570         
4571         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4572         (load_from_service_thread_func): Ditto.
4573
4574         * tools/dbus-names-model.c (struct NamesModel): Hold
4575         DBusGProxyCall.
4576         (have_names_notify): Update prototype, use
4577         dbus_g_proxy_cancel_call.
4578         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4579
4580         * tools/dbus-monitor.c (filter_func): Update for print_message
4581         API change.
4582
4583         * test/glib/test-dbus-glib.c: Add more tests for async
4584         invocations.  Update many begin_call/end_call pairs to just use
4585         dbus_g_proxy_call.
4586
4587         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4588         allows us to dump print-introspect.c.
4589
4590         * tools/dbus-print-message.h (print_message): Add literal argument
4591         to print_message which is intended to allow printing arguments without
4592         metadata like "string=".
4593
4594         * tools/dbus-print-message.c (print_iter): Add literal argument.
4595         (print_message): Allow printing string messages literally.
4596
4597 2005-07-05  Colin Walters  <walters@verbum.org>
4598
4599         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4600         Remove value refcount leak, original patch from Jorn Baayen
4601         <jorn@openedhand.com>.  Also remove useless extra value in favor
4602         of prepending to value array directly.
4603
4604 2005-07-02  Colin Walters  <walters@verbum.org>
4605
4606         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4607
4608 2005-07-01  Colin Walters  <walters@verbum.org>
4609
4610         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4611         
4612         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4613         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4614         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4615         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4616
4617 2005-06-30  Colin Walters  <walters@verbum.org>
4618
4619         * test/glib/test-dbus-glib.c:
4620         * test/glib/test-service-glib.c:
4621         * test/glib/test-service-glib.xml: Update tests for new error
4622         setting bits, also add async tests (patch from Ross Burton).
4623
4624         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4625         DBUS_GLIB_THREADS_LIBS.
4626
4627         * glib/dbus-gproxy.c (get_name_owner)
4628         (dbus_g_pending_call_end_valist): Ditto.
4629
4630         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4631         domain (GQuark) to DBusGErrorInfo.  
4632         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4633         quark in error_metadata.  Take message interface as default
4634         error message interface.
4635         (gerror_to_dbus_error_message): Pass message interface.
4636         (dbus_set_g_error): Resurrected.
4637         (dbus_g_error_info_free): New function.
4638         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4639         of _peek to actually create the object class if it hasn't been
4640         created yet.
4641         (dbus_g_error_domain_register): New function.
4642
4643         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4644
4645         * glib/dbus-gparser.c (validate_signature): Ditto.
4646
4647         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4648         (dbus_g_error_domain_register): Prototype.
4649
4650         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4651         Update tests.
4652
4653 2005-06-29  Colin Walters  <walters@verbum.org>
4654
4655         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4656         DBUS_TYPE_G_OBJECT_PATH.
4657
4658         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4659         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4660         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4661         (dbus_g_object_path_get_g_type): New function.
4662         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4663         to DBUS_TYPE_G_OBJECT_PATH by default.
4664         (demarshal_proxy): Remove unused name variable.
4665         (demarshal_object_path, marshal_object_path): New functions.
4666         (demarshal_proxy_array, marshal_proxy_array): Delete.
4667         
4668         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4669         DBUS_TYPE_G_OBJECT_PATH to char *.
4670         (dbus_g_type_get_lookup_function): Map builtin
4671         DBUS_TYPE_G_OBJECT_PATH.
4672
4673         * test/glib/test-dbus-glib.c
4674         * test/glib/test-service-glib.c (my_object_objpath): 
4675         Adapt tests to new object path marshalling.
4676
4677 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4678
4679         * configure.in: force check for Python >= 2.4
4680
4681 2005-06-29  Colin Walters  <walters@verbum.org>
4682         
4683         Patch from Ross Burton <ross@openedhand.com>
4684         
4685         * glib/dbus-gobject.c (invoke_object_method): Unset object
4686         value in all cases, not only in async case.
4687
4688 2005-06-29  Colin Walters  <walters@verbum.org>
4689
4690         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4691         name_call for keeping track of any outgoing GetNameOwner call.
4692         Also add for_owner and associated.
4693         (struct _DBusGProxyManager): Add owner_names, which is hash table
4694         that maps a base name to a list of names it owns (that we're
4695         interested in).  Add pending_nameowner_calls which is a list of
4696         all outstanding GetNameOwner; avoids us having to iterate over
4697         every proxy.  Add unassociated_proxies which keeps track of name
4698         proxies with no associated name owner.
4699         (dbus_g_proxy_manager_unref): Destroy owner_names.
4700         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4701         name refcounts.
4702         (find_name_in_info, name_owner_foreach)
4703         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4704         (dbus_g_proxy_manager_monitor_name_owner)
4705         (dbus_g_proxy_manager_unmonitor_name_owner)
4706         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4707         New functions; they manipulate the owner_names mapping.
4708         (got_name_owner_cb): New function.
4709         (get_name_owner): New function, extracted from
4710         dbus_g_proxy_new_for_name_owner.
4711         (dbus_g_proxy_manager_register): For now we need to keep track of
4712         all NameOwnerChanged.  Also if the proxy is for a name, if we
4713         don't already know the name owner, queue a new GetNameOwner
4714         request and add it to our list of unassociated proxies.  Otherwise
4715         inc the refcount.
4716         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4717         cancel any pending GetNameOwner call, etc.
4718         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4719         the owner_names mapping to look up the current names for the
4720         signal source, and dispatch to any proxies for that name.
4721         (dbus_g_proxy_new): Initialize new members.
4722         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4723         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4724         (dbus_g_pending_call_end_valist): New function, extracted from
4725         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4726         but want to use the GLib infrastructure.  Also note how many
4727         arguments in reply were over.
4728         (dbus_g_pending_call_end): New function, just call
4729         dbus_g_pending_call_end_valist.
4730         (dbus_g_proxy_end_call_internal): Just call
4731         dbus_g_pending_call_end_valist.
4732
4733         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4734         of builtin marshaller for STRING_STRING_STRING.
4735
4736         * test/glib/test-dbus-glib.c: 
4737         * test/glib/test-service-glib.c:
4738         * test/glib/test-service-glib.xml:
4739         Extend tests to cover name proxies, destruction of owner proxies,
4740         etc.
4741         
4742         * glib/examples/example-signal-recipient.c
4743         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4744         
4745         * tools/dbus-send.c (main): Print D-BUS error name in addition
4746         to message.
4747
4748 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4749
4750         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4751         cmessage_function_handler): Patch from 
4752         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4753         by using the Py_GILState_Ensure/Release to synchronize with the
4754         python runtime.
4755         
4756 2005-06-28  Ray Strode  <rstrode@redhat.com>
4757
4758         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4759         babysitter helper process on last unref, bug #2813.
4760
4761 2005-06-27  Colin Walters  <walters@verbum.org>
4762
4763         * test/glib/test-dbus-glib.c: 
4764         * test/glib/test-service-glib.c:
4765         * test/glib/test-service-glib.xml:
4766         Test hash table signal emitting.
4767
4768         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4769         types to their fundamental basis types, since this is what
4770         marshallers operate on.  Also add an entry for VOID__BOXED.
4771         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4772
4773 2005-06-26  Havoc Pennington  <hp@redhat.com>
4774
4775         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4776         from Don Park
4777
4778 2005-06-26  Colin Walters  <walters@verbum.org>
4779
4780         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4781         (dbus_g_error_set): New public function from its ashes; used by
4782         both service-side method implementation and GLib bindings
4783         internals.
4784         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4785         (_dbus_glib_test): Add some tests.
4786
4787         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4788
4789         * test/glib/test-service-glib.c (my_object_throw_error): Use
4790         dbus_g_error_set.
4791
4792         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4793         errors thrown by dbus_g_error_set.
4794
4795         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4796
4797         * glib/dbus-gparser.c (validate_signature): Ditto.
4798
4799         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4800         (dbus_g_proxy_end_call_internal): Ditto.
4801
4802         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4803         converts DBUS_ERROR_x to DBUS_GERROR_x.
4804         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4805
4806         * doc/TODO: Remove error TODO.
4807
4808         * doc/dbus-tutorial.xml: Update with documentation about error
4809         handling.
4810
4811         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4812         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4813         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4814
4815 2005-06-22  Colin Walters  <walters@verbum.org>
4816         
4817         Patch from Ross Burton <ross@openedhand.com>
4818
4819         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4820
4821 2005-06-20  Colin Walters  <walters@verbum.org>
4822
4823         * configure.in: Add glib/examples.
4824
4825         * glib/Makefile.am: Add examples/
4826
4827         * glib/examples/.cvsignore
4828         * glib/examples/Makefile.am
4829         * glib/examples/example-client.c
4830         * glib/examples/example-service.c
4831         * glib/examples/example-service.xml
4832         * glib/examples/example-signal-emitter.c
4833         * glib/examples/example-signal-emitter.xml
4834         * glib/examples/example-signal-recipient.c:
4835         New files; GLib binding examples, ported from
4836         python/examples.
4837
4838 2005-06-20  Colin Walters  <walters@verbum.org>
4839
4840         * dbus/dbus-glib.h: 
4841         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4842         dbus_g_proxy_call.
4843
4844         * glib/dbus-binding-tool-glib.c: 
4845         * doc/dbus-tutorial.xml: 
4846         * test/glib/test-dbus-glib.c: Update for rename.
4847         
4848 2005-06-20  Colin Walters  <walters@verbum.org>
4849
4850         Patch suggested by Ross Burton <ross@openedhand.com>
4851
4852         * glib/dbus-gobject.c (export_signals): Free signal name.
4853         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4854         memory leak.  Add a bit of documentation.
4855         (dbus_g_method_return_error): Free context, and note we do
4856         so.
4857
4858 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4859
4860         * dbus/dbus-glib.h:
4861         * glib/dbus-gobject.c:
4862         * glib/dbus-gproxy.c:
4863         * glib/dbus-gvalue.c: Predeclare structs as 
4864         typedef struct _Something Something instead of 
4865         typedef struct Something Something, so we can 
4866         redeclare the prototypes. Other GNOME libraries 
4867         do this already.
4868
4869 2005-06-17  Colin Walters  <walters@verbum.org>
4870
4871         * tools/dbus-names-model.c (have_names_notify): Fix call
4872         to dbus_g_proxy_end_call.
4873         
4874 2005-06-17  Colin Walters  <walters@verbum.org>
4875
4876         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4877         spew warnings if we get malformed remote signals.
4878
4879         * glib/dbus-gobject.c (propsig_iterate): New function.
4880         (lookup_object_info): New function, extracted from
4881         lookup_object_and_method.
4882         (introspect_properties, introspect_signals): Delete; these
4883         are merged into write_interface.
4884         (write_interface): Write out signals and properties here;
4885         dump the org.gtk.object stuff and use the interface given
4886         in the introspection data blob.  Also fix up property XML.
4887         (lookup_values): New function.
4888         (introspect_interfaces): Gather a mapping from interface to a
4889         list of its methods, signals, and properties, then write out
4890         each interface.
4891         (lookup_object_and_method): Use lookup_object_info.
4892         (struct DBusGSignalClosure): Add interface.
4893         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4894         we can just use the constant data.
4895         (dbus_g_signal_closure_finalize): Don't free signal name.
4896         (signal_emitter_marshaller): Use interface from signal closure.
4897         (export_signals): Only export signals mentioned in introspection
4898         blob.
4899         (dbus_g_connection_register_g_object): Warn if we have no
4900         introspection data for an object.
4901         (funcsig_equal): Remove unused variable.
4902         (dbus_g_object_register_marshaller): Take varargs instead of
4903         list.
4904         (dbus_g_object_register_marshaller_array): New function,
4905         extracted from old dbus_g_object_register_marshaller.
4906
4907         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4908         signals and property data.
4909         (write_quoted_string): New function, extracted from generate_glue.
4910         (generate_glue): Write signals and properties to introspection
4911         blob.
4912
4913         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4914         exported_signals and exported_properties.
4915         (dbus_g_object_register_marshaller): Update prototype.
4916         (dbus_g_object_register_marshaller_array): Prototype.
4917         
4918         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4919
4920         * test/glib/test-service-glib.c: Add new test signals and method
4921         to emit them.
4922
4923         * test/glib/test-service-glib.xml: Add some test signals.
4924
4925         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4926         and my-object-marshal.h
4927         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4928         my-object-marshal.c.
4929         (my-object-marshal.c, my-object-marshal.h): Implement.
4930
4931         * test/glib/.cvsignore: Update.
4932
4933         * doc/TODO: Remove two GLib TODO items fixed by this
4934         patch.
4935
4936 2005-06-16  Colin Walters  <walters@verbum.org>
4937
4938         * doc/TODO: Update for GLib bindings.
4939         
4940 2005-06-16  Colin Walters  <walters@verbum.org>
4941
4942         * glib/dbus-binding-tool-glib.c:
4943         * glib/dbus-gobject.c:
4944         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4945         from Ross Burton, for his GLib bindings work.
4946
4947 2005-06-16  Colin Walters  <walters@verbum.org>
4948
4949         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4950         to iterate instead of walking to G_TYPE_INVALID.
4951
4952         Patch based on a patch from Ryan Gammon.
4953
4954 2005-06-16  Colin Walters  <walters@verbum.org>
4955
4956         * bus/bus.c (bus_context_new): Set parser to NULL
4957         after we unref it (Patch from Chris Boscolo, #2174).
4958         
4959 2005-06-16  Colin Walters  <walters@verbum.org>
4960
4961         * python/dbus_bindings.pyx.in: Import size_t,
4962         __int64_t, __uint64_t, and __signed.
4963
4964         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4965         Define cmsg struct, output it.
4966         (_dbus_read_credentials_unix_socket):
4967         Use cmsg struct.
4968         
4969         Patch from Joe Markus Clarke for FreeBSD support.
4970         
4971 2005-06-16  Colin Walters  <walters@verbum.org>
4972
4973         * tools/dbus-send.c (append_array): Use strtok.
4974         (append_dict): New function.
4975         (type_from_name): New function, extracted from main.
4976         (main): Handle sending dicts.
4977
4978         * tools/dbus-print-message.c (print_iter): Print dict
4979         entries.
4980         
4981 2005-06-16  Colin Walters  <walters@verbum.org>
4982
4983         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4984         values as the empty string (#2948).
4985         
4986 2005-06-16  Colin Walters  <walters@verbum.org>
4987
4988         * dbus/Makefile.am:
4989         * mono/doc/Makefile.am:
4990         * test/glib/Makefile.am:
4991
4992         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4993
4994 2005-06-16  Colin Walters  <walters@verbum.org>
4995
4996         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4997         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4998
4999         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
5000         Increment pointer after swapping fixed array.  Add assertion
5001         for array length.
5002                 
5003 2005-06-15  Colin Walters  <walters@verbum.org>
5004
5005         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
5006         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
5007         
5008 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5009
5010         * NEWS: Update to 0.34
5011
5012 2005-06-15  David Zeuthen  <davidz@redhat.com>
5013
5014         * configure.in (LT_CURRENT): Revert back to 1 as the library
5015         hasn't changed and we've certainly not committed to protocol
5016         stability yet.  All this does is to break ABI. See commit note
5017         from hp@redhat.com 2005-05-05 for details.
5018         
5019 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5020
5021         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
5022         (_dbus_connection_run_builtin_filters): New method
5023         (dbus_connection_dispatch): Run the builtin filters which in turn
5024         runs the peer filter which handles Ping messages.
5025
5026         * doc/TODO: 
5027          - Ping isn't handled: This patch fixes it
5028          
5029          - Add a test case for the Ping message: added TODO item
5030
5031 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5032
5033         * dbus/dbus-message.c:
5034         (dbus_message_has_path): New method
5035         (dbus_message_has_interface): New method
5036         (dbus_message_has_member): New method
5037
5038         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
5039         New method
5040
5041         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
5042         the keyring directory is private to the user
5043
5044         * doc/TODO:
5045          - The convenience functions in dbus-bus.h should perhaps have
5046          the signatures that they would have if they were autogenerated
5047          stubs. e.g. the acquire service function. We should also evaluate
5048          which of these functions to include, in light of the fact that
5049          GLib/Qt native stubs will probably also exist.: Punted
5050
5051          - add dbus_message_has_path(), maybe has_member/interface:
5052          fixed in this patch
5053
5054          - in dbus-keyring.c, enforce that the keyring dir is not
5055          world readable/writable: Fixed in this patch
5056
5057 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5058
5059         * dbus/dbus-marshal-validate.h: Added a new validation
5060         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
5061         out of memory errors when validating signitures
5062
5063         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
5064         in places where we previously used DBUS_VALID and a FALSE return 
5065         value to indicate OOM
5066         
5067         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
5068         Use a stack to track the number of elements inside containers.  The 
5069         stack values are then used to validate that dict entries have only two
5070         elements within them.
5071         (validate_body_helper): check the reason for failure when validating
5072         varients
5073         
5074         * dbus/dbus-message.c (load_message): use 
5075         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
5076         DBUS_VALID and a FALSE return value to indicate OOM
5077
5078         * doc/TODO: remove "- validate dict entry number of fields" as this
5079         patch fixes it
5080
5081 2005-06-14  David Zeuthen  <davidz@redhat.com>
5082
5083         * bus/bus.c (process_config_every_time): Drop existing conf-dir
5084         watches (if applicable) and add new watches
5085
5086         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
5087         (main): Setup SIGIO signal handler if using D_NOTIFY
5088
5089         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
5090
5091         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
5092         (merge_included): Also merge conf_dirs list
5093         (bus_config_parser_unref): Clear conf_dirs list
5094         (include_dir): Add directory to conf_dirs list
5095         (bus_config_parser_get_conf_dirs): New function
5096
5097         * bus/dir-watch.[ch]: New files
5098
5099         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
5100
5101         * configure.in: Add checks for D_NOTIFY on Linux
5102
5103 2005-06-14  Colin Walters  <walters@verbum.org>
5104
5105         * glib/dbus-binding-tool-glib.c:
5106         * glib/dbus-gobject.c:
5107         * glib/dbus-gvalue.c: Fix indentation and brace style.
5108         
5109 2005-06-14  Ross Burton <ross@openedhand.com>.
5110
5111         * glib/dbus-glib.h: Make DBusGMethodInvocation
5112         a private structure.  Rearrange prototypes a bit.
5113         
5114         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
5115         documentation for first_arg_type.
5116         
5117         * glib/dbus-gobject.c: Move DBusGMethodInvocation
5118         here, add documentation.  Move dbus_g_method_return
5119         and dbus_g_method_return_error into public API
5120         section.
5121
5122 2005-06-14  Colin Walters  <walters@verbum.org>
5123
5124         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
5125         Add missing return statements, noticed by Ross Burton.
5126         
5127 2005-06-13  Ross Burton <ross@openedhand.com>.
5128
5129         * glib/dbus-gobject.c: Handle errors on message
5130         demarshalling by sending error message back.
5131         * glib/dbus-gvalue.c: Initialize return variables.
5132
5133 2005-06-13  Colin Walters  <walters@verbum.org>
5134
5135         * glib/Makefile.am: Fix thinko in last patch.
5136
5137 2005-06-13  Colin Walters  <walters@verbum.org>
5138
5139         * glib/Makefile.am: Move dbus-gtype-specialized.c
5140         and dbus-gtype-specialized.h into a _HEADERS variable,
5141         install them.
5142
5143 2005-06-12  Colin Walters  <walters@verbum.org>
5144
5145         Async signals and various bugfixes and testing by
5146         Ross Burton <ross@openedhand.com>.
5147
5148         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
5149         (dbus_gvalue_genmarshal_name_from_type)
5150         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
5151         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
5152         (dbus_g_value_types_init, dbus_gtype_from_signature)
5153         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
5154         (dbus_gtypes_from_arg_signature): New function prototypes.
5155         (dbus_gvalue_demarshal): Take context and error arguments.
5156         (dbus_gvalue_demarshal_variant): New function.
5157         (dbus_gvalue_demarshal_message): New function.
5158         (dbus_gvalue_store): Delete.
5159
5160         * glib/dbus-gvalue.c:
5161
5162         File has been almost entirely rewritten; now we special-case
5163         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
5164         hash tables correctly, etc.  Full support for recursive values
5165         is not yet complete.
5166
5167         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
5168         argument of signal to G_TYPE_POINTER since we now pass a
5169         structure.
5170         (lookup_g_marshaller): Delete in favor of
5171         _dbus_gobject_lookup_marshaller.
5172         (marshal_dbus_message_to_g_marshaller): Use
5173         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
5174         to handle remote signal callbacks.
5175         (dbus_g_proxy_new_from_proxy): New function; creates a new
5176         DBusGProxy by copying an existing one.
5177         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
5178         (dbus_g_proxy_get_path): New functions.
5179         (dbus_g_proxy_marshal_args_to_message): New function;
5180         factored out of existing code.
5181         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
5182         from a varargs array.
5183         (dbus_g_proxy_begin_call_internal): New function.
5184         (dbus_g_proxy_end_call_internal): New function.
5185         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
5186         as arguments; simply invoke dbus_g_proxy_begin_call_internal
5187         after collecting args into value array.
5188         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
5189         invoke dbus_g_proxy_end_call_internal.
5190         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
5191         end_call_internal.
5192         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
5193         types.
5194         (array_free_all): New function.
5195         (dbus_g_proxy_add_signal): Take GTypes.
5196
5197         * glib/dbus-gobject.h:
5198         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5199         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
5200         Prototype.
5201
5202         * glib/dbus-gobject.c: Add a global marshal_table hash which
5203         stores mappings from type signatures to marshallers.  Change lots
5204         of invocations of dbus_gtype_to_dbus_type to
5205         dbus_gtype_to_signature.
5206         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5207         (introspect_signals): Fix test for query.return_type.
5208         (set_object_property): Update invocation of dbus_gvalue_demarshal.
5209         (invoke_object_method): Many changes.  Handle asynchronous
5210         invocations.  Convert arguments with
5211         dbus_gvalue_demarshal_message.  Handle errors.  Use
5212         DBusSignatureIter instead of strlen on args. Handle all arguments
5213         generically.  Special-case variants.
5214         (dbus_g_method_return, dbus_g_method_return_error): New function.
5215         (DBusGSignalClosure): New structure, closes over signal
5216         information.
5217         (dbus_g_signal_closure_new): New function.
5218         (dbus_g_signal_closure_finalize): New function.
5219         (signal_emitter_marshaller): New function; is special marshaller
5220         which emits signals on bus.
5221         (export_signals): New function; introspects object signals and
5222         connects to them.
5223         (dbus_g_object_type_install_info): Take GType instead of
5224         GObjectClass.
5225         (dbus_g_connection_register_g_object): Invoke export_signals.
5226         (dbus_g_connection_lookup_g_object): New function.
5227         (DBusGFuncSignature) New structure; used for mapping type
5228         signatures to marshallers.
5229         (funcsig_hash): New function; hashes DBusGFuncSignature.
5230         (funcsig_equal): New function; compares DBusGFuncSignature.
5231         (_dbus_gobject_lookup_marshaller): New function.
5232         (dbus_g_object_register_marshaller): New function; used to
5233         register a marshaller at runtime for a particular signature.
5234
5235         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
5236
5237         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
5238         which notes a server method implementation should be
5239         asynchronous.
5240
5241         * glib/dbus-binding-tool-glib.c
5242         (dbus_binding_tool_output_glib_server): Call
5243         dbus_g_value_types_init.
5244         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
5245         variants specially.
5246         (dbus_g_type_get_lookup_function): Turn GType into an invocation
5247         of a lookup function.
5248         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
5249         (write_untyped_out_args): New method; write output arguments.
5250         (write_formal_declarations_for_direction): Function for
5251         writing prototypes.
5252         (write_formal_parameters_for_direction): Function for
5253         writing implementations.
5254         (write_typed_args_for_direction): Function for writing
5255         arguments prefixed with GTypes.
5256         (write_async_method_client): Write out async version
5257         of method.
5258
5259         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
5260         (dbus_g_type_get_marshal_name): Move mapping from GType
5261         to marshal name into here.
5262         (dbus_g_type_get_c_name): Move into here.
5263         (compute_marshaller): Convert signature to type with
5264         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5265         (compute_marshaller_name): Ditto.
5266         (compute_marshaller): Handle async signal annotations.
5267         (gather_marshallers): Return if we don't have a known
5268         prefix.
5269         (generate_glue): Collect introspection blob here, and
5270         write all of the blob at the end.  This allows an object
5271         with multiple interfaces to work.
5272         Mark async methods in introspection blob.
5273
5274         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5275         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5276         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5277
5278         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5279         avoids people accidentally using DBUS_TYPE_* which should
5280         not be necessary anymore.
5281         Do include dbus-gtype-specialized.h, which are utilities
5282         for GLib container types.
5283         Add various #defines for types such as
5284         DBUS_TYPE_G_BOOLEAN_ARRAY.
5285         (DBusGValueIterator, DBusGValue): Define, not fully used
5286         yet.
5287         (dbus_g_value_get_g_type): Type for recursive value.
5288         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5289         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5290         (dbus_g_value_free): Prototypes.
5291         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5292         (dbus_g_proxy_set_interface): Prototype.
5293         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5294         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5295         types.
5296         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5297         Accessors.
5298         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5299         doing async invocations.
5300         (dbus_g_method_return, dbus_g_method_return_error):
5301         Prototypes.
5302         * doc/dbus-tutorial.xml: Update GLib section.
5303         
5304         * tools/dbus-viewer.c (load_child_nodes): Update
5305         for new invocation type of dbus_g_proxy_end_call.
5306         (load_from_service_thread_func): Ditto.
5307
5308         * tools/print-introspect.c (main): Ditto.
5309
5310         * tools/dbus-names-model.c (have_names_notify)
5311         (names_model_reload, names_model_set_connection)
5312         Use GTypes.
5313
5314         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5315         needed since Python bindings use GLib bindings.
5316
5317         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5318         Add --prefix argument.
5319
5320         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5321         unneeded --ignore-unsupported arg.
5322         
5323         * test/glib/test-service-glib.c: 
5324         * test/glib/test-service-glib.xml:
5325         * test/glib/test-dbus-glib.c: Add many more tests.
5326
5327 2005-06-06  David Zeuthen  <davidz@redhat.com>
5328
5329         * doc/TODO: Add item about need to remove deprecated functions.
5330
5331         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5332
5333         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5334         to repair the ABI which was broken with the last commit.
5335
5336 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5337
5338         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5339         (dbus_connection_disconnect): renamed to dbus_connection_close 
5340         for API symmetry with dbus_connection_open
5341         (_dbus_connection_open_internal): 
5342         s/dbus_connection_disconnect/dbus_connection_close
5343
5344         * dbus/dbus-bus.c (dbus_bus_get):
5345         s/dbus_connection_disconnect/dbus_connection_close
5346
5347         * bus/connection.c (bus_connections_unref, 
5348         bus_connections_setup_connection, bus_connections_expire_incomplete):
5349         s/dbus_connection_disconnect/dbus_connection_close
5350
5351         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5352         kill_client_connection_unchecked, check_hello_connection):
5353         s/dbus_connection_disconnect/dbus_connection_close
5354
5355         * bus/bus.c (new_connection_callback):
5356         s/dbus_connection_disconnect/dbus_connection_close
5357
5358         * tools/dbus-send.c (main):
5359         s/dbus_connection_disconnect/dbus_connection_close
5360
5361         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5362         s/dbus_connection_disconnect/dbus_connection_close
5363         
5364         * test/test-service.c (path_message_func, filter_func):
5365         s/dbus_connection_disconnect/dbus_connection_close
5366         
5367         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5368         
5369 2005-05-25  Colin Walters  <walters@verbum.org>
5370
5371         * dbus/dbus-protocol.h: Move various bus service #defines such
5372           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5373           dbus/dbus-shared.h.
5374         * dbus/dbus-shared.h: Various defines moved here.
5375         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5376
5377 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5378
5379         * python/__init__.py: Python bindings deserve a minor version
5380         update.  Upped to (0, 40, 2)
5381
5382 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5383
5384         * python/decorators.py: add explicitly_pass_message decorator
5385         for passing in the dbus message as keyword for edge case signal
5386         handling
5387
5388         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5389         to conform with what dbus expects for match rules
5390         (SignalMatchRule.execute): add the dbus message as a keyword
5391         if the signal handler has requested it
5392
5393         * python/examples/example/signal-recipient.py: added some more
5394         examples on how to hook up to signals
5395
5396 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5397
5398         * python/decorators.py: import dbus_bindings
5399
5400         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5401         SignalMatchNode): new classes that implement wildcard signal
5402         callback matching using a tree lookup. Heavily modified from a
5403         patch sent by Celso Pinto (fd.o bug #3241)
5404
5405         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5406         use new match classes to handle signals.
5407
5408 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5409         
5410         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5411
5412 2005-05-18  Havoc Pennington  <hp@redhat.com>
5413
5414         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5415         gettext. Not really worth requiring yet perhaps, but any
5416         production quality 1.0 would require it so we should go ahead and
5417         get things set up. We do have a couple token calls to
5418         bindtextdomain in the code already.
5419
5420 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5421
5422         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5423         when using recursive g_main_loops
5424
5425         * python/_dbus.py (class Bus): add the ProxyObjectClass
5426         alias for ProxyObject to make it easier for the Twisted 
5427         networking framework to integrate dbus.
5428
5429         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5430         alias for ProxyMethod to make it easier for the Twisted 
5431         networking framework to integrate dbus. 
5432
5433 2005-05-11  Ross Burton  <ross@openedhand.com>
5434
5435         * glib/dbus-glib-tool.c: Add --prefix argument.
5436         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5437         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5438         Add prefix argument.
5439         (generate_glue): Pass prefix argument down.
5440         (dbus_binding_tool_output_glib_server): Pass prefix to
5441         glib-genmarshal.
5442         
5443 2005-05-11  Colin Walters  <walters@verbum.org>
5444
5445         * tools/dbus-send.c (append_array): New function.
5446         (append_arg): Broken out from main.
5447         (main): Add cheesy hack to send arrays and variants.
5448         (usage): Update.
5449         * tools/dbus-print-message.c (print_iter): Broken out
5450         from main.
5451
5452 2005-05-11  Colin Walters  <walters@verbum.org>
5453
5454         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5455         New function, returns signature string for signature iter.
5456         * dbus/dbus-signature.h: Prototype it.
5457         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5458         New function, returns signature string for message iter.
5459         (dbus_message_iter_get_array_len): New function, returns
5460         length of array.
5461         (dbus_message_iter_get_fixed_array): Fix assertion; this
5462         function should be used when the iter is pointing to the
5463         contents of an array
5464         * dbus/dbus-message.h: Prototypes.
5465         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5466         New function; returns length of an array.
5467         * dbus/dbus-marshal-recursive.h: Prototype it.
5468         
5469 2005-05-11  Colin Walters  <walters@verbum.org>
5470
5471         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5472         compilation error.
5473         
5474 2005-05-08  Havoc Pennington  <hp@redhat.com>
5475
5476         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5477         daemon's pid, not the parent's pid, to the file descriptor.
5478         Reported by Taj Morton.
5479
5480 2005-05-05  Havoc Pennington  <hp@redhat.com>
5481
5482         * configure.in (LT_*): add notes on how the libtool versioning
5483         works to save thinking. Increment soname to indicate protocol
5484         breakage (though really the library interface hasn't changed I
5485         guess)
5486
5487         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5488         verify the GUID received from server matches what we were
5489         expecting, if we had an expectation
5490
5491         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5492         (_dbus_auth_get_guid_from_server): new function
5493         (send_begin): parse the OK args
5494
5495         * doc/dbus-specification.xml: add GUID to the auth protocol
5496
5497 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5498
5499         * Fix my name in previous changelog ;)
5500
5501         * python/proxies.py (ProxyObject.__getattr__): add further patch
5502         from Anthony Baxter to throw an AttributeError when python 
5503         __special__ functions are called instead of marshling them over 
5504         the bus (Bug#1685 comment 3).
5505
5506 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5507
5508         * python/Makefile.am: changed to use pyexecdir for the binding
5509         shared libraries (Bug#2494)
5510
5511         * python/exceptions.py: bring exceptions over from the bindings
5512         so they can be used in applications (Bug#2036)
5513         Make all exceptions derive from DBusException
5514
5515         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5516         of classes so that print obj doesn't throw an exception (Bug #1685)
5517
5518 2005-05-03  Ross Burton  <ross@openedhand.com>
5519
5520         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5521         Return if we get an error during registration.  Set up a
5522         weak reference on object to unregister if object is destroyed.
5523         (unregister_gobject): New function.
5524         
5525 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5526
5527         * python/dbus_bindings.pyx.in: 
5528         - added new type classes for hinting to the marashaler what type 
5529         to send over the wire
5530         - added int16 and uint16 marshalers
5531         - Fixed a bug in the type constants that caused int32 to go out
5532         as uint16 over the wire
5533         * python/dbus.py: split up into different files and renamed _dbus.py
5534         * python/__init__.py, python/_util.py, python/decorators.py, 
5535         python/exceptions.py, python/proxies.py, python/services.py,
5536         python/types.py: new files split off from dbus.py
5537         * python/Makefile.am: Add new files, remove dbus.py and 
5538         install all python files to <python module dir>/dbus
5539         * python/examples/*: Added #!/usr/bin/env python to the top of
5540         every example.  Patch provided by Tatavarty Kalyan
5541
5542 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5543
5544         * NEWS: Update to 0.33
5545
5546 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5547
5548         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5549         method for doing async calls
5550         (_pending_call_notification): New C function for handling pendning call
5551         callbacks
5552         (set_notify): New method for setting pending call notification
5553         
5554         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5555         Async capabilities added to remote method calls
5556         (Sender): class removed
5557         (RemoteService): class removed
5558         (ObjectTree): class removed for now
5559         (RemoteObject): Renamed to ProxyObject
5560         (RemoteMethod): Renamed to ProxyMethod
5561         (method): Decorator added for decorating python methods as dbus methods
5562         (signal): Decorator added for decorating python methods as signal emitters
5563         (ObjectType): Metaclass added for generating introspection data and the
5564         method callback vtable
5565         (Interface): Wrapper class added to wrap objects in a dbus interface
5566         (Object): Uses ObjectType as its metaclass and exports Introspect
5567         of the org.freedesktop.DBus.Introspectable interface
5568         (ValidationException, UnknownMethodException): new exceptions
5569
5570         * python/examples/*: Modified to fit with the new bindings
5571
5572 2005-04-23  Havoc Pennington  <hp@redhat.com>
5573
5574         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5575         reported by Tony Houghton
5576
5577         * test/test-service.c (main): test
5578         dbus_connection_get_object_path_data()
5579
5580         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5581         the exact_match
5582         (_dbus_object_tree_get_user_data_unlocked): new function used by
5583         dbus_connection_get_object_path_data()
5584         (do_register): add assertion test for get_user_data_unlocked
5585         (object_tree_test_iteration): more tests
5586
5587         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5588         new function from Dan Reed to let you get the user data from 
5589         dbus_connection_register_object_path()
5590
5591 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5592
5593         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5594         in numerous places that did not account for the NULL terminator
5595         (signature_from_seed): changed the manual string copy loop to 
5596         just use strcpy instead
5597         make check should now pass
5598
5599 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5600
5601         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5602         so that it allows messages that are not signals to pass in 
5603         NULL as the interface.
5604
5605 2005-04-18  David Zeuthen  <davidz@redhat.com>
5606
5607         * glib/dbus-gmain.c (io_handler_destroy_source): 
5608         (timeout_handler_destroy_source, connection_setup_free): 
5609         Also unref the source to avoid memory leaks.
5610
5611 2005-04-13  David Zeuthen  <davidz@redhat.com>
5612
5613         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5614         more reasonable, yet still totally arbitrary, value :-). 
5615
5616 2005-04-13  David Zeuthen  <davidz@redhat.com>
5617
5618         * doc/TODO: Added an "important for 1.0" item about selinux
5619         allow/deny messages
5620
5621 2005-04-13  David Zeuthen  <davidz@redhat.com>
5622
5623         * bus/selinux.c: Add c-file-style to top of file
5624         (log_audit_callback): Don't free the data here anymore
5625         (bus_selinux_check): Don't take spid and tpid since appending
5626         that to auxdata may OOM.
5627         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5628         to the caller if we are OOM by taking an error object.
5629         (bus_selinux_allows_send): -do-
5630
5631         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5632         and bus_selinux_allows_send
5633
5634         * bus/bus.c (bus_context_check_security_policy): Pass error and
5635         pass on OOM thrown by bus_selinux_allows_send()
5636
5637         * bus/services.c (bus_registry_acquire_service): Pass error and
5638         pass on OOM thrown by bus_selinux_allows_acquire_service()
5639
5640 2005-04-13  Havoc Pennington  <hp@redhat.com>
5641
5642         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5643         message at a time to avoid monopolizing the main loop, bug 
5644         #2953 from Benjamin Otte
5645
5646 2005-04-09  Havoc Pennington  <hp@redhat.com>
5647
5648         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5649         possible overlap, fix from Daniel Reed
5650         (fixup_alignment): fix signedness warnings
5651         (_dbus_string_append_unichar): ditto
5652
5653 2005-04-09  Havoc Pennington  <hp@redhat.com>
5654
5655         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5656
5657         * glib/dbus-glib-tool.c (main): fix warning
5658
5659         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5660
5661         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5662         add a new function that can be used in simple applications that
5663         don't have a main loop and are willing to block
5664
5665 2005-04-05  David Zeuthen  <davidz@redhat.com>
5666
5667         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5668
5669         * glib/dbus-gmain.c:
5670         (io_handler_destroy_source): Remove from list of IO handlers
5671         of the ConnectionSetup object
5672         (timeout_handler_destroy_source): -do- for timeout handlers
5673         (io_handler_source_finalized): Don't remove from list since
5674         we now do that in io_handler_destroy_source(). Renamed from
5675         io_handler_source_destroyed
5676         (timeout_handler_source_destroyed): -do- for timeout handlers
5677         (connection_setup_free): It is now safe to iterate over all
5678         IO and timeout handlers as the _destroy_source removes them
5679         from the list synchronously
5680
5681 2005-03-30  Havoc Pennington  <hp@redhat.com>
5682
5683         * configure.in: change check to gtk 2.4
5684
5685         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5686         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5687         to 2.4
5688
5689 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5690
5691         * News: Update 0.32
5692
5693         * HACKING: Fixed realease instructions.  configure.in should be updated to
5694           the next release by the person who made the last release.
5695
5696 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5697
5698         * python/lvalue_cast_post_process.py - removed.  Patch has been
5699           submitted to Pyrex maintainers that fixes gcc4.0 errors
5700
5701         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5702
5703 2005-03-24  Daniel Reed  <n@ml.org>
5704
5705         * tools/Makefile.am: Make print-introspect and
5706         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5707
5708 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5709
5710         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5711
5712         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5713           had in Red Hat packages for a while but for some reason never 
5714           got merged upstream
5715           (_dbus_is_a_number): New checks if a string
5716           can be converted to a number and does the conversion if it can
5717           (_dbus_user_database_lookup): Add check to see if the given username
5718           is a udi.  This allows udi's to be used instead of usernames in the
5719           config file.
5720           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5721           is a gdi.  This allows gdi's to be used instead of groupnames in the
5722           config file.
5723
5724 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5725
5726         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5727           code so that it compiles with gcc4.0
5728
5729         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5730           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5731           results back to dbus_binding.c
5732
5733 2005-03-20  Colin Walters  <walters@verbum.org>
5734
5735         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5736
5737         * configure.in: Require GTK+ 2.6.
5738         
5739 2005-03-20  Colin Walters  <walters@verbum.org>
5740
5741         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5742
5743 2005-03-17  Tom Parker  <palfrey@tevp.net>
5744
5745         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5746         print DBUS_UID_UNSET; instead print passed username.  Also
5747         be sure to actually use gid looked up in cache.
5748         
5749         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5750         for DBUS_GID_UNSET and groupname.
5751
5752 2005-03-17  Colin Walters  <walters@verbum.org>
5753
5754         * bus/print-introspect.c: Move to tools/.
5755         * bus/run-with-tmp-session-bus.sh: Ditto.
5756         
5757         * glib/Makefile.am (dbus-glib-bindings.h): Move
5758         generation to tools/Makefile.am.
5759
5760         * test/glib/run-test.sh: Update to handle move
5761         of run-with-tmp-session-bus.sh.
5762
5763         * test/glib/test-service-glib.c: Update to handle
5764         move of dbus-glib-bindings.h.
5765
5766         * tools/print-introspect.c: Moved here
5767         from bus/, and ported to GLib bindings.
5768
5769         * tools/run-with-tmp-session-bus.sh: Moved here
5770         from bus/.
5771
5772         * tools/Makefile.am: Generate dbus-glib-bindings.h
5773         and dbus-bus-introspect.xml here.
5774
5775         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5776         Update.
5777
5778 2005-03-17  Colin Walters  <walters@verbum.org>
5779
5780         * bus/driver.c (write_args_for_direction): Use
5781         _dbus_string_get_const_data to retrieve string;
5782         _dbus_string_get_const_data_len doesn't actually return
5783         a NULL-terminated substring.
5784
5785         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5786         (main): Change to use org_freedesktop_DBus_request_name
5787         instead of using g_proxy_begin_call/end_call.
5788
5789 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5790
5791         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5792         generating the finalizer.  Fixes from Ben Maurer.
5793
5794 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5795
5796         * mono/BusDriver.cs: Update method names: ListServices
5797         becomes ListNames; GetOwner becomes GetNameOwner.
5798
5799         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5800         onto the eval stack when removing the delegate.
5801
5802 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5803
5804         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5805         LT_CURRENT.  Set it to the autoconf variable.
5806                                                                                 
5807         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5808         classes that disconnects the signal handler delegate from the
5809         service object.  Fixes a big leak of proxy objects on the
5810         client side of things.  Patch from Ben Maurer
5811         <bmaurer@ximian.com>
5812
5813 2005-03-12  Colin Walters  <walters@verbum.org>
5814
5815         * bus/driver.c (write_args_for_direction): New function,
5816         parses a type signature into arguments and outputs to
5817         XML.
5818         (bus_driver_handle_introspect): Use it instead of
5819         hardcoding XML for certain signatures.
5820         
5821         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5822         dependency on dbus-daemon.
5823
5824         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5825         argument, pass it to dbus_binding_tool_output_glib_client.
5826
5827         * glib/dbus-binding-tool-glib.c
5828         (generate_client_glue): Protect against multiple inclusion.
5829         (dbus_binding_tool_output_glib_client): Add
5830         G_BEGIN_DECLS/G_END_DECLS.
5831
5832         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5833         Change to just take iface prefix directly.
5834         (write_formal_parameters): Clarify error message.
5835         (check_supported_parameters): New function; checks to see type
5836         signatures of method parameters are supported.
5837         (generate_client_glue): Handle ignore_unsupported flag.
5838         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5839         parameter.
5840
5841         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5842         --ignore-unsupported by default until glib bindings
5843         support arrays.
5844
5845 2005-03-11  Colin Walters  <walters@verbum.org>
5846
5847         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5848         install it.
5849
5850         * bus/print-introspect.c: New file; prints introspection
5851         data for a given name and object path.
5852
5853         * bus/run-with-tmp-session-bus.sh: New file, refactored
5854         from test/glib/run-test.sh.  Creates a temporary session
5855         bus and runs another program.
5856
5857         * test/glib/run-test.sh: Refactor to invoke
5858         run-with-tmp-session-bus.sh.
5859
5860         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5861         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5862         macros instead of hardcoding.
5863
5864         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5865
5866 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5867
5868         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5869         this unref; it doesn't match up evenly in some codepaths.
5870         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5871         this evenly matches with the ref near the top of this function.
5872
5873 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5874
5875         * dbus/dbus-object-tree.c
5876         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5877         and we try to unregister a path that's not registered, still go
5878         through the process of unlocking and don't just return.
5879
5880 2005-03-09  Colin Walters  <walters@verbum.org>
5881
5882         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5883         to this are generated for client-side wrappers.  Invokes a
5884         D-BUS method and returns reply values.  
5885
5886         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5887         function; writes signature string for argument direction.
5888         (write_args_for_direction): Change to pass input values directly
5889         instead of via address, and fix indentation.
5890         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5891         make generated wrappers inlineable.
5892
5893         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5894         note about using dbus_type_is_fixed.
5895
5896         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5897         dbus/dbus-signature.c as dbus_type_is_fixed.
5898
5899         All callers updated.
5900
5901         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5902         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5903
5904         * dbus/dbus-signature.h: Prototype.
5905
5906         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5907         error printf code.
5908
5909         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5910         appropriate instead of just freeing it.
5911         (main): Free returned strings using g_free.
5912
5913         * test/glib/Makefile.am (test-service-glib-glue.h)
5914         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5915
5916         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5917         simply maps a simple D-BUS type to GType.
5918         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5919         GType.
5920         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5921         initialize the value with it.
5922         (dbus_gvalue_binding_type_from_type): Unused, delete.
5923         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5924         various types instead of unmarshalling to value data directly.
5925         Remove can_convert boolean.
5926         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5927         returning directly instead of using can_convert boolean.
5928         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5929         Stores a GValue in a pointer to a value of its corresponding C
5930         type.
5931
5932         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5933         add dbus_gvalue_store.
5934
5935 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5936
5937         Fix a bunch of lifecycle and memory management problems
5938         in the mono bindings.
5939
5940         * mono/Arguments.cs (Arguments): Implement IDisposable
5941
5942         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5943         strictly a static class.
5944
5945         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5946         delegates into this file.
5947         (Connection): Implement IDisposable.
5948         (Dispose): Disconnect the connection and set the raw connection
5949         pointer to IntPtr.Zero.
5950         (~Connection): Call Dispose().
5951         (RegisterObjectPath): Added.  Manages the registration of object
5952         paths so we can cleanly disconnect them at dispose/finalize time.
5953         (UnregisterObjectPath): Ditto.
5954         (set_RawConnection): Unregister all of the object paths when
5955         changing the underlying DBusConnection.  Add them back onto the
5956         new connection, if any.
5957
5958         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5959         more unmanaged resources anymore, so it's not necessary.  Move all
5960         the DBusObjectPathVTable stuff out of here.
5961         (Handler): Save references to our delegates so that they don't get
5962         finalized.  Call Connection.RegisterObjectPath() instead of
5963         dbus_connection_register_object_path() directly.
5964         (Message_Called): Dispose the message after we're finished with
5965         it.
5966
5967         * mono/Message.cs (Message): Implement IDisposable.
5968         (Dispose): Dispose the Arguments, and set the RawMessage to
5969         IntPtr.Zero.
5970         (SendWithReplyAndBlock): We own the ref to the reply that comes
5971         back from dbus_connection_send_with_reply_and_block() so add a
5972         comment about that and unref it after we've constructed a managed
5973         MethodReturn class around it.  Fixes a big, big leak.
5974
5975         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5976         method.
5977         (BuildSignalHandler): After we've sent the Signal message, dispose
5978         of it.
5979         (BuildMethod): Dispose of the method call and reply messages after
5980         we've sent the message and extracted the data we want from the
5981         reply.
5982
5983         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5984         anymore.
5985         (Service_FilterCalled): Dispose of the message after we're
5986         finished with it.
5987
5988 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5989
5990         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5991         After we attach our pending call to the connection, unref
5992         it.  Fixes a leak.
5993  
5994         * mono/Connection.cs (set_RawConnection): Disconnect our
5995         filter and match callbacks from the old connection and
5996         reconnect them to the new connection, if any.
5997
5998         * mono/DBusType/Array.cs: "Code" is a static member, so
5999         don't use "this" to refer to it.  Fix for stricter checking
6000         in Mono 1.1.4.
6001  
6002         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
6003         object path that we pass into unmanaged code.
6004  
6005         * mono/DBusType/String.cs (Append): Don't leak the string
6006         that we pass into unmanged code.
6007
6008 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
6009         * NEWS: Update for 0.31
6010
6011         * configure.in: Release 0.31
6012         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
6013
6014         * qt/Makefile.am: fixed build
6015
6016         * dbus/Makefile.am: soname bump for libdbus
6017
6018         * glib/Makefile.am: soname bump for libdbus-glib
6019
6020 2005-03-05  Havoc Pennington  <hp@redhat.com>
6021
6022         * dbus/dbus-sysdeps.c:
6023         (pseudorandom_generate_random_bytes_buffer): fix to have no return
6024         value
6025         (_dbus_generate_random_bytes_buffer): fix return value
6026
6027         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
6028         checks actually work, from Tom Parker <fdo@tevp.net>
6029
6030 2005-03-01  Colin Walters  <walters@verbum.org>
6031
6032         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
6033         functions copied from dbus-glib-tool.c.
6034         (main): Convert lots of error code to use them.
6035         Also add some testing for introspection bits.
6036
6037 2005-03-01  Colin Walters  <walters@verbum.org>
6038         
6039         * doc/TODO: Remove introspection signature TODO.
6040
6041 2005-02-27  Colin Walters  <walters@verbum.org>
6042
6043         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
6044         Change return value to const char * instead of int so we can do
6045         full signatures.
6046         (struct PropertyInfo, struct ArgInfo): Store char *.
6047         (property_info_new, arg_info_new): Update parameters, strdup.
6048         (property_info_unref, arg_info_unref): Free.
6049
6050         * glib/dbus-gidl.h: Update prototypes.
6051
6052         * glib/dbus-gparser.c (basic_type_from_string): Delete.
6053         (validate_signature): New function, just validates signature and
6054         sets GError.
6055         (parse_property, parse_arg): Invoke validate_signature.  Store
6056         signature instead of just type code.
6057
6058         * glib/dbus-gvalue.c (base_type_from_signature): New utility
6059         function to return a primary type for a signature, dropping
6060         information about types in container types.
6061         (dbus_gvalue_genmarshal_name_from_type)
6062         (dbus_gvalue_binding_type_from_type)
6063         (dbus_gvalue_ctype_from_type): Update to take full signature
6064          instead of type code.
6065         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
6066
6067         * glib/dbus-gvalue.h: Update prototypes for above.
6068
6069         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
6070         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
6071         (introspect_properties, introspect_signals, write_interface):
6072         Update to handle signatures, and remove usage of
6073         _dbus_gutils_type_to_string.
6074         (handle_introspect): Print out type codes instead of e.g. "string"
6075         in hardcoded introspection XML; also use x_AS_STRING constants
6076         instead of hardcoding in string.
6077
6078         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
6079         to string.  Remove usage of _dbus_gutils_type_to_string.
6080
6081         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
6082
6083         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
6084         deletion.
6085         
6086         * glib/dbus-binding-tool-glib.c (compute_marshaller)
6087         (compute_marshaller_name, generate_glue): Handle signature change
6088         to string.
6089         (write_formal_parameters, write_args_for_direction): Ditto, and
6090         remove FIXME.
6091
6092         * tools/dbus-tree-view.c (type_to_string): Delete.
6093         (info_set_func_text): Update to print full signatures.
6094
6095         * test/glib/test-service-glib.xml: Change types to new
6096         introspection format.
6097
6098 2005-02-26  Havoc Pennington  <hp@redhat.com>
6099
6100         * doc/TODO: remove the "guid" item
6101
6102         * test/glib/test-profile.c (no_bus_thread_func): use open_private
6103         (with_bus_thread_func): use open_private
6104
6105         * dbus/dbus-connection.c (dbus_connection_open_private): new
6106         function that works like the old dbus_connection_open()
6107         (dbus_connection_open): now returns an existing connection if
6108         possible
6109
6110         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
6111         through the GUID to the transport
6112
6113         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
6114         GUID in hex-encoded form.
6115
6116         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
6117         pass GUID argument in to the transport
6118
6119         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
6120         guid argument
6121
6122         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
6123
6124         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
6125
6126 2005-02-25  Havoc Pennington  <hp@redhat.com>
6127
6128         * doc/dbus-specification.xml: document the GUID thing
6129
6130         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
6131         globally unique ID for the server, and put a "guid=hexencoded"
6132         field in the address
6133
6134         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
6135
6136         * dbus/dbus-message.c: ditto
6137
6138         * dbus/dbus-dataslot.c: ditto
6139
6140         * dbus/dbus-list.c: ditto
6141
6142         * dbus/dbus-internals.h: wait, just include
6143         dbus-threads-internal.h here
6144         
6145         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
6146         use in main library
6147
6148         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
6149
6150 2005-02-24  Colin Walters  <walters@verbum.org>
6151
6152         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
6153
6154 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
6155
6156         * glib/Makefile.am: added dbus-gobject.h to sources list
6157         so distcheck doesn't fail
6158         
6159 2005-02-24  Havoc Pennington  <hp@redhat.com>
6160
6161         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
6162         you must disconnect before unref, since locking and other things
6163         are screwed up otherwise. Fix assorted other locking stuff.
6164
6165         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
6166         fix compilation
6167
6168         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
6169         into a private header and don't export from the library
6170
6171         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
6172
6173 2005-02-24  Colin Walters  <walters@verbum.org>
6174         
6175         * dbus/dbus-signature.c: New file; implements various functions
6176         related to type signatures.  Includes an interator for parsing,
6177         validation functions.
6178         (dbus_type_is_basic): Moved here from
6179         dbus-marshal-basic.c:_dbus_type_is_basic.
6180         (dbus_type_is_container): Moved here from
6181         dbus-marshal-basic.c:_dbus_type_is_container.
6182
6183         All callers of _dbus_type_is_container and _dbus_type_is_basic
6184         updated, and include dbus-signature.h.
6185
6186         * dbus/dbus-signature.h: New file; prototypes for the above.
6187
6188         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
6189         dbus-signature.h.
6190
6191         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
6192         function factored out of _dbus_first_type_in_signature.
6193         (_dbus_first_type_in_signature_c_str): New function; returns first
6194         type code for a type signature character.
6195
6196         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
6197         handle function moves.
6198
6199         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
6200
6201         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
6202         function; skips to next complete type in type signature.
6203         Implemented using previous skip_one_complete_type.  Now
6204         skip_one_complete_type just delegates to
6205         _dbus_type_signature_next.
6206
6207         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
6208         to dbus-signature.c
6209         (_dbus_type_is_container): Ditto.
6210
6211         * doc/dbus-specification.xml: Update introspection sample to
6212         use real type signatures.
6213
6214         * dbus/dbus-test.h: Prototype signature test.
6215
6216         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
6217         signature tests.
6218
6219         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
6220
6221 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
6222
6223         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
6224         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
6225
6226 2005-02-21  Colin Walters  <walters@verbum.org>
6227
6228         * dbus/dbus-test-main.c (main): Take optional specific test
6229         argument.
6230
6231         * dbus/dbus-test.c (run_test): New function, runs a test function
6232         with no data directory.
6233         (run_data_test): Like above, but takes data directory.
6234         (dbus_internal_do_not_use_run_tests): Take
6235         specific test argument.  Replace lots of cut n' paste code
6236         with run_test and run_data_test.
6237
6238         * dbus/dbus-test.h: Update prototype for
6239         dbus_internal_do_not_use_run_tests.
6240
6241 2005-02-20  Havoc Pennington  <hp@redhat.com>
6242
6243         Fix bugs reported by Daniel P. Berrange
6244         
6245         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
6246         (protected_change_watch): new function
6247         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
6248         (_dbus_server_add_watch): change to work like the
6249         dbus-connection.c equivalents; like those, probably kind of
6250         busted, but should at least mostly work for now
6251         (dbus_server_disconnect): drop the lock if we were already
6252         disconnected, patch from Daniel P. Berrange
6253
6254         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
6255         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
6256         same stuff
6257
6258         * doc/TODO: todo about unscrewing this mess
6259
6260 2005-02-19  Colin Walters  <walters@verbum.org>
6261
6262         * glib/dbus-binding-tool-glib.c
6263         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6264
6265         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6266         as errno.h and sys/stat.h.
6267         (lose): New function, prints error with
6268         newline and exits.
6269         (lose_gerror): Similar, but takes GError for message.
6270         (main): Add --output argument to specify output file to write to,
6271         instead of always printing to stdout.  In this mode, determine
6272         timestamps on source files to see whether any are newer than the
6273         target file.  If not, exit.  Also convert a number of error
6274         messages to use lose (since it's shorter), and switch to using
6275         g_io_channel_shutdown.
6276
6277 2005-02-19  Havoc Pennington  <hp@redhat.com>
6278
6279         * glib/dbus-gobject.c
6280         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6281
6282         * glib/dbus-glib.c: fix doxygen warnings
6283
6284         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6285         is found on an <arg>
6286
6287 2005-02-17  Colin Walters  <walters@verbum.org>
6288
6289         * glib/dbus-gobject.h: Don't export
6290         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6291         
6292         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6293         (invoke_object_method): Handle it.
6294
6295         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6296         Handle rename.
6297         
6298 2005-02-17  Colin Walters  <walters@verbum.org>
6299
6300         * bus/.cvsignore, doc/.cvsignore
6301         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6302         Update.
6303
6304 2005-02-17  Colin Walters  <walters@verbum.org>
6305         
6306         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6307         Rename to DBUS_SERVICE_DBUS.
6308         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6309         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6310         Change the value from "org.freedesktop.Local"
6311         to "org.freedesktop.DBus.Local".
6312         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6313         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6314         DBUS_INTERFACE_INTROSPECTABLE.
6315         Change the value from "org.freedesktop.Introspectable"
6316         to "org.freedesktop.DBus.Introspectable".
6317         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6318         DBUS_INTERFACE_PROPERTIES.
6319         Change the value from "org.freedesktop.Properties"
6320         to "org.freedesktop.DBus.Properties".
6321         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6322         DBUS_INTERFACE_PEER.
6323         Change the value from "org.freedesktop.Peer"
6324         to "org.freedesktop.DBus.Peer".
6325         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6326         DBUS_INTERFACE_LOCAL.
6327         Change the value from "org.freedesktop.Local"
6328         to "org.freedesktop.DBus.Local".
6329
6330         All other users of those constants have been changed.
6331
6332         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6333
6334         * glib/dbus-gobject.c (handle_introspect): Use constants.
6335
6336         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6337
6338 2005-02-17  Colin Walters  <walters@verbum.org>
6339
6340         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6341         (parse_node, parse_interface, parse_method, parse_signal)
6342         (parse_property, parse_annotation): Lose if we're currently in an
6343         annotation.
6344         (parse_annotation): New function.
6345         (parser_start_element, parser_end_element): Handle annotation.
6346         (parse_method, parse_interface): Remove support for c_name attribute,
6347         switch to annotations.
6348
6349         * glib/dbus-gidl.h (interface_info_get_binding_names)
6350         (method_info_get_binding_names)
6351         (interface_info_get_binding_name, method_info_get_binding_name)
6352         (interface_info_set_binding_name, method_info_set_binding_name):
6353         Remove.
6354         (interface_info_get_annotations, method_info_get_annotations)
6355         (interface_info_get_annotation, method_info_get_annotation)
6356         (interface_info_add_annotation, method_info_add_annotation):
6357         Prototype.
6358
6359         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6360         for "bindings".
6361         (struct MethodInfo): Ditto.
6362         Straightfoward conversion of binding methods into annotation methods
6363         as prototyped.
6364
6365         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6366
6367         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6368
6369         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6370         Use new annotation API.
6371
6372         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6373         annotation element.
6374         
6375         * doc/dbus-specification.xml: Discuss introspection annotations,
6376         include list of well-known annotations.
6377
6378         * test/glib/test-service-glib.xml: Make validate against new DTD.
6379
6380 2005-02-17  Colin Walters  <walters@verbum.org>
6381
6382         This patch is based on initial work from
6383         Paul Kuliniewicz <kuliniew@purdue.edu>.
6384
6385         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6386         initialization of GValue from dbus type to here.
6387         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6388         for the "glib-genmarshal" program from a DBus type.
6389         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6390         into the C name for it we use in the glib bindings.
6391         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6392         glib C type (not GValue).
6393         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6394
6395         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6396         from dbus-gobject.c.
6397
6398         * glib/dbus-gutils.h: Prototype it.
6399
6400         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6401         (marshal_dbus_message_to_g_marshaller): Use new shared function
6402         dbus_glib_marshal_dbus_message_to_gvalue_array.
6403
6404         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6405         Will be changed once we have annotations.
6406
6407         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6408         GStaticRWLock.  Callers updated.
6409         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6410         (string_table_next): New function for iterating over zero-terminated
6411         string value array.
6412         (string_table_lookup): New function; retrieves specific entry in
6413         array.
6414         (get_method_data): New function; look up method data in object data chunk.
6415         (object_error_domain_prefix_from_object_info)
6416         (object_error_code_from_object_info): New functions, but not implemented yet.
6417         (method_interface_from_object_info): New function; retrieve interface name.
6418         (method_name_from_object_info): New function; retrieve method name.
6419         (method_arg_info_from_object_info): New function; retrieve argument data.
6420         (arg_iterate): New function; iterates over serialized argument data.
6421         (method_dir_signature_from_object_info): New function; returns a
6422         GString holding type signature for arguments for just one
6423         direction (input or output).
6424         (method_input_signature_from_object_info)
6425         (method_output_signature_from_object_info): New functions.
6426         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6427         converts dbus message arguments into a GValue array.  Used for both
6428         signal handling and method invocation.
6429         (struct DBusGlibWriteIterfaceData): New utility structure.
6430         (write_interface): New function; generate introspection XML for
6431         an interface.
6432         (introspect_interfaces): New function; gathers all interface->methods,
6433         generates introspection XML for them.
6434         (handle_introspect): Invoke introspect_interfaces.
6435         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6436         (lookup_object_and_method): New function; examines an incoming message
6437         and attempts to match it up (via interface, method name, and argument
6438         signature) with a known object and method.
6439         (gerror_domaincode_to_dbus_error_name): New function; converts a
6440         GError domain and code into a DBus error name.  Needs GError data
6441         added to object introspection to work well.
6442         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6443         GError.
6444         (invoke_object_method): New function to invoke an object method
6445         looked up via lookup_object_and_method.  Parses the incoming
6446         message, turns it into a GValue array, then invokes the marshaller
6447         specified in the DBusGMethodInfo.  Creates a new message with
6448         either return values or error message as appropriate.
6449         (gobject_message_function): Invoke lookup_object_and_method and
6450         invoke_object_method.
6451
6452         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6453         (enum DBusBindingOutputMode): New enum for binding output modes.
6454         (pretty_print): Print binding names.
6455         (dbus_binding_tool_error_quark): GError bits.
6456         (version): Fix typo.
6457         (main): Create GIOChannel for output.  Parse new --mode argument,
6458         possible values are "pretty-print", "glib-server", "glib-client".
6459         Use mode to invoke appropriate function.
6460         
6461         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6462
6463         * glib/dbus-glib-tool.h: New header, just includes GError bits
6464         for now.
6465
6466         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6467         maps binding style to name.
6468         (struct MethodInfo): Ditto.
6469         (get_hash_keys, get_hash_key): Utility function, returns keys for
6470         a GHashTable.
6471         (interface_info_new, method_info_new): Initialize bindings.
6472         (interface_info_unref, method_info_unref): Destroy bindings.
6473         (method_info_get_binding_names, method_info_get_binding_name)
6474         (interface_info_get_binding_names, interface_info_get_binding_name):
6475         Functions for retrieving binding names.
6476         (method_info_set_binding_name, interface_info_set_binding_name):
6477         Functions for setting binding names.
6478
6479         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6480         for glib binding generation.
6481
6482         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6483         and client-side glib glue generation.
6484
6485         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6486         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6487         dbus-glib-tool.h.
6488
6489         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6490         of using GClosureMarshal directly.
6491         (struct DBusGObjectInfo): Add n_infos member.
6492
6493         * test/glib/test-service-glib.xml: New file; contains introspection data
6494         for MyTestObject used in test-service-glib.c.
6495
6496         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6497         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6498         (my_object_uppercase, my_object_many_args): New test methods.
6499         (main): Use dbus_g_object_class_install_info to include generated object
6500         info.
6501
6502         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6503         as well as client-side bindings.
6504
6505         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6506         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6507         using both the dbus_gproxy stuff directly as well as the generated bindings.
6508
6509 2005-02-15  Havoc Pennington  <hp@redhat.com>
6510
6511         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6512         complete a pending call, don't run filters first.
6513
6514         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6515         dbus_pending_call_steal_reply
6516
6517         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6518         _dbus_connection_block_pending_call
6519         (dbus_pending_call_get_reply): change to steal_reply and return a
6520         ref
6521
6522         * dbus/dbus-connection.c
6523         (dbus_connection_send_with_reply_and_block): port to work in terms
6524         of DBusPendingCall
6525         (_dbus_connection_block_pending_call): replace block_for_reply
6526         with this
6527
6528 2005-02-14  Havoc Pennington  <hp@redhat.com>
6529
6530         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6531         properly handle looking up group information by name; fix 
6532         from j@bootlab.org
6533
6534 2005-02-13  Havoc Pennington  <hp@redhat.com>
6535
6536         * dbus/dbus-connection.c (dbus_connection_return_message) 
6537         (dbus_connection_borrow_message): hold dispatch lock while message
6538         is outstanding
6539         (_dbus_connection_block_for_reply): hold dispatch lock while we
6540         block for the reply, so nobody steals our reply
6541         (dbus_connection_pop_message): hold the dispatch lock while we
6542         pluck the message
6543
6544 2005-02-13  Havoc Pennington  <hp@redhat.com>
6545
6546         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6547         (_dbus_connection_release_dispatch)
6548         (_dbus_connection_acquire_io_path)
6549         (_dbus_connection_release_io_path): make the mutex and condvar
6550         control access to the "acquired" flag. Drop the connection lock
6551         while waiting on the condvar. Hopefully these are baby steps in
6552         roughly the right direction.
6553
6554 2005-02-13  Havoc Pennington  <hp@redhat.com>
6555
6556         * dbus/dbus-connection.c: use separate mutexes for the condition
6557         variables; this is some kind of baseline for sanity, but the
6558         condition variables still aren't used correctly afaict
6559
6560 2005-02-13  Havoc Pennington  <hp@redhat.com>
6561
6562         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6563         fix a double-unlock
6564
6565         * dbus/dbus-connection.c
6566         (_dbus_connection_detach_pending_call_unlocked): add this
6567
6568         Initial semi-correct pass through to fix thread locking; there are
6569         still some issues with the condition variable paths I'm pretty
6570         sure
6571         
6572         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6573         lock/unlock calls
6574
6575         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6576         rename to add _unlocked
6577         (struct DBusConnection): move "dispatch_acquired" and
6578         "io_path_acquired" to use only one bit each.
6579         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6580         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6581         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6582         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6583         (_dbus_connection_remove_timeout) 
6584         (_dbus_connection_toggle_timeout): drop lock when calling out to
6585         user functions; done in a hacky/bad way.
6586         (_dbus_connection_send_and_unlock): add a missing unlock
6587         (_dbus_connection_block_for_reply): add a missing unlock
6588
6589         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6590         drop lock in a hacky probably unsafe way to call out to user
6591         function
6592
6593 2005-02-12  Havoc Pennington  <hp@redhat.com>
6594
6595         * tools/dbus-tree-view.c (info_set_func_text): display more
6596         details on args
6597
6598         * bus/driver.c (bus_driver_handle_list_services): list the bus
6599         driver
6600
6601         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6602
6603         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6604         (method_info_get_n_args): new function
6605
6606 2005-02-12  Havoc Pennington  <hp@redhat.com>
6607
6608         * bus/driver.c (bus_driver_handle_introspect): add introspection
6609         for bus driver
6610
6611 2005-02-12  Havoc Pennington  <hp@redhat.com>
6612
6613         * bus/driver.c: put the signature of each bus driver method in the
6614         table of handlers and check it on incoming calls; this isn't
6615         really useful, but going to add introspect support in a minute.
6616
6617 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6618
6619         * mono/Connection.cs: The unpredictability of finalizers in mono
6620         prevents us from deterministically disconnecting the filters from
6621         the Service class's finalizer, so move tracking of filters and
6622         matches here.  Add API for that.
6623
6624         * mono/Service.cs: Remove the code, add code which calls the
6625         methods now on the Connection class.
6626
6627 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6628
6629         * python/dbus.py (class Sender): added to support dbus signals better
6630         (Bus::add_signal_receiver): added expand_args parameter which defaults
6631         to True.  When expand args is True the signal handler will pass the 
6632         message arguments as parameters to the signal handler.  If False
6633         revert to previous behavior where the signal handler must get the
6634         argument list from the message.  This is to help port applications
6635         like HAL that have a tendancy to send variable length argument lists.
6636         self._match_rule_to_receivers is now a dict of dicts.
6637         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6638         removing it from a list
6639         (Bus::_signal_func): change signal handlers so that interface,
6640         signal_name, service, path and message are packed into a Sender
6641         object and that is passed to the handler.  If expand_args is True
6642         extract the args list from the message and append it to the parameter
6643         list
6644         
6645         * python/dbus_bindings.pyx.in (class Signature): added to support 
6646         signiature types
6647         (MessageIter::__init__): changed iteration limit to match D-BUS
6648         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6649         STRUCT and VARIENT type support
6650         (MessageIter::python_value_to_dbus_sig): made recursive to support
6651         recursive types
6652         (MessageIter::append*): added Signature, dict, tuple 
6653         support
6654
6655         * python/examples/example-client.py: added examples of getting tuples
6656         and dicts
6657
6658         * python/examples/example-service.py: added examples of sending tuples
6659         and dicts
6660
6661         * python/examples/example-signal-recipient.py: Fixed to handle new
6662         signal callback format
6663
6664 2005-02-10  Havoc Pennington  <hp@redhat.com>
6665
6666         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6667         (call dbus_g_proxy_add_signal)
6668
6669         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6670         escape the hostname
6671         (_dbus_server_new_for_domain_socket): escape the path
6672
6673         * dbus/dbus-address.c (dbus_address_escape_value): new
6674         (dbus_address_unescape_value): new
6675         (dbus_parse_address): unescape values
6676
6677         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6678
6679         * doc/dbus-specification.xml: explain how to escape values in
6680         addresses
6681
6682 2005-02-10  Havoc Pennington  <hp@redhat.com>
6683
6684         * dbus/dbus-message-factory.c (generate_special): modify test to
6685         avoid using a non-basic dict key
6686
6687         * dbus/dbus-marshal-validate-util.c: add test for the below
6688
6689         * doc/dbus-specification.xml: require that dict keys are a basic
6690         type
6691
6692         * dbus/dbus-marshal-validate.c
6693         (_dbus_validate_signature_with_reason): require that dict key is a
6694         basic type
6695
6696 2005-02-10  Havoc Pennington  <hp@redhat.com>
6697
6698         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6699         change to be _and_unlock instead of _unlocked
6700
6701         * dbus/dbus-connection.c
6702         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6703         have no_update so we can find this bug quickly in future
6704
6705 2005-02-10  Havoc Pennington  <hp@redhat.com>
6706
6707         * dbus/dbus-message-util.c (verify_test_message): tests for string
6708         array
6709
6710         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6711         support for arrays of string/signature/path
6712
6713 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6714
6715         * dbus/dbus-connection.c
6716         (_dbus_connection_queue_received_message_link,
6717         _dbus_connection_message_sent): Add the path to
6718         the verbose output.
6719         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6720         _dbus_connection_send_preallocated_unlocked(), updated the
6721         dispatch status, and unlocks.  Fixes a bug where certain
6722         situations (like a broken pipe) could cause a Disconnect message
6723         to not be sent, tricking the bus into thinking a service was still
6724         there when the process had quit.
6725         (_dbus_connection_send_preallocated): Call
6726         _dbus_connection_send_preallocated_and_unlock().
6727         (_dbus_connection_send_and_unlock): Added.  Calls
6728         _dbus_connection_send_preallocated_and_unlock().
6729         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6730         (dbus_connection_send_with_reply): Update the dispatch status and
6731         unlock.
6732
6733         * mono/Service.cs (~Service): Added.  Removes the filter so that
6734         we don't get unmanaged code calling back into a GCed delegate.
6735         (RemoveFilter); Added.
6736
6737 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6738
6739         * dbus/dbus-message.c (dbus_message_iter_open_container):
6740         - Removed check for iterator type being an array because
6741         get_arg_type does not work with writer iterators
6742         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6743
6744 2005-02-07  Havoc Pennington  <hp@redhat.com>
6745
6746         * doc/dbus-specification.xml: some more language cleanups; add
6747         stuff about how to deal with invalid protocol and extension
6748         points; add _ to allowed chars in auth commands; add EXTENSION_
6749         auth command prefix
6750
6751 2005-02-06  Havoc Pennington  <hp@redhat.com>
6752
6753         * s/expected/required/ in a couple places for clarity
6754
6755 2005-02-07  Colin Walters  <walters@verbum.org>
6756
6757         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6758         sender or proposed_recipient.
6759
6760 2005-02-06  Havoc Pennington  <hp@redhat.com>
6761
6762         * dbus/dbus-message-factory.c (generate_special): more tests
6763
6764         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6765         array length that exceeds the maximum
6766
6767 2005-02-05  Havoc Pennington  <hp@redhat.com>
6768
6769         * dbus/dbus-message-factory.c (generate_special): more test cases,
6770         increasing coverage
6771
6772         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6773         reason why a signature was invalid
6774
6775         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6776         skip the length of the string before we look at it in validation
6777
6778         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6779         equal_substring
6780
6781         * dbus/dbus-message.c (_dbus_message_loader_new): default
6782         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6783
6784 2005-02-05  Havoc Pennington  <hp@redhat.com>
6785
6786         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6787         if the signature of a variant was empty
6788         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6789         struct with no element type)
6790
6791         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6792         mangled messages to break things
6793
6794 2005-02-04  Havoc Pennington  <hp@redhat.com>
6795
6796         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6797         g_quark_try_string() so it actually can return 0
6798         (dbus_g_proxy_connect_signal): ditto
6799
6800 2005-02-04  Havoc Pennington  <hp@redhat.com>
6801
6802         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6803         bogus warning
6804         (tristring_from_message): assert cleanly on null path/interface
6805         (should not be possible though I decided later)
6806         (dbus_g_proxy_dispose): move proxy manager unregistration here
6807         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6808         g_return_if_fail() checks
6809
6810 2005-02-04  Havoc Pennington  <hp@redhat.com>
6811
6812         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6813
6814         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6815         (with some minor changes)
6816
6817         * doc/dbus-specification.xml: add deprecated attribute to
6818         introspection format
6819
6820 2005-01-31  Havoc Pennington  <hp@redhat.com>
6821
6822         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6823         think it's sort of right
6824
6825 2005-01-30  Havoc Pennington  <hp@redhat.com>
6826
6827         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6828
6829 2005-01-30  Havoc Pennington  <hp@redhat.com>
6830
6831         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6832
6833         * autogen.sh: change to autotools 1.9
6834
6835         * glib/dbus-gproxy.c: completely change how signals work
6836         (dbus_g_proxy_add_signal): new function to specify signature of a
6837         signal
6838         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6839         and g_warning if the incoming message has the wrong signature.
6840
6841 2005-01-30  Havoc Pennington  <hp@redhat.com>
6842
6843         * tools/dbus-names-model.c (have_names_notify): fix this
6844
6845         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6846         up the string array handling a bit 
6847
6848 2005-01-30  Havoc Pennington  <hp@redhat.com>
6849
6850         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6851         (dbus_g_pending_call_cancel): new function
6852
6853         * dbus/dbus-glib.h: move GType decls for connection/message here;
6854         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6855         here, just kind of rationalizing how we handle all that
6856
6857         * tools/dbus-names-model.c: new file for a tree model listing the
6858         services on a bus
6859
6860         * tools/dbus-tree-view.c (model_new): use proper typing on the
6861         model rows
6862
6863 2005-01-30  Havoc Pennington  <hp@redhat.com>
6864
6865         * glib/dbus-gmain.c: add a custom GSource back that just checks
6866         whether the message queue has anything in it; otherwise, there are 
6867         cases where we won't see messages in the queue since there was no 
6868         IO visible to the glib main loop
6869
6870         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6871         increase default message timeout to 25 seconds
6872
6873 2005-01-30  Havoc Pennington  <hp@redhat.com>
6874
6875         * test/glib/test-profile.c (no_bus_stop_server): remove the
6876         warning about the g_warning that I just fixed
6877
6878         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6879         custom source, seems to be a lot easier to understand and work
6880         better.
6881
6882 2005-01-30  Havoc Pennington  <hp@redhat.com>
6883
6884         I think this main loop thing is conceptually broken, but here are 
6885         some band aids. I'll maybe rewrite it in a minute.
6886         
6887         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6888         custom GSource, so don't pass it in; confusing
6889         (gsource_server_finalize, gsource_connection_finalize): add
6890         finalize handlers that remove all the watches.  
6891
6892 2005-01-30  Havoc Pennington  <hp@redhat.com>
6893
6894         * glib/dbus-gobject.c (introspect_properties): fix the XML
6895         generated
6896
6897         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6898         which effectively detects the use of freed messages
6899
6900         * glib/dbus-gobject.c (handle_introspect): modify and return the
6901         reply message instead of the incoming message
6902
6903         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6904         gee, maybe it should SEND THE XML instead of just making a string
6905         and freeing it again ;-)
6906
6907         * tools/dbus-print-message.c (print_message): improve printing of
6908         messages
6909
6910         * configure.in: add debug-glib.service to the output
6911
6912 2005-01-30  Havoc Pennington  <hp@redhat.com>
6913
6914         dbus-viewer introspected and displayed the bus driver
6915         
6916         * dbus/dbus-object-tree.c 
6917         (object_tree_test_iteration): add tests for a handler registered on "/"
6918
6919         * dbus/dbus-object-tree.c
6920         (_dbus_decompose_path): fix to handle path "/" properly
6921         (run_decompose_tests): add tests for path decomposition
6922         
6923         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6924         properly
6925
6926         * glib/dbus-gobject.c (handle_introspect): fix quotes
6927
6928         * test/glib/run-test.sh: support launching the bus, then running
6929         dbus-viewer
6930
6931         * test/glib/test-service-glib.c (main): put in a trivial gobject
6932         subclass and register it on the connection
6933
6934         * bus/driver.c (bus_driver_handle_introspect): implement
6935         introspection of the bus driver service
6936
6937         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6938         identifiers, doctype decl
6939
6940         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6941         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6942         returning the service unchanged.
6943         (bus_driver_handle_message): remove old check for reply_serial in
6944         method calls, now the message type deals with that
6945         (bus_driver_handle_message): handle NULL interface
6946
6947         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6948
6949         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6950         -1 for len
6951
6952         * tools/dbus-viewer.c: add support for introspecting a service on
6953         a bus
6954
6955         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6956         (dbus_g_pending_call_unref): add
6957
6958 2005-01-29  Havoc Pennington  <hp@redhat.com>
6959
6960         * tools/dbus-tree-view.c: add support for displaying properties.
6961         (run dbus-viewer with an introspect xml file as arg, then resize
6962         the window so the tree elements show up, not sure what that is)
6963
6964         * glib/dbus-gobject.c (handle_introspect): return
6965         org.freedesktop.Properties and org.freedesktop.Introspectable
6966         interfaces when we are introspected.
6967
6968         * doc/dbus-specification.xml: allow empty interface name when 
6969         Get/Set a property
6970
6971 2005-01-29  Havoc Pennington  <hp@redhat.com>
6972
6973         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6974         though it uses glib, it could be extended for any binding in
6975         principle
6976
6977         * glib/dbus-gobject.c (gobject_message_function): change to the
6978         new way properties work
6979
6980         * dbus/dbus-protocol.h: add the new interfaces
6981
6982         * doc/dbus-specification.xml: document the introspection format,
6983         Introspectable interface, and add an org.freedesktop.Properties
6984         interface.
6985
6986         * glib/dbus-gparser.c: add support for a <property> element
6987
6988         * glib/dbus-gidl.c: add PropertyInfo
6989
6990         * glib/dbus-gobject.c (handle_introspect): put the outermost
6991         <node> outside the signal and property descriptions.
6992         (introspect_properties): export properties as <property> rather
6993         than as method calls
6994
6995 2005-01-28  Havoc Pennington  <hp@redhat.com>
6996
6997         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6998         related to authentication protocol
6999
7000 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
7001
7002         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
7003                 - BUS_ACTIVATION -> BUS_STARTER
7004                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
7005                 - class MessageIter (__init__): Added recursion checking 
7006                 so we throw a nice error instead of just disconnecting from the
7007                 bus.
7008                 (get): Added arg_type parameter for recursion.
7009                 Removed the nil type
7010                 Added signiture type placeholder (not implemented)
7011                 Added struct type placeholder (not implemented)
7012                 Added varient type placeholder (not implemented)
7013                 Commented out dict type for now     
7014                 (get_element_type): renamed from get_array_type
7015                 (get_*): changed to use the dbus_message_iter_get_basic API
7016                 (get_*_array): removed in favor of recursive get_array method
7017                 (get_array): new recursive method which calls get to marshal
7018                 the elements of the array
7019                 (value_to_dbus_sig): New method returns the corrasponding
7020                 dbus signiture to a python value
7021                 (append): Comment out dict handling for now
7022                 Handle lists with the new recursive API
7023                 Comment out None handling for now
7024                 (append_nil): removed
7025                 (append_*): changed to use dbus_message_iter_append_basic API
7026                 (append_*_array): removed in favor of recursive append_array 
7027                 method
7028                 (__str__): Make it easier to print out recursive iterators
7029                 for debugging
7030                 - class Message (__str__): moved type inspection to the
7031                 MessageIter class' __str__ method
7032                 (get_iter): Added an append parameter wich defaults to False
7033                 If True use the new API's to create an append iterator
7034
7035         * python/dbus.py: Update to use new bindings API
7036                 - TYPE_ACTIVATION -> TYPE_STARTER
7037                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
7038                 - class ActivationBus -> class StarterBus
7039                 - class RemoteObject (__call__): get an append iterator
7040                 - (_dispatch_dbus_method_call): get an append iterator
7041                 - class Object (emit_signal): get an append iterator
7042
7043         * python/examples/: Fixed up the examples to work with the new API
7044                 
7045 2005-01-28  Joe Shaw  <joeshaw@novell.com>
7046
7047         * configure.in: Bump version up to 0.30.
7048
7049         * HACKING: Add a release item to bump the version number up after 
7050         a release.
7051
7052 2005-01-28  Havoc Pennington  <hp@redhat.com>
7053
7054         * doc/dbus-specification.xml: update to describe 16-bit types and
7055         dict entries
7056
7057         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
7058         assertion
7059
7060         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
7061         type
7062
7063         * dbus/dbus-marshal-recursive.c: implement
7064
7065 2005-01-27  Havoc Pennington  <hp@redhat.com>
7066
7067         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
7068
7069         * configure.in: find the right type for 16 and 32 bit ints as well
7070         as 64
7071
7072         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
7073         the 16-bit types so people don't have to stuff them in 32-bit or
7074         byte arrays.
7075
7076 2005-01-27  Havoc Pennington  <hp@redhat.com>
7077
7078         * dbus/dbus-message.c: byteswap the message if you init an
7079         iterator to read/write from it
7080         
7081         * dbus/dbus-marshal-byteswap.c: new file implementing 
7082         _dbus_marshal_byteswap()
7083
7084         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
7085
7086 2005-01-26  Havoc Pennington  <hp@redhat.com>
7087         
7088         * dbus/dbus-marshal-validate-util.c: break this out (and fix
7089         build, apparently - nobody noticed?)
7090         
7091 2005-01-26  Havoc Pennington  <hp@redhat.com>
7092
7093         * dbus/dbus-marshal-recursive.h: remove todo comment
7094
7095 2005-01-25  Joe Shaw  <joeshaw@novell.com>
7096
7097         * Land the mono binding changes to conform to the new APIs.
7098
7099         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
7100         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
7101
7102         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
7103         type code as a string.
7104         (InitAppending): Rename dbus_message_append_iter_init() to
7105         dbus_message_iter_init_append().
7106
7107         * mono/BusDriver.cs: Rename ServiceEventHandler to
7108         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
7109         Rename ServiceOwnerChanged to NameOwnerChanged.
7110
7111         * mono/Connection.cs: Rename BaseService to UniqueName, and the
7112         underlying C call.
7113
7114         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
7115
7116         * mono/Service.cs: Rename Exists to HasOwner, internally rename
7117         dbus_bus_acquire_service() to dbus_bus_request_name().
7118
7119         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
7120         of Type.UnderlyingSystemType to get the correct element type for
7121         the array.
7122         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
7123         dbus_message_get_{element|arg}_type() instead of
7124         dbus_message_iter_init_array_iterator().
7125         (Append): Replace dbus_message_iter_append_array() with
7126         dbus_message_iter_open_container() and
7127         dbus_message_iter_close_container().
7128
7129         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
7130         types have been removed.
7131         
7132         * mono/DBusType/*.cs: Replace calls of
7133         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
7134         but specify the type in the DllImport extern declaration.  Ditto
7135         for dbus_message_iter_append_[type]() ->
7136         dbus_message_iter_append_basic().
7137
7138         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
7139         NameOwnerChangedHandler.
7140
7141 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
7142
7143         * python/dbus_bindings.pyx.in: Rename of methods and bindings
7144                 - get_base_service -> get_unique_name
7145                 - bus_get_base_service -> bus_get_unique_name
7146                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
7147                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
7148                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
7149                 - bus_activate_service -> bus_start_service_by_name
7150                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
7151                 - bus_acquire_service -> bus_request_name
7152                 - dbus_bus_acquire_service -> dbus_bus_request_name
7153                 - bus_service_exists -> bus_name_has_owner
7154                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
7155
7156         * python/dbus.py: Rename of methods
7157                 - activate_service -> start_service_by_name
7158                 - bus_acquire_service -> bus_request_name
7159                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
7160                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
7161
7162         
7163 2005-01-24  Joe Shaw  <joeshaw@novell.com>
7164
7165         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
7166         signature for the method that can't be found.
7167
7168         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
7169         the message has any arguments, we need to call
7170         _dbus_type_reader_get_current_type(), not
7171         _dbus_type_reader_has_next().
7172
7173 2005-01-24  Havoc Pennington  <hp@redhat.com>
7174
7175         * dbus/dbus-message-factory.c: more testing of message validation
7176
7177         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
7178         header
7179
7180 2005-01-23  Havoc Pennington  <hp@redhat.com>
7181
7182         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
7183         get this all working, not many tests in the framework yet though
7184
7185 2005-01-22  Havoc Pennington  <hp@redhat.com>
7186
7187         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
7188         tutorial, based on work from David Wheeler.
7189
7190 2005-01-21  Havoc Pennington  <hp@redhat.com>
7191
7192         * dbus/dbus-bus.c: add more return_if_fail checks
7193
7194         * dbus/dbus-message.c (load_message): have the "no validation"
7195         mode (have to edit the code to toggle the mode for now though)
7196
7197         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
7198         skips all validation; I want to use this at least for benchmark
7199         baseline, I'm not sure if it should be a publicly-available switch.
7200
7201 2005-01-21  Havoc Pennington  <hp@redhat.com>
7202
7203         * glib/dbus-gmain.c: don't put the GLib bindings in the same
7204         toplevel doxygen group as the low-level API stuff
7205
7206         * dbus/dbus.h: note that libdbus is the low-level API
7207
7208 2005-01-20  Havoc Pennington  <hp@redhat.com>
7209
7210         * update-dbus-docs.sh: script to update docs on the web site, only
7211         works for me though. neener.
7212
7213 2005-01-20  Havoc Pennington  <hp@redhat.com>
7214
7215         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
7216         code can reveal bugs in it
7217
7218 2005-01-20  Havoc Pennington  <hp@redhat.com>
7219
7220         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
7221         select() version, patches from Tor Lillqvist
7222
7223 2005-01-20  Havoc Pennington  <hp@redhat.com>
7224
7225         * doc/dbus-tutorial.xml: replace > with &gt;
7226
7227         * bus/services.c (bus_registry_acquire_service): validate the name
7228         and return a better error if it's no good.
7229
7230         * doc/dbus-specification.xml: note NO_AUTO_START change
7231
7232         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
7233         from AUTO_START, we're toggling the default
7234
7235         * bus/dispatch.c: adapt the tests to change of auto-start default
7236
7237 2005-01-18  Havoc Pennington  <hp@redhat.com>
7238
7239         * rename dbus-daemon-1 to dbus-daemon throughout
7240
7241 2005-01-18  Havoc Pennington  <hp@redhat.com>
7242
7243         * Throughout, grand renaming to strip out the use of "service",
7244         just say "name" instead (or "bus name" when ambiguous).  Did not
7245         change the internal code of the message bus itself, only the
7246         programmer-facing API and messages.
7247         
7248         * doc/dbus-specification.xml: further update the message bus section
7249         
7250         * bus/config-parser.c (all_are_equiv): fix bug using freed string
7251         in error case
7252
7253 2005-01-17  Havoc Pennington  <hp@redhat.com>
7254
7255         * dbus/dbus-types.h: remove 16-bit types since we don't use them
7256         ever
7257
7258         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7259         "invalid name character" not only non-ASCII
7260
7261         * doc/dbus-specification.xml: further update spec, message bus 
7262         parts are still out-of-date but the marshaling etc. stuff is now
7263         accurate-ish
7264
7265 2005-01-17  Havoc Pennington  <hp@redhat.com>
7266
7267         * doc/dbus-specification.xml: partially update spec
7268
7269 2005-01-17  Havoc Pennington  <hp@redhat.com>
7270
7271         * Throughout, align variant bodies according to the contained
7272         type, rather than always to 8. Should save a fair bit of space in
7273         message headers.
7274         
7275         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7276         fix handling of case where p == end
7277
7278         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7279
7280 2005-01-17  Havoc Pennington  <hp@redhat.com>
7281
7282         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7283
7284         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7285         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7286         are marshaling/unmarshaling a boolean.
7287
7288 2005-01-16  Havoc Pennington  <hp@redhat.com>
7289
7290         This is about it on what can be disabled/deleted from libdbus
7291         easily, back below 150K anyhow. Deeper cuts are more work than 
7292         just turning the code off as I've done here.
7293         
7294         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7295         signed int convenience funcs
7296
7297         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7298         verbose mode
7299
7300         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7301         things out of libdbus
7302
7303         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7304         
7305         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7306         tests-enabled-only, though it should probably be deleted)
7307
7308         * dbus/dbus-message-util.c: same stuff
7309
7310         * dbus/dbus-auth-util.c: same stuff
7311
7312 2005-01-16  Havoc Pennington  <hp@redhat.com>
7313
7314         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7315
7316         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7317         way for stripping down dbus-userdb.c stuff included in libdbus.
7318         Rename _dbus_parse_uid for consistency.
7319
7320 2005-01-16  Havoc Pennington  <hp@redhat.com>
7321
7322         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7323         name the assertion failed in
7324
7325         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7326         (_dbus_return_val_if_fail): assert that the name of the function
7327         containing the check doesn't start with '_', since we only want to 
7328         use checks on public functions
7329         
7330         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7331         checks to assertions
7332
7333         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7334         change checks to asserts for private function
7335
7336         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7337         to asserts for private function
7338
7339         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7340         broken assertion that was breaking make check
7341         (_dbus_type_reader_array_is_empty): remove this rather than fix
7342         it, was only used in assertions
7343
7344 2005-01-16  Havoc Pennington  <hp@redhat.com>
7345
7346         * test/unused-code-gc.py: hacky script to find code that's used
7347         only by the bus (not libdbus) or used only by tests or not used at
7348         all. It has some false alarms, but looks like we can clean up a
7349         lot of size from libdbus.
7350
7351         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7352         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7353         
7354 2005-01-16  Havoc Pennington  <hp@redhat.com>
7355
7356         * Add and fix docs according to Doxygen warnings throughout
7357         source.
7358         
7359         * dbus/dbus-marshal-recursive.c
7360         (_dbus_type_reader_array_is_empty): change this to just call
7361         array_reader_get_array_len() and make it static
7362
7363         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7364         from get_array_type
7365         (dbus_message_iter_init_append): rename from append_iter_init
7366
7367         * dbus/dbus-marshal-recursive.c
7368         (_dbus_type_reader_get_element_type): rename from
7369         _dbus_type_reader_get_array_type
7370
7371 2005-01-15  Havoc Pennington  <hp@redhat.com>
7372
7373         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7374
7375         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7376         when DBUS_DISABLE_ASSERT
7377         (_dbus_marshal_set_basic): be sure we align for the string length
7378
7379         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7380         this look faster
7381
7382         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7383         inline macro version
7384         (_dbus_string_set_byte): provide inline macro version
7385
7386 2005-01-15  Havoc Pennington  <hp@redhat.com>
7387
7388         * Land the new message args API and type system.
7389
7390         This patch is huge, but the public API change is not 
7391         really large. The set of D-BUS types has changed somewhat, 
7392         and the arg "getters" are more geared toward language bindings;
7393         they don't make a copy, etc.
7394
7395         There are also some known issues. See these emails for details
7396         on this huge patch:
7397         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7398         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7399         
7400         * dbus/dbus-marshal-*: all the new stuff
7401
7402         * dbus/dbus-message.c: basically rewritten
7403
7404         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7405         freed blocks to be all non-nul bytes so using freed memory is less
7406         likely to work right
7407
7408         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7409         DBUS_FAIL_MALLOC=N environment variable, so you can do
7410         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7411         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7412         thorough.
7413
7414         * qt/message.cpp: port to the new message args API
7415         (operator<<): use str.utf8() rather than str.unicode()
7416         (pretty sure this is right from the Qt docs?)
7417
7418         * glib/dbus-gvalue.c: port to the new message args API
7419
7420         * bus/dispatch.c, bus/driver.c: port to the new message args API
7421
7422         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7423         "locked" flag to TRUE and align_offset to 0; I guess we never
7424         looked at these anyhow, but seems cleaner.
7425
7426         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7427         move allocation padding macro to this header; use it to implement
7428         (_DBUS_STRING_STATIC): ability to declare a static string.
7429
7430         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7431         change to return TRUE if the interface is not set.
7432
7433         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7434         to dbus-marshal-validate.[hc]
7435
7436         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7437         dbus-internals.c
7438
7439         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7440         to dbus-marshal-*.[hc]
7441
7442         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7443         function here from dbus-marshal.c
7444
7445 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7446
7447         * NEWS: Update for 0.23.
7448
7449         * configure.in: Release 0.23.
7450
7451 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7452
7453         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7454         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7455         behind.
7456
7457         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7458         uninstall"
7459
7460         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7461         is an enum, get the enum's underlying type.  Another mono
7462         1.1.3 fix.
7463
7464 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7465
7466         Patch from Sjoerd Simons <sjoerd@luon.net>
7467
7468         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7469         DESTDIR.  It breaks stuff.
7470
7471 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7472
7473         Patch from Tambet Ingo <tambet@ximian.com>
7474
7475         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7476         calling type.GetElementType().  The code previously depended on
7477         broken Mono behavior, which was fixed in Mono 1.1.3.
7478
7479         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7480         Activator.CreateInstance() so that the class's constructor is
7481         called with the right parameters.
7482
7483 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7484
7485         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7486
7487         * dbus/dbus-connection.c
7488         (_dbus_connection_queue_received_message_link): Call
7489         _dbus_connection_remove_timeout() instead of the _locked()
7490         variant, since it's always called from
7491         _dbus_connection_handle_watch(), which handles the locking.
7492         Removed the _locked() variant since it's no longer used.
7493
7494 2005-01-03  Havoc Pennington  <hp@redhat.com>
7495
7496         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7497         return
7498         
7499 2004-12-26  Havoc Pennington  <hp@redhat.com>
7500
7501         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7502
7503 2005-01-03  Havoc Pennington  <hp@redhat.com>
7504
7505         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7506         floating point
7507
7508         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7509
7510 2005-01-02  Havoc Pennington  <hp@redhat.com>
7511
7512         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7513
7514 2005-01-01  Havoc Pennington  <hp@redhat.com>
7515
7516         * configure.in: add -Wfloat-equal
7517
7518 2005-01-01  Havoc Pennington  <hp@redhat.com>
7519
7520         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7521         for a variety of reasons '==' doesn't do this.
7522
7523 2004-12-31  Havoc Pennington  <hp@redhat.com>
7524
7525         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7526         I keep wishing I had
7527
7528 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7529
7530         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7531
7532 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7533
7534         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7535         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7536         dbus-protocol.h.  Because they are defines and not enums they are not
7537         autogenerated.
7538
7539 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7540
7541         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7542         dbus_bus_activate_service
7543
7544         * python/dbus.py (Bus.activate_service): activate a service on the
7545         bus.
7546
7547 2004-12-24  Havoc Pennington  <hp@redhat.com>
7548
7549         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7550         file format has also changed and I haven't adapted to that yet
7551         
7552         * Makefile.am: load .gcno files from latest gcc
7553
7554 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7555         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7556
7557         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7558         lowlevel binding
7559
7560         * python/dbus.py (get_unix_user): Added binding to 
7561         call dbus_bindings.bus_get_unix_user
7562
7563         * python/extract.py: Modified the proto_pat regex to
7564         handle unsigned long
7565
7566 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7567
7568         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7569         better POSIX compliance.
7570
7571 2004-12-19  Havoc Pennington  <hp@redhat.com>
7572
7573         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7574         (_dbus_string_insert_8_aligned): new functions
7575
7576         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7577
7578 2004-12-18  Havoc Pennington  <hp@redhat.com>
7579
7580         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7581         macro
7582
7583         * dbus/dbus-message.c: fix a comment, and add a still-unused
7584         not-implemented function
7585
7586         * dbus/dbus-marshal.h: fix comment
7587
7588         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7589
7590 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7591
7592         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7593         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7594         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7595         Type.UnderlyingSystemType to get the actual system type
7596         underneath.  This code previously depended on the broken Mono
7597         behavior, which was fixed in 1.1.3.
7598
7599 2004-11-27  Havoc Pennington  <hp@redhat.com>
7600
7601         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7602         are disabled
7603         (_dbus_string_get_const_data): inline when asserts are disabled
7604
7605         * dbus/dbus-message.c: record the _dbus_current_generation of
7606         creation so we can complain if dbus_shutdown() is used improperly.
7607         Do this only if checks are enabled.
7608
7609         * dbus/dbus-connection.c: ditto
7610         
7611 2004-11-26  Havoc Pennington  <hp@redhat.com>
7612
7613         * test/glib/test-profile.c: add with_bus mode to profile echoes
7614         that go through the bus.
7615
7616         * test/glib/run-test.sh: add ability to run test-profile
7617
7618         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7619         config file reload.
7620
7621 2004-11-26  Havoc Pennington  <hp@redhat.com>
7622
7623         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7624         thing was implemented
7625
7626 2004-11-26  Havoc Pennington  <hp@redhat.com>
7627
7628         * test/glib/test-profile.c: tweak a bit, add support for some
7629         made-up minimal malloc overhead with plain sockets, since in 
7630         real life some sort of buffers are unavoidable thus we could 
7631         count them in the theoretical best case
7632
7633 2004-11-26  Havoc Pennington  <hp@redhat.com>
7634
7635         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7636         where I was trying to cache one too many messages
7637
7638 2004-11-26  Havoc Pennington  <hp@redhat.com>
7639
7640         * dbus/dbus-message.c: reimplement message cache as an array which 
7641         makes the cache about twice as fast and saves maybe 1.5% overall
7642
7643 2004-11-26  Havoc Pennington  <hp@redhat.com>
7644
7645         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7646         message cache lock here
7647
7648 2004-11-26  Havoc Pennington  <hp@redhat.com>
7649
7650         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7651         the "char byte_order" next to each other to save 4 bytes
7652         (dbus_message_new_empty_header): reduce preallocation, since the
7653         message cache should achieve a similar effect
7654         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7655         message cache that keeps a few DBusMessage around in a pool,
7656         another 8% speedup or so.
7657
7658         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7659
7660 2004-11-25  Havoc Pennington  <hp@redhat.com>
7661
7662         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7663         to write, without reading or blocking, try it before the poll()
7664         and skip the poll() if nothing remains to write. This is about a
7665         3% speedup in the echo client/server
7666
7667 2004-11-25  Havoc Pennington  <hp@redhat.com>
7668
7669         The primary change here is to always write() once before adding
7670         the write watch, which gives us about a 10% performance increase.
7671         
7672         * dbus/dbus-transport-unix.c: a number of modifications to cope
7673         with removing messages_pending
7674         (check_write_watch): properly handle
7675         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7676         messages_pending stuff
7677         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7678         AUTHENTICATED cases
7679         (unix_handle_watch): after writing, see if the write watch can be
7680         removed
7681         (unix_do_iteration): assert that write_watch/read_watch are
7682         non-NULL rather than testing that they aren't, since they 
7683         aren't allowed to be NULL. check_write_watch() at the end so 
7684         we add the watch if we did not finish writing (e.g. got EAGAIN)
7685
7686         * dbus/dbus-transport-protected.h: remove messages_pending call,
7687         since it resulted in too much inefficient watch adding/removing; 
7688         instead we now require that the transport user does an iteration 
7689         after queueing outgoing messages, and after trying the first
7690         write() we add a write watch if we got EAGAIN or exceeded our 
7691         max bytes to write per iteration setting
7692
7693         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7694         function
7695
7696         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7697         freed and then accessed, valgrind flagged this bug, fix it
7698
7699         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7700         as the last valid field plus 1, where really it is equal to the
7701         last valid field. Corrects some message corruption issues.
7702
7703         * dbus/dbus-mainloop.c: verbosity changes
7704
7705         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7706         instead of aborting in one of the test codepaths
7707
7708         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7709         caused not printing the pid ever again if a verbose was missing
7710         the newline at the end
7711         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7712
7713         * dbus/dbus-connection.c: verbosity changes; 
7714         (dbus_connection_has_messages_to_send): new function
7715         (_dbus_connection_message_sent): no longer call transport->messages_pending
7716         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7717         try to write() immediately, so we can avoid the write watch. This
7718         is the core purpose of this patchset
7719         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7720         dump the outgoing message queue, so nobody will get confused
7721         trying to send them or thinking stuff is pending to be sent
7722
7723         * bus/test.c: verbosity changes
7724
7725         * bus/driver.c: verbosity/assertion changes
7726
7727         * bus/dispatch.c: a bunch of little tweaks to get it working again
7728         because this patchset changes when/where you need to block.
7729
7730 2004-11-23  Havoc Pennington  <hp@redhat.com>
7731
7732         * test/glib/test-profile.c: modify to accept a plain_sockets
7733         argument in which case it will bench plain sockets instead of
7734         libdbus, for comparison purposes.
7735
7736 2004-11-22  Havoc Pennington  <hp@redhat.com>
7737
7738         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7739         threads for more time, so sysprof can get a grip on it.
7740
7741         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7742         pointless variable
7743
7744 2004-11-13  Havoc Pennington  <hp@redhat.com>
7745
7746         * test/glib/test-profile.c: fix this thing up a bit
7747
7748         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7749         preallocation sizes by a fair bit; not sure if this will be an
7750         overall performance win or not, but it does reduce reallocs.
7751
7752         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7753         the test hack that forced constant realloc if asserts are
7754         disabled, so we can profile sanely. Sprinkle in some
7755         _DBUS_UNLIKELY() which are probably pointless, but before I
7756         noticed the real performance problem I put them in.
7757         (_dbus_string_validate_utf8): micro-optimize this thing a little
7758         bit, though callgrind says it didn't help; then special-case
7759         ascii, which did help a lot; then be sure we detect nul bytes as
7760         invalid, which is a bugfix.
7761         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7762         superstition; use memset to nul the padding instead of a manual
7763         loop.
7764         (_dbus_string_get_length): inline this as a
7765         macro; it showed up in the profile because it's used for loop
7766         tests and so forth
7767
7768 2004-11-10  Colin Walters  <walters@verbum.org>
7769
7770         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7771         for extra paranoia.
7772
7773 2004-11-09  Colin Walters  <walters@verbum.org>
7774
7775         * dbus/dbus-string.c (_dbus_string_get_length): New
7776         function, writes DBusString to C buffer.
7777
7778         * dbus/dbus-string.h: Prototype it.
7779
7780         * dbus/dbus-message.c (dbus_message_type_to_string): New
7781         function, converts message type into C string.
7782
7783         * dbus/dbus-message.h: Prototype it.
7784
7785         * bus/selinux.c (bus_selinux_check): Take source pid,
7786         target pid, and audit data.  Pass audit data to
7787         avc_has_perm.
7788         (log_audit_callback): New function, appends extra
7789         audit information.
7790         (bus_selinux_allows_acquire_service): Also take
7791         service name, add it to audit data.
7792         (bus_selinux_allows_send): Also take message
7793         type, interface, method member, error name,
7794         and destination, and add them to audit data.
7795         (log_cb): Initialize func_audit.
7796         
7797         * bus/selinux.h (bus_selinux_allows_acquire_service)
7798         (bus_selinux_allows_send): Update prototypes 
7799
7800         * bus/services.c (bus_registry_acquire_service): Pass
7801         service name to bus_selinux_allows_acquire_service.
7802
7803         * bus/bus.c (bus_context_check_security_policy): Pass
7804         additional audit data.  Move assignment of dest
7805         to its own line.
7806
7807 2004-11-07  Colin Walters  <walters@verbum.org>
7808
7809         * dbus/dbus-transport-unix.c (do_authentication): Always
7810         initialize auth_completed.
7811         
7812 2004-11-07  Colin Walters  <walters@verbum.org>
7813
7814         * bus/bus.c (load_config): Break into three
7815         separate functions: process_config_first_time_only,
7816         process_config_every_time, and process_config_postinit.
7817         (process_config_every_time): Move call of
7818         bus_registry_set_service_context_table into
7819         process_config_postinit.
7820         (process_config_postinit): New function, does
7821         any processing that needs to happen late
7822         in initialization (and also on reload).
7823         (bus_context_new): Instead of calling load_config,
7824         open config parser here and call process_config_first_time_only
7825         and process_config_every_time directly.  Later, after
7826         we have forked but before changing UID,
7827         invoke bus_selinux_full_init, and then call
7828         process_config_postinit.
7829         (bus_context_reload_config): As in bus_context_new,
7830         load parse file inside here, and call process_config_every_time
7831         and process_config_postinit.
7832
7833         * bus/services.h, bus/services.c
7834         (bus_registry_set_service_context_table): Rename
7835         from bus_registry_set_sid_table.  Take string hash from config
7836         parser, and convert them here into SIDs.
7837
7838         * bus/config-parser.c (struct BusConfigParser): Have
7839         config parser only store a mapping of service->context
7840         string.
7841         (merge_service_context_hash): New function.
7842         (merge_included): Merge context string hashes instead
7843         of using bus_selinux_id_table_union.
7844         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7845         simply create a new string hash.
7846         (bus_config_parser_unref): Unref it.
7847         (start_selinux_child): Simply insert strings into hash,
7848         don't call bus_selinux_id_table_copy_over.
7849
7850         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7851         (bus_selinux_id_table_copy_over): Delete.
7852
7853 2004-11-03  Colin Walters  <walters@verbum.org>
7854
7855         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7856         variables.
7857         
7858 2004-11-03  Colin Walters  <walters@verbum.org>
7859
7860         * bus/test-main.c (test_pre_hook): Fix test logic,
7861         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7862
7863 2004-11-02  Colin Walters  <walters@redhat.com>
7864
7865         * bus/selinux.c (bus_selinux_init): Split into two functions,
7866         bus_selinux_pre_init and bus_selinux_post_init.
7867         (bus_selinux_pre_init): Just determine whether SELinux is
7868         enabled.
7869         (bus_selinux_post_init): Do everything else.
7870
7871         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7872         config file, and bus_selinux_post_init after.  This ensures that
7873         we don't lose the policyreload notification thread that
7874         bus_selinux_init created before forking previously.
7875         
7876         * bus/test-main.c (test_pre_hook): Update for split.
7877
7878 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7879
7880         Patch from Johan Fischer <linux@fischaz.com>
7881         
7882         * mono/doc/Makefile.am (install-data-local): Added directory
7883         install for DESTDIR
7884
7885 2004-10-29  Colin Walters  <walters@redhat.com>
7886
7887         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7888         parameter for fd to write pid to.       
7889
7890         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7891         
7892         * bus/bus.c (bus_context_new): Pass print_pid_fd
7893         to _dbus_become_daemon (bug #1720)
7894
7895 2004-10-29  Colin Walters  <walters@redhat.com>
7896
7897         Patch from Ed Catmur <ed@catmur.co.uk>
7898
7899         * mono/doc/Makefile.am (install-data-local): Handle
7900         DESTDIR.
7901
7902 2004-10-29  Colin Walters  <walters@redhat.com>
7903
7904         * bus/.cvsignore, qt/.cvsignore: Update.
7905
7906 2004-10-29  Colin Walters  <walters@redhat.com>
7907
7908         Patch from Kristof Vansant <de_lupus@pandora.be>
7909
7910         * configure.in: Detect Slackware.
7911         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7912         * bus/rc.messagebus.in: New file.
7913
7914 2004-10-29  Colin Walters  <walters@redhat.com>
7915
7916         * tools/dbus-monitor.c (filter_func): Return
7917         DBUS_HANDLER_RESULT_HANDLED in filter function
7918         for now.  See:
7919         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7920
7921 2004-10-29  Colin Walters  <walters@redhat.com>
7922
7923         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7924
7925         * bus/services.c (bus_registry_acquire_service): 
7926         Correctly retrieve service name from DBusString
7927         for printing.
7928
7929 2004-10-29  Colin Walters  <walters@redhat.com>
7930
7931         * dbus/dbus-glib.h: Update documentation to not
7932         refer to internal APIs.
7933
7934 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7935
7936         * mono/Arguments.cs (GetDBusTypeConstructor):
7937         type.UnderlyingSystemType will return "System.Byte" if you do it
7938         on "byte[]", which is not what we want.  So check the type.IsArray
7939         property and use System.Array instead.
7940
7941 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7942
7943         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7944         the DBusUserInfo structure since this is passed into the function.
7945         This would cause a double free when the function that allocated
7946         the structure would try to free it when an error occured.
7947
7948         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7949         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7950         for service activation to avoid 32bit/64bit parallel install issues
7951
7952 2004-10-21  Colin Walters  <walters@verbum.org>
7953
7954         * AUTHORS: Fix my email address, the @gnu.org one
7955         has been bouncing for some time.  Also add J5.
7956         
7957 2004-10-21  Colin Walters  <walters@verbum.org>
7958
7959         * dbus/dbus-transport-unix.c (do_authentication): Return
7960         authentication status to callers.
7961         (unix_handle_watch): If we completed authentication this round,
7962         don't do another read.  Instead wait until the next iteration,
7963         after we've read any pending data in the auth buffer.
7964         (unix_do_iteration): Ditto.
7965         (unix_handle_watch): Updated for new do_authentication prototype.
7966
7967 2004-10-18  Colin Walters  <walters@verbum.org>
7968
7969         * bus/selinux.c (bus_selinux_enabled): Handle
7970         --disable-selinux case.
7971         
7972 2004-10-18  Colin Walters  <walters@verbum.org>
7973
7974         * bus/selinux.h: Add bus_selinux_enabled.
7975         
7976         * bus/selinux.c (bus_selinux_enabled): Implement it.
7977         
7978         * bus/config-parser.c (struct include): Add
7979         if_selinux_enabled member.
7980         (start_busconfig_child): Parse if_selinux_enabled
7981         attribute for include.
7982         (bus_config_parser_content): Handle it.
7983
7984         * bus/session.conf.in, bus/system.conf.in: Add
7985         inclusion of context mapping to default config files;
7986         conditional on SELinux being enabled.
7987         
7988         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7989         
7990         * test/data/invalid-config-files/badselinux-1.conf, 
7991         test/data/invalid-config-files/badselinux-2.conf:
7992         Test files for bad syntax.
7993         
7994 2004-10-17  Colin Walters  <walters@verbum.org>
7995
7996         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7997         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7998         format specifier mismatches.
7999
8000 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8001
8002         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
8003         format string.
8004
8005         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
8006         pointer (bug #1540, Leonardo Boiko).
8007
8008 2004-09-28  Jon Trowbridge  <trow@ximian.com>
8009
8010         * mono/BusDriver.cs: Changed BusDriver struct to remove
8011         the ServiceCreated and ServiceDeleted events and replace them
8012         with the new ServiceOwnerChanged event.
8013
8014         * mono/example/BusListener.cs: Added a new example program,
8015         which listens for and reports any ServiceOwnerChanged events
8016         on the bus driver.
8017
8018         * mono/example/Makefile.am (DESTDIR): Build changes for the
8019         new BusListener.cs example.
8020
8021 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8022
8023         * bus/signals.c (bus_match_rule_parse): validate the components of
8024         match rules (bug #1439).
8025
8026         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
8027
8028 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8029
8030         * doc/dbus-specification.xml: document ServiceOwnerChanged
8031         signal.
8032         
8033         * bus/driver.c, bus/driver.h, bus/services.c: Use
8034         ServiceOwnerChanged signal instead of ServiceCreated and
8035         ServiceDeleted.
8036         
8037         * bus/dispatch.c: update testcase for the new signal.
8038
8039 2004-09-20  Jon Trowbridge  <trow@ximian.com>
8040
8041         Patch from Nat Friedman <nat@novell.com>
8042
8043         * mono/Makefile.am: A number of small build fixes to allow "make
8044         distcheck" to succeed.
8045
8046         * mono/example/Makefile.am: "make distcheck" fixes.
8047
8048         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
8049         key in @srcdir@.
8050
8051         * test/Makefile.am: "make distcheck" fixes.
8052
8053 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8054
8055         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
8056
8057         * doc/busconfig.dtd: update the DTD for the at_console attribute.
8058
8059         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
8060         messages after the first one (bug #1389).
8061         
8062         * bus/dispatch.c (check_double_hello_message): add a test case for
8063         the double hello message bug.
8064         (check_existent_service_activation): fix check of spawning error.
8065         
8066 2004-09-16  David Zeuthen  <david@fubar.dk>
8067
8068         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
8069
8070 2004-09-12  David Zeuthen  <david@fubar.dk>
8071
8072         Patch from Kay Sievers <kay.sievers@vrfy.org>
8073
8074         * bus/bus.c (bus_context_new):
8075         * bus/bus.h:
8076         * bus/main.c (usage)
8077         (main):
8078         Add commandline option --nofork to override configuration file
8079         setting.
8080
8081 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8082
8083         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
8084         compilers don't like it (bug #974).
8085
8086 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
8087
8088         * qt/connection.*: Applied patch by Jérôme Lodewyck
8089         <lodewyck@clipper.ens.fr> to integrate an existing
8090         connection into the Qt eventloop
8091
8092 2004-08-30  Jon Trowbridge  <trow@ximian.com>
8093
8094         * mono/BusDriver.cs: Added.  This is a class for interacting with
8095         the org.freedesktop.DBus service.
8096
8097         * mono/Message.cs: Added a mechanism to expose the message that is
8098         currently being dispatched via the static Message.Current
8099         property.  Added Message.Sender and Message.Destination
8100         properties.
8101
8102         * mono/Handler.cs: Expose the dispatched message via
8103         Message.Current when handling method calls.
8104
8105         * mono/Service.cs: Expose the dispatched message via
8106         Message.Current when handling signal emissions.
8107         
8108         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
8109         Connection.BaseService property.
8110
8111 2004-08-28  Havoc Pennington  <hp@redhat.com>
8112
8113         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
8114
8115         More fixes from Steve Grubb
8116         
8117         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
8118         (_dbus_listen_tcp_socket): fix fd leak
8119
8120         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
8121         EINTR to a bit lower in the code
8122
8123 2004-08-26  Jon Trowbridge  <trow@ximian.com>
8124
8125         * bus/driver.c (bus_driver_handle_service_exists): Respond with
8126         TRUE if we are inquiring about the existence of the built-in
8127         org.freedesktop.DBus service.
8128
8129 2004-08-25  John Palmieri  <johnp@redhat.com>
8130         * bus/config-parser.c:
8131         (struct PolicyType): Add POLICY_CONSOLE
8132         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
8133         (start_busconfig_child): Sets up console element when
8134         <policy at_console=""> is encountered in a policy file
8135         (append_rule_from_element): Convert console elements to console
8136         rules.
8137
8138         * bus/policy.c: 
8139         (bus_policy_create_client_policy): Add console rules to the client
8140         policy based on if the client is at the console
8141         (bus_policy_append_console_rule): New function for adding a
8142         console rule to a policy
8143         (bus_policy_merge): Handle console rule merging
8144
8145         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
8146         where we check for console user files
8147         
8148         * dbus/dbus-sysdeps.c:
8149         (_dbus_file_exists): New function which checks if the given
8150         file exists
8151         (_dbus_user_at_console): New function which does the system
8152         specific process of checking if the user is at the console
8153
8154         * dbus/dbus-userdb.c:
8155         (_dbus_is_console_user): New function converts a UID to user name
8156         and then calls the system specific _dbus_user_at_console to 
8157         see if the user is at the console and therefor a console user
8158
8159 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8160
8161         * bus/config-parser.c (set_limit):
8162         * bus/dbus-daemon-1.1.in:
8163         * test/data/valid-config-files/many-rules.conf: set the
8164         max_match_rules_per_connection limt from the config file. 
8165
8166         * doc/busconfig.dtd: update the DTD.
8167
8168         * bus/driver.c: remove some unused variables.
8169
8170 2004-08-24  Mikael Hallendal  <micke@imendio.com>
8171
8172         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
8173         it's been replaced by dbus_g_bus_get
8174
8175 2004-08-23  Colin Walters  <walters@redhat.com>
8176
8177         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8178
8179         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
8180
8181         * bus/selinux.c: Create a thread for policy reload notification.
8182         (bus_selinux_get_policy_root): Implement.
8183
8184         * bus/config-parser.c (start_busconfig_child)
8185         (bus_config_parser_content): Support SELinux-root relative
8186         inclusion.
8187
8188         * configure.in <HAVE_SELINUX>: Add -lpthread.
8189         
8190         * bus/test-main.c (test_pre_hook, test_post_hook): New.
8191         (test_post_hook): Move memory checking into here.
8192         (test_pre_hook, test_post_hook): Move SELinux checks in
8193         here, but conditional on a DBUS_TEST_SELINUX environment
8194         variable.  Unfortunately we can't run the SELinux checks
8195         as a normal user, since they won't have any permissions
8196         for /selinux.  So this will have to be tested manually
8197         for now, until we have virtualization for most of
8198         libselinux.
8199         
8200 2004-08-23  Havoc Pennington  <hp@redhat.com>
8201
8202         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
8203         drop supplementary groups, suggested by Steve Grubb
8204
8205 2004-08-20  Colin Walters  <walters@redhat.com>
8206
8207         * bus/config-parser.c (start_busconfig_child): Remove some unused
8208         variables.
8209         
8210         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
8211         warning.
8212
8213 2004-08-17  Joe Shaw  <joeshaw@novell.com>
8214
8215         * configure.in: If --enable-mono is passed in, if we can't find
8216         mono error out.
8217
8218         * mono/Makefile.am: Use /gacutil to install assemblies into the
8219         GAC and not /root.
8220
8221 2004-08-12  Havoc Pennington  <hp@redhat.com>
8222
8223         * NEWS: update for 0.22
8224
8225         * configure.in: release 0.22
8226
8227 2004-08-11  Colin Walters  <walters@redhat.com>
8228
8229         * tools/dbus-send.c (main, usage): Add --reply-timeout
8230         argument.
8231
8232 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8233
8234         * bus/bus.c (process_config_first_time_only): get rid of an unused
8235         DBusError that was causing a memoy leak (bug #989).
8236
8237         * dbus/dbus-keyring.c, dbus/dbus-message.c:
8238         fix compilation on Solaris/Forte C (bug #974)
8239
8240         * bus/main.c (main): plug two minuscule memleaks.
8241
8242 2004-08-10  Havoc Pennington  <hp@redhat.com>
8243
8244         * doc/dbus-tutorial.xml: add some more info on GLib bindings
8245
8246 2004-08-09  Havoc Pennington  <hp@redhat.com>
8247
8248         * COPYING: switch to Academic Free License version 2.1 instead of
8249         2.0, to resolve complaints about patent termination clause.
8250
8251 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
8252
8253         * README: added documentation for the --enable-python 
8254         configure switch.
8255
8256 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8257
8258         * bus/config-parser.c (bus_config_parser_new): fix an invalid
8259         _unref in the SELinux support.
8260
8261         * doc/busconfig.dtd: update DTD for SELinux support.
8262
8263         * bus/config-loader-libxml.c: fix error handler and parser
8264         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8265
8266         * configure.in: remove the warning about libxml2.
8267
8268         * dbus/dbus-bus.c: silence doxygen warning.
8269
8270 2004-07-31  Colin Walters  <walters@redhat.com>
8271
8272         * configure.in: Move #error in SELinux check to its own line.
8273
8274 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8275
8276         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8277         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8278         dbus_error_set.
8279
8280         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8281         broken by the change in the _SET_OOM macros.
8282
8283 2004-07-31  Colin Walters  <walters@redhat.com>
8284
8285         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8286         BUS_SET_OOM.
8287
8288 2004-07-31  Colin Walters  <walters@redhat.com>
8289
8290         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8291         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8292         AC_MSG_CHECKING.
8293
8294 2004-07-24  Havoc Pennington  <hp@redhat.com>
8295
8296         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8297
8298         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8299         functionality
8300
8301         * configure.in: add --enable-selinux
8302         
8303         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8304
8305         * bus/main.c (main): initialize and shut down selinux
8306
8307         * bus/connection.c: store SELinux ID on each connection, to avoid 
8308         repeated getting of the string context and converting it into 
8309         an ID
8310
8311         * bus/bus.c (bus_context_get_policy): new accessor, though it
8312         isn't used
8313         (bus_context_check_security_policy): check whether the security
8314         context of sender connection can send to the security context of
8315         recipient connection
8316
8317         * bus/config-parser.c: add parsing for <selinux> and <associate>
8318         
8319         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8320         implement dbus_connection_get_unix_fd()
8321
8322         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8323         function, used by the selinux stuff
8324         
8325 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8326
8327         * bus/config-loader-libxml.c: complete the implementation of
8328         libxml backend for config file loader. Doesn't work with full OOM
8329         test yet. 
8330         
8331         * configure.in: change error when selecting libxml into a warning.
8332         
8333         * test/data/invalid-config-files: add two non-well-formed XML
8334         files. 
8335         
8336         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8337         
8338         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8339         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8340         be necessary to read all the buffer. (bug #894)
8341
8342         * bus/activation.c (bus_activation_activate_service): fix a
8343         potential assertion failure (bug #896). Small optimization in the
8344         case of auto-activation messages.
8345
8346         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8347         add test case for byte-through-vararg bug (#901). patch by Kimmo
8348         Hämäläinen. 
8349
8350 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8351
8352         * python/dbus.py:
8353         * python/dbus_bindings.pyx.in:
8354         Add dbus.init_gthreads (), allow emit_signal to pass
8355         arguments to the signal.
8356         
8357 2004-07-24  Havoc Pennington  <hp@redhat.com>
8358
8359         * AUTHORS: add some people, not really comprehensively, let me
8360         know if I missed you
8361
8362 2004-07-24  Havoc Pennington  <hp@redhat.com>
8363
8364         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8365         Owen
8366
8367         * test/Makefile.am (DIST_SUBDIRS): here also
8368
8369 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8370
8371         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8372         breaking build on Solaris, reported by Farhad Saberi on the ML.
8373
8374         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8375         va_arg invocation to account for integer promotion in the case of
8376         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8377
8378         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8379         _dbus_list_get_first_link, not _dbus_list_get_first.
8380
8381         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8382
8383         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8384         handler functions so that the asserts in _dbus_object_subtree_unref
8385         do not fail.
8386
8387         * dbus/dbus-transport-unix.c (do_reading):
8388         _dbus_transport_queue_messages return value is of type
8389         dbus_bool_t, not DBusDispatchStatus.
8390         
8391 2004-07-19  David Zeuthen  <david@fubar.dk>
8392
8393         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8394
8395         * bus/dispatch.c:
8396         (check_get_connection_unix_user): Debug says GetProperty; but the
8397         method is called GetConnectionUnixUser
8398         (check_get_connection_unix_process_id): New function
8399         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8400         also call check_get_connection_unix_process_id()
8401         
8402         * bus/driver.c:
8403         (bus_driver_handle_get_connection_unix_process_id): New function,
8404         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8405         interface
8406         
8407         * dbus/dbus-auth.c:
8408         (handle_server_data_external_mech): Set pid from the credentials
8409         obtained from the socket
8410         
8411         * dbus/dbus-connection.c:
8412         (dbus_connection_get_unix_process_id): New function
8413         
8414         * dbus/dbus-connection.h: 
8415         Add prototype for dbus_connection_get_unix_process_id
8416         
8417         * dbus/dbus-transport.c:
8418         (_dbus_transport_get_unix_process_id): New function
8419         
8420         * dbus/dbus-transport.h:
8421         Add prototype for _dbus_transport_get_unix_process_id
8422         
8423 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8424
8425         * dbus/dbus-message.c: Message counter fix, patch by Christian
8426         Hammond <chipx86@gnupdate.org>
8427
8428 2004-07-18  Seth Nickell  <seth@gnome.org>
8429
8430         * python/dbus.py:
8431         * python/dbus_bindings.pyx.in:
8432         * python/tests/test-client.py:
8433
8434         Add dbus.ByteArray and dbus_bindings.ByteArray
8435         types so that byte streams can be passed back.
8436
8437         Give jdahlin the heaps of credit that are so
8438         rightfully his.
8439         
8440 2004-07-12  Seth Nickell  <seth@gnome.org>
8441
8442         * python/dbus.py:
8443
8444         Add message argument to the default object_method_handler
8445         function.
8446         
8447         * python/dbus_bindings.pyx.in:
8448
8449         Automatically return NIL when passed an empty list
8450         (we can't pass back a list since lists are typed
8451         and we don't have any idea what type the the client
8452         intended the list to be... :-( )
8453         
8454 2004-07-10  Seth Nickell  <seth@gnome.org>
8455
8456         * python/examples/Makefile.am:
8457
8458         Fix distcheck breakage caused by new examples.
8459
8460 2004-07-10  Seth Nickell  <seth@gnome.org>
8461
8462         * python/dbus.py:
8463
8464         Add "message" argument to service-side dbus.Object
8465         methods. This will break existing services written
8466         using the python bindings, but will allow extraction
8467         of all the message information (e.g. who its from).
8468
8469         Add improved "object oriented" signal handling/emission.
8470         
8471         * python/examples/example-service.py:
8472
8473         Nix this example.
8474         
8475         * python/examples/example-signal-emitter.py:
8476         * python/examples/example-signal-recipient.py:
8477
8478         Two new examples that show how to emit and receive
8479         signals using the new APIs.
8480         
8481         * python/examples/example-signals.py:
8482         * python/examples/gconf-proxy-service.py:
8483         * python/examples/gconf-proxy-service2.py:
8484
8485         Add "message" argument to service methods.
8486
8487 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8488
8489         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8490         * dbus/bus.c (dbus_bus_get_unix_user)
8491         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8492         method of org.freedesktop.DBus interface.
8493
8494         * bus/dispatch.c: test case
8495
8496 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8497
8498         * python/Makefile.am: switched include directory from glib/ to dbus/
8499         since dbus-glib.h moved
8500  
8501 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8502
8503         * configure.in: prevent building the gcj stuff and libxml loader
8504         since they are broken.
8505
8506 2004-06-20  Havoc Pennington  <hp@redhat.com>
8507
8508         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8509         codes from the dbus error names
8510         
8511         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8512         as dbus/dbus-glib.h and that breakage is now visible due to 
8513         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8514         
8515         * glib/dbus-glib.h: s/gproxy/g_proxy/
8516
8517         * dbus/dbus-shared.h: new header to hold stuff shared with
8518         binding APIs
8519         
8520         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8521         than dbus-errors.h
8522
8523         * glib/dbus-glib.h (dbus_set_g_error): move to
8524         dbus-glib-lowlevel.h
8525
8526         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8527         of stuff to enable this
8528
8529         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8530
8531         * a bunch of other changes with the same basic "separate glib 
8532         bindings from dbus.h" theme
8533         
8534 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8535
8536         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8537
8538         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8539
8540 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8541
8542         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8543         the reply value of the ServiceExists message.
8544
8545 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8546
8547         * python/dbus_bindings.pyx.in: No longer need to parse path
8548         elements and pass them as arrays of strings.  The C API now
8549         accepts plain path strings.
8550         (_build_parsed_path): removed 
8551
8552 2004-06-07  Havoc Pennington  <hp@redhat.com>
8553
8554         * doc/TODO: remove auto-activation item since it's done; sort
8555         items by importance/milestone
8556
8557 2004-06-07  Havoc Pennington  <hp@redhat.com>
8558
8559         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8560         random signature when using REQUIRED_FIELDS (this hack won't work
8561         in the long term)
8562
8563         * dbus/dbus-message.c: change the signature to be a header field,
8564         instead of message->signature special-case string. Incremental
8565         step forward. Then we can fix up code to send the signature in the
8566         message, then fix up code to validate said signature, then fix up
8567         code to not put the typecodes inline, etc.
8568         (load_one_message): don't make up the signature after the fact
8569         (decode_header_data): require signature field for the known
8570         message types
8571
8572         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8573
8574         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8575
8576 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8577
8578         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8579
8580         * mono/Handler.cs: Updated to follow new path argument for
8581         (un-)registering objects.
8582
8583         * mono/example/Makefile.am:
8584         * mono/Makefile.am:
8585         * configure.in: Bumped required version for mono and use new -pkg
8586         syntax for deps
8587
8588 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8589
8590         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8591         registration functions take the path argument as char* instead of
8592         char**.
8593
8594         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8595         split off the path decompostion part of
8596         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8597         warnings. 
8598
8599         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8600         
8601 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8602  
8603         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8604         machine approach.  A state is implemented as a function that
8605         handles incoming events as specified for that state.
8606         
8607         * doc/dbus-specification.xml: Update auth protocol state machine
8608         specification to match implementation.  Remove some leftover
8609         base64 examples.
8610
8611 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8612
8613         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8614         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8615         quiet doxygen.
8616
8617         * Doxyfile.in: remove deprecated options.
8618
8619         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8620         glib/test-thread.h, glib/test-thread-client.c,
8621         glib/test-thread-server.c, glib/test-profile.c,
8622         glib/test-dbus-glib.c: remove these unused files.
8623
8624 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8625
8626         * dbus/dbus-object-tree.c
8627         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8628         non-fallback handlers (bug #684).
8629         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8630         (find_subtree_recurse): report wether the returned subtree is an
8631         exact match or a "fallback" match higher up in the tree.
8632         (object_tree_test_iteration): update test case.
8633
8634 2004-06-01  Seth Nickell  <seth@gnome.org>
8635
8636         * python/dbus_bindings.pyx.in:
8637         * python/tests/test-client.py:
8638
8639         Round off basic type support. Add dicts (yay!), and 
8640         remaining array types.
8641
8642         Make MessageIter more general so it works for dicts too.
8643
8644         Mark all loop variables as C integers.
8645         
8646 2004-05-31  Havoc Pennington  <hp@redhat.com>
8647
8648         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8649         "in" before "out"
8650
8651         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8652
8653         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8654         option that runs the tests, and start filling in some code
8655         including for starters just dumping the interfaces to stdout
8656
8657         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8658
8659         * test/data/valid-introspection-files/lots-of-types.xml: test of
8660         an example introspection file
8661
8662         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8663         "node" (I think...)
8664
8665 2004-05-31  Seth Nickell  <seth@gnome.org>
8666
8667         * python/dbus_bindings.pyx.in:
8668         * python/tests/test-client.py:
8669
8670         Test Suite: 1
8671         Python Bindings: 0
8672
8673         Fix string array memory trashing bug... oops...
8674
8675 2004-05-30  Seth Nickell  <seth@gnome.org>
8676
8677         * python/dbus.py:
8678
8679         Add a nicer-but-less-flexible alternate API for handling 
8680         calls to virtual objects in dbus.ObjectTree.
8681
8682         Screw up the argument order to the dbus.Object constructor
8683         for consistency with dbus.ObjectTree (and to make dbus_methods
8684         optional for future extension)
8685         
8686         * python/examples/Makefile.am:
8687         * python/examples/gconf-proxy-service.py:
8688         * python/examples/gconf-proxy-service2.py:
8689
8690         Alternate implementation of gconf-proxy-service using the
8691         nicer dbus.ObjectTree API.
8692         
8693         * python/examples/example-service.py:
8694         * python/tests/test-server.py
8695
8696         Reverse the argument order to deal with dbus.Object constructor
8697         changes.
8698         
8699 2004-05-30  Seth Nickell  <seth@gnome.org>
8700
8701         * python/examples/example-client.py:
8702         * python/examples/example-service.py:
8703
8704         Take it back. Lists seem to work but they're broken
8705         in the test suite. Make the base examples use
8706         lists (works fine).
8707
8708 2004-05-30  Seth Nickell  <seth@gnome.org>
8709
8710         * python/dbus_bindings.pyx.in:
8711         * python/tests/test-client.py:
8712
8713         Add some more tests and fix errors that crop up.
8714         Unfortunately, currently it seems like marshalling
8715         and unmarshalling of lists is completely broken :-(
8716
8717 2004-05-30  Seth Nickell  <seth@gnome.org>
8718
8719         * python/dbus_bindings.pyx.in:
8720
8721         Add support for ObjectPath type.
8722
8723         * python/dbus.py:
8724
8725         Refactor message handling code to a common function.
8726         
8727         * python/tests/test-client.py:
8728         * python/tests/test-server.py:
8729
8730         Add tests that check to make sure values of all types
8731         can be echoed from a service w/o mangling.
8732         
8733 2004-05-29  Seth Nickell  <seth@gnome.org>
8734
8735         * python/dbus.py:
8736
8737         Add ObjectTree class which allows implementation
8738         of trees of "virtual" objects. Basically the python
8739         wrapper for "register_fallback".
8740         
8741         * python/examples/Makefile.am
8742         * python/examples/gconf-proxy-client.py:
8743         * python/examples/gconf-proxy-service.py:
8744
8745         Implement a simple GConf proxy service that supports
8746         get/set on string and int GConf keys using the ObjectTree.
8747         
8748 2004-05-29  Seth Nickell  <seth@gnome.org>
8749
8750         * python/dbus.py:
8751         * python/examples/example-client.py:
8752         * python/examples/example-service.py:
8753         * python/examples/list-system-services.py:
8754
8755         Add SessionBus, SystemBus and ActivationBus classes
8756         so you don't need to know the special little BUS_TYPE
8757         flag.
8758         
8759 2004-05-29  Havoc Pennington  <hp@redhat.com>
8760
8761         * bus/config-parser.c (process_test_valid_subdir): temporarily
8762         stop testing config parser OOM handling, since expat has issues
8763         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8764
8765         * bus/dbus-daemon-1.1.in: change requested_reply to
8766         send_requested_reply/receive_requested_reply so we can send the
8767         replies, not just receive them.
8768
8769         * bus/config-parser.c: parse the new
8770         send_requested_reply/receive_requested_reply
8771
8772         * bus/policy.c (bus_client_policy_check_can_send): add
8773         requested_reply argument and use it
8774
8775         * bus/bus.c (bus_context_check_security_policy): pass through
8776         requested_reply status to message send check
8777
8778         * bus/system.conf.in: adapt to requested_reply change
8779         
8780 2004-05-28  Havoc Pennington  <hp@redhat.com>
8781
8782         * test/glib/test-service-glib.c (main): remove unused variable
8783
8784         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8785
8786         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8787         from the enum, no longer in use.
8788
8789         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8790         works right.
8791
8792         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8793         whether error_name passed in is a valid error name.
8794
8795 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8796
8797         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8798         OBJECT_PATH and OBJECT_PATH_ARRAY
8799
8800 2004-05-28  Seth Nickell  <seth@gnome.org>
8801
8802         * python/examples/Makefile.am:
8803
8804         Forget to add Makefile.am. Do not pass go.
8805
8806 2004-05-28  Michael Meeks  <michael@ximian.com>
8807
8808         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8809         fix no int64 case.
8810
8811         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8812
8813         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8814         (_dbus_message_iter_get_basic_type_array): impl.
8815         drastically simplify ~all relevant _get methods to use these.
8816         (_dbus_message_iter_append_basic_array),
8817         (dbus_message_iter_append_basic): impl
8818         drastically simplify ~all relevant _append methods to use these.
8819
8820         * dbus/dbus-message-builder.c (parse_basic_type) 
8821         (parse_basic_array, lookup_basic_type): impl.
8822         (_dbus_message_data_load): prune scads of duplicate /
8823         cut & paste coding.
8824
8825         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8826         (_dbus_demarshal_basic_type): implement,
8827         (demarshal_and_validate_len/arg): beef up debug.
8828         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8829
8830 2004-05-27  Seth Nickell  <seth@gnome.org>
8831
8832         * configure.in:
8833         * python/Makefile.am:
8834
8835         Include the example python apps in the tarball.
8836         
8837         * python/examples/list-system-services.py
8838
8839         Add a python new example that fetches the list of services
8840         from the system bus.
8841         
8842 2004-05-27  Seth Nickell  <seth@gnome.org>
8843
8844         * python/dbus.py:
8845         * python/dbus_bindings.pyx.in:
8846
8847         Fix failure to notify that a signal was not handled,
8848         resulted in hung functions.
8849         
8850 2004-05-25  Colin Walters  <walters@redhat.com>
8851
8852         * tools/dbus-monitor.c (main): Monitor all types of messages.
8853
8854 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8855
8856         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8857         which unregisters the object path and disposes the handler.
8858
8859 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8860  
8861         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8862          
8863         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8864         operands to && so we call dbus_message_iter_next () for the last
8865         argument also.
8866
8867 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8868
8869         * dbus/dbus-object-tree.c
8870         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8871         children even if the requested path isn't registered.
8872         (object_tree_test_iteration): test object_tree_list_registered.
8873
8874         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8875         it to 0.
8876         
8877 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8878
8879         * doc/TODO: Remove resolved items.
8880
8881         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8882         field.
8883         
8884         * bus/connection.c (bus_connections_expect_reply): Enforce the
8885         per-connection limit on pending replies.
8886         
8887         Patch from Jon Trowbridge <trow@ximian.com>:
8888  
8889         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8890         up a watch that triggers a config reload when one end of the pipe
8891         becomes readable.
8892         (signal_handler): Instead of doing the config reload in our SIGHUP
8893         handler, just write to the reload pipe and let the associated
8894         watch handle the reload when control returns to the main loop.
8895  
8896         * bus/driver.c (bus_driver_handle_reload_config): Added.
8897         Implements a ReloadConfig method for requesting a configuration
8898         file reload via the bus driver.
8899  
8900 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8901
8902         * HACKING: Updated release instructions concerning the wiki page.
8903
8904 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8905
8906         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8907         filter against auth->allowed_mechs; we only add allowed mechs in
8908         record_mechanisms().
8909  
8910         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8911         ALLOWED_MECHS to auth-script format so we can set the list of
8912         allowed mechanisms.
8913  
8914         * data/auth/client-out-of-mechanisms.auth-script: New test to
8915         check client disconnects when it is out of mechanisms to try.
8916  
8917         * dbus/dbus-auth.c (process_command): Remove check for lines
8918         longer that 1 MB; we only buffer up maximum 16 kB.
8919  
8920         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8921         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8922         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8923         assume there might be unused bytes.
8924  
8925         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8926         client-out-of-mechs, it is handled in process_reject(). Move check
8927         for max failures to send_rejected(), as it's a server-only thing.
8928
8929         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8930         send_auth(), send_data(), send_rejected(), send_error(),
8931         send_ok(), send_begin() and send_cancel().
8932
8933 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8934
8935         Remove base64 encoding, replace with hex encoding. Original patch
8936         from trow@ximian.com, added error handling.
8937
8938         * dbus/dbus-string.c (_dbus_string_base64_encode)
8939         (_dbus_string_base64_decode): Remove.
8940         (_dbus_string_hex_decode): Add end_return argument so we can
8941         distinguish between OOM and invalid hex encoding.
8942         (_dbus_string_test): Remove base64 tests and add test case for
8943         invalid hex.
8944
8945         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8946         Replace base64 with hex.
8947
8948         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8949         for invalid hex encoded data in auth protocol.
8950
8951 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8952
8953         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8954         leak.
8955
8956 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8957
8958         * mono/dbus-sharp.dll.config.in: Added for GAC
8959         * mono/dbus-sharp.snk: Added for GAC
8960         * mono/Assembly.cs.in: Added for GAC
8961         * mono/Makefile.am: Changes for GAC installation        
8962         * configure.in: Added refs for dbus-sharp.dll.config.in and
8963         Assembly.cs.in. More fixes for mono testing
8964         * mono/example/Makefile.am: Changed var to CSC
8965         * Makefile.am: Changed flag name to DBUS_USE_CSC
8966
8967 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8968
8969         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8970         * mono/doc/*: Added documentation framework
8971         * configure.in: Added monodoc check
8972         * README: Added description of mono configure flags
8973
8974 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8975
8976         * doc/dbus-specification.xml: Added a "Required" column to the 
8977         header fields table and changed the "zero or more" verbage in
8978         the above paragraph to read "The header must contain the required 
8979         named header fields and zero or more of the optional named header 
8980         fields".
8981         * test/data/invalid-messages/*.message: Added the required PATH 
8982         named header field to the tests so that they don't fail on 
8983         'Missing path field'
8984
8985 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8986
8987         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8988         the stack by implicitly defining variable and parameter types and
8989         removing the hack of defining C pointers as python objects and later
8990         casting them.
8991
8992 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8993
8994         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8995
8996 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8997
8998         * mono/DBusType/Dict.cs: Handle empty dicts
8999         * mono/DBusType/Array.cs: Handle empty arrays
9000         * mono/Arguments.cs: Handle empty arguments
9001
9002 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
9003
9004         * dbus-sharp.pc.in: Modified to include include Libs and Requires
9005         field
9006
9007 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
9008
9009         * test/data/valid-messages/standard-*.message: Update message
9010         test scripts to new header field names.
9011
9012 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
9013
9014         * test/break-loader.c (randomly_do_n_things): tracked down buffer
9015         overflow to times_we_did_each_thing array which would chop off the
9016         first character of the failure_dir string. Increased the size of
9017         the array to 7 to reflect the number of random mutation functions
9018         we have.
9019
9020 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
9021
9022         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
9023         unix_server->watch here, it is unreffed in disconnect.
9024         (_dbus_server_new_for_tcp_socket): convert NULL host to
9025         "localhost" here so we don't append NULL to address.
9026         
9027         * dbus/dbus-server.c (_dbus_server_test): Add test case for
9028         various addresses, including tcp with no explicit host.
9029
9030 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9031
9032         * dbus/dbus-message.c (decode_header_data, decode_string_field):
9033         fix incorrect setting of .name_offset in the HeaderField (it was
9034         off by two bytes, positioned right after the name and typecode)
9035
9036         * bus/bus.c (bus_context_new, bus_context_unref): test before
9037         calling dbus_server_free_data_slot and _dbus_user_database_unref
9038         in case of an error.
9039
9040         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
9041         by libdbus-gtool.
9042
9043 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
9044
9045         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
9046         _dbus_poll() instead of select().
9047
9048 2004-04-15  Jon Trowbridge  <trow@ximian.com>
9049
9050         * bus/main.c (signal_handler): Reload the configuration files
9051         on SIGHUP.
9052         (main): Set up our SIGHUP handler.
9053
9054         * bus/bus.c (struct BusContext): Store the config file, user and
9055         fork flag in the BusContext.
9056         (process_config_first_time_only): Added.  Contains the code
9057         (previously in bus_context_new) for setting up the BusContext from
9058         the BusConfigParser that should only be run the first time the
9059         config files are read.
9060         (process_config_every_time): Added.  Contains the code (previously
9061         in bus_context_new) for setting up the BusContext from the
9062         BusConfigParser that should be run every time the config files are
9063         read.
9064         (load_config): Added.  Builds a BusConfigParser from the config
9065         files and passes the resulting structure off to
9066         process_config_first_time_only (assuming this is the first time)
9067         and process_config_every_time.
9068         (bus_context_new): All of the config-related code has been moved
9069         to process_config_first_time_only and process_config_every_time.
9070         Now this function just does the non-config-related initializations
9071         and calls load_config.
9072         (bus_context_reload_config): Added.
9073
9074 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9075
9076         * bus/driver.c (bus_driver_handle_get_service_owner):
9077         implement a GetServiceOwner method.
9078         * doc/dbus-specification.xml: document it.
9079         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
9080         
9081         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
9082         implement, using the bus GetServiceOwner method.
9083
9084         * test/glib/test-dbus-glib.c:
9085         use dbus_gproxy_new_for_service_owner so that we can receive the
9086         signal. 
9087
9088 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
9089
9090         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9091         dbus/dbus-message.c, dbus/dbus-protocol.h
9092         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
9093
9094         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9095         dbus/dbus-message.c, dbus/dbus-protocol.h
9096         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
9097
9098         * dbus/dbus-internals.c (_dbus_header_field_to_string):
9099         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
9100         DBUS_HEADER_FIELD_SENDER resolves to "sender"
9101
9102         * doc/dbus-specification.xml (Header Fields Table):
9103         s/SERVICE/DESTINATION
9104         s/SENDER_SERVICE/SENDER
9105
9106
9107 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9108
9109         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
9110         a few seconds.
9111
9112 2004-04-13  Michael Meeks  <michael@ximian.com>
9113
9114         * glib/dbus-gobject.c (handle_introspect): split out
9115         (introspect_properties): this.
9116         (handle_introspect): implement this.
9117
9118         * test/glib/Makefile.am: use the absolute path so the bus
9119         daemon's chdir ("/") doesn't kill us dead.
9120
9121         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
9122
9123 2004-04-12  Jon Trowbridge  <trow@ximian.com>
9124
9125         * bus/config-parser.c (struct BusConfigParser): Added
9126         included_files field.
9127         (seen_include): Added.  Checks whether or not a file has already
9128         been included by any parent BusConfigParser.
9129         (bus_config_parser_new): Copy the parent's included_files.
9130         (include_file): Track which files have been included, and fail on
9131         circular inclusions.
9132         (process_test_valid_subdir): Changed printf to report if we are
9133         testing valid or invalid conf files.
9134         (all_are_equiv): Changed printf to be a bit clearer about
9135         what we are actually doing.
9136         (bus_config_parser_test): Test invalid configuration files.
9137
9138 2004-04-09  Jon Trowbridge  <trow@ximian.com>
9139
9140         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
9141         argument.  If non-null, the newly-constructed BusConfigParser will
9142         be initialized with the parent's BusLimits instead of the default
9143         values.
9144         (include_file): When including a config file, pass in
9145         the current parser as the parent and then copy the BusLimits
9146         from the included BusConfigParser pack to the current parser.
9147         (process_test_valid_subdir): Renamed from process_test_subdir.
9148         (process_test_equiv_subdir): Added.  Walks through a directory,
9149         descending into each subdirectory and loading the config files
9150         it finds there.  If any subdirectory contains two config files
9151         that don't produce identical BusConfigParser structs, fail.
9152         For now, the BusConfigParser's BusPolicies are not compared.
9153         (bus_config_parser_test): Call both process_test_valid_subdir and
9154         process_test_equiv_subdir.
9155
9156         * bus/config-loader-libxml.c (bus_config_load): Take a parent
9157         argument and pass it along to the call to bus_config_parser_new.
9158         Also made a few small changes to allow this code to compile.
9159
9160         * bus/config-loader-expat.c (bus_config_load): Take a parent
9161         argument and pass it along to the call to bus_config_parser_new.
9162
9163         * bus/bus.c (bus_context_new): Load the config file
9164         with a NULL parent argument.
9165
9166 2004-03-29  Michael Meeks  <michael@ximian.com>
9167
9168         * glib/dbus-gobject.c (introspect_properties): split
9169         out, fix mangled 'while' flow control.
9170         (introspect_signals): implement.
9171         (handle_introspect): update.
9172
9173 2004-03-29  Michael Meeks  <michael@ximian.com>
9174
9175         * glib/dbus-gobject.c (set_object_property): split out / 
9176         re-work, use the property type, and not the message type(!)
9177         (get_object_property): ditto.
9178
9179         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
9180         (dbus_gvalue_marshal): make this code re-usable, needed
9181         for signals too, also on both proxy and server side.
9182         Re-write for more efficiency / readability.
9183
9184 2004-03-29  Michael Meeks  <michael@ximian.com>
9185
9186         * dbus/dbus-message.c
9187         (dbus_message_new_error_printf): impl.
9188
9189         * dbus/dbus-connection.c
9190         (dbus_connection_unregister_object_path): fix warning.
9191
9192         * configure.in: fix no-mono-installed situation.
9193
9194 2004-03-27  Havoc Pennington  <hp@redhat.com>
9195
9196         Patch from Timo Teräs:
9197         
9198         * tools/dbus-send.c (main): if --print-reply, assume type is
9199         method call; support boolean type args
9200         
9201         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
9202         bunch of memleak and logic bugs
9203         
9204 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9205
9206         * mono/Arguments.cs:
9207         * mono/Introspector.cs:
9208         * mono/Handler.cs:
9209         * mono/InterfaceProxy.cs:
9210         * mono/Message.cs
9211         * mono/ProxyBuilder.cs:
9212         * mono/Service.cs:
9213         Added InterfaceProxy class to avoid building proxies for every
9214         object.
9215
9216         * dbus-message.h:
9217         * dbus-message.c (dbus_message_append_args_valist)
9218         (dbus_message_iter_get_object_path)
9219         (dbus_message_iter_get_object_path_array)
9220         (dbus_message_iter_append_object_path)
9221         (dbus_message_iter_append_object_path_array):
9222         Added object_path iter functions to handle OBJECT_PATH arguments
9223         
9224 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9225
9226         First checkin of mono bindings.
9227         * configure.in:
9228         * Makefile.am:
9229         Build stuff for the bindings
9230         * dbus-sharp.pc.in: Added for pkgconfig
9231         
9232 2004-03-21  Havoc Pennington  <hp@redhat.com>
9233
9234         * test/test-service.c (main): remove debug spew
9235
9236 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9237
9238         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
9239         arrays
9240
9241         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
9242         (dbus_message_iter_init_array_iterator)
9243         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
9244         indicate whether the iterator is empty
9245
9246         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
9247         warnings
9248
9249 2004-03-19  Havoc Pennington  <hp@redhat.com>
9250
9251         * NEWS: 0.21 updates
9252
9253         * configure.in: 0.21
9254
9255         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
9256         
9257         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
9258         you don't need pyrex to make dist
9259
9260         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
9261         sources; run moc
9262         
9263 2004-03-18  Richard Hult  <richard@imendio.com>
9264
9265         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9266         (dbus_message_set_auto_activation): Add doxygen docs.
9267
9268 2004-03-16  Richard Hult  <richard@imendio.com>
9269
9270         * bus/activation.c: (bus_activation_service_created),
9271         (bus_activation_send_pending_auto_activation_messages),
9272         (bus_activation_activate_service):
9273         * bus/activation.h:
9274         * bus/dispatch.c: (bus_dispatch),
9275         (check_nonexistent_service_auto_activation),
9276         (check_service_auto_activated),
9277         (check_segfault_service_auto_activation),
9278         (check_existent_service_auto_activation), (bus_dispatch_test):
9279         * bus/driver.c: (bus_driver_handle_activate_service):
9280         * bus/services.c: (bus_registry_acquire_service):
9281         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9282         (dbus_message_get_auto_activation):
9283         * dbus/dbus-message.h:
9284         * dbus/dbus-protocol.h: Implement auto-activation.
9285         
9286         * doc/dbus-specification.xml: Add auto-activation to the spec.
9287
9288 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9289
9290         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9291         fix a bug with CUSTOM types.
9292
9293         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9294         a unit test for this bug (used to fail).
9295
9296 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9297
9298         * bus/activation.c:
9299         (babysitter_watch_callback): notify all pending activations waiting for
9300           the same exec that the activation failed.
9301         (bus_activation_activate_service): shortcut the activation if we 
9302           already waiting for the same executable to start up.
9303
9304 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9305
9306         * bus/activation.c: 
9307         - Added service file reloading. 
9308           Each service files directory is kept in an hash table in 
9309           BusActivation and each BusActivationEntry knows what .service-file it
9310           was read from. So when you try to activate a service the bus will 
9311           check if it's been updated, removed or if new .service-files has 
9312           been installed.
9313         - Test code at the bottom for the service file reloading.
9314         * bus/test-main.c: (main):
9315         * bus/test.h:
9316         - added service reloading test.
9317         * dbus/dbus-sysdeps.c: 
9318         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9319
9320 2004-03-08  Michael Meeks  <michael@ximian.com>
9321
9322         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9323         bail immediately if disconnected, to avoid busy loop.
9324
9325         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9326         cleanup cut/paste/inefficiency.
9327
9328 2004-03-01  David Zeuthen  <david@fubar.dk>
9329
9330         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9331         bug where args were used twice. This bug resulted in a segfault
9332         on a Debian/PPC system when starting the messagebus daemon. Include
9333         dbus-sysdeps.h for DBUS_VA_COPY
9334
9335         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9336
9337         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9338         appropriate va_copy implementation. From GLib
9339         
9340 2004-02-24  Joe Shaw  <joe@ximian.com>
9341
9342         * bus/services.c (bus_registry_acquire_service): We need to pass
9343         in the service name to dbus_set_error() to prevent a crash.
9344
9345 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9346
9347         * AUTHORS: Reveal my True identity.
9348
9349 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9350
9351         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9352         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9353
9354 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9355
9356         * doc/TODO: Added not about better error check of configuration files.
9357
9358 2003-12-02  Richard Hult  <richard@imendio.com>
9359
9360         * Update AFL version to 2.0 throughout the source files to reflect
9361         the update that was done a while ago.
9362
9363 2003-12-02  Richard Hult  <richard@imendio.com>
9364
9365         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9366         wrote_dict_key to FALSE on the iter that the dict is appended to,
9367         just like when appending other types. Fixes a bug where a dict
9368         couldn't be put inside a dict.
9369         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9370         (message_iter_test, _dbus_message_test): Add test case for dict
9371         inside dict.
9372
9373 2003-12-01  David Zeuthen  <david@fubar.dk>
9374
9375         * python/dbus.py: Add the actual message when calling the reciever
9376         of a signal such that parameters can be inspected. Add the method
9377         remove_signal_receiver
9378         
9379 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9380
9381         * bus/*.[ch]:
9382         * dbus/*.[ch]:
9383         * glib/*.[ch]: Made ref functions return the pointer
9384
9385 2003-11-25  Zack Rusin  <zack@kde.org>
9386
9387         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9388
9389         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9390         wrappers,
9391
9392         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9393         the Integrator and to better fit with the server,
9394
9395 2003-11-24  Zack Rusin  <zack@kde.org>
9396
9397         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9398         the integrator handles it now
9399
9400         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9401         since QTimer wasn't really meant to be used the way DBusTimeout is
9402
9403 2003-11-24  Zack Rusin  <zack@kde.org>
9404
9405         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9406         Integrator class which integrates D-BUS with the Qt event loop,
9407
9408         * qt/connection.h, qt/connection.cpp: Move all the code which
9409         was dealing with D-BUS integration to the Integrator class,
9410         and start using Integrator,
9411
9412 2003-11-23  Zack Rusin  <zack@kde.org>
9413
9414         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9415         wrapper
9416
9417         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9418         switching namespaces to DBusQt, reworking the class,
9419
9420         * Makefile.cvs: switching dependencies so that it matches KDE 
9421         schematics,
9422         
9423         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9424         the library
9425
9426 2003-11-19  Havoc Pennington  <hp@redhat.com>
9427
9428         * NEWS: update
9429
9430         * configure.in: bump version to 0.20
9431
9432         * configure.in (have_qt): add yet another place to look for qt
9433         (someone hand trolltech a .pc file...)
9434
9435 2003-11-01  Havoc Pennington  <hp@redhat.com>
9436
9437         * doc/dbus-specification.xml: add state machine docs on the auth
9438         protocol; just a first draft, I'm sure it's wrong.      
9439
9440 2003-10-28  David Zeuthen  <david@fubar.dk>
9441
9442         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9443         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9444         
9445 2003-10-28  Havoc Pennington  <hp@redhat.com>
9446
9447         * dbus/dbus-message.c (get_next_field): delete unused function
9448
9449 2003-10-28  Havoc Pennington  <hp@redhat.com>
9450
9451         * bus/expirelist.c (do_expiration_with_current_time): detect
9452         failure of the expire_func due to OOM
9453
9454         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9455
9456         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9457         NoReply error that's now created by the bus when the service exits
9458
9459 2003-10-28  Havoc Pennington  <hp@redhat.com>
9460
9461         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9462         tests for set_path, set_interface, set_member, etc.
9463
9464         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9465
9466         * dbus/dbus-message.c (set_string_field): always just delete and
9467         re-append the field; accept NULL for deletion
9468         (re_align_fields_recurse): reimplement
9469         
9470 2003-10-26  Havoc Pennington  <hp@redhat.com>
9471
9472         * dbus/dbus-connection.c: fix docs to properly describe the
9473         disconnected message
9474         (_dbus_connection_notify_disconnected): remove this function; 
9475         we can't synchronously add the disconnected message, we have to 
9476         do it after we've queued any remaining real messages
9477         (_dbus_connection_get_dispatch_status_unlocked): queue the
9478         disconnect message only if the transport has finished queueing all
9479         its real messages and is disconnected.
9480         (dbus_connection_disconnect): update the dispatch status here
9481
9482 2003-10-22  Havoc Pennington  <hp@redhat.com>
9483
9484         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9485
9486         * bus/connection.c (bus_transaction_send_from_driver): set the
9487         destination to the connection's base service
9488
9489 2003-10-20  Havoc Pennington  <hp@redhat.com>
9490
9491         hmm, make check is currently not passing.
9492         
9493         * doc/dbus-specification.xml: add requirement that custom type
9494         names follow the same rules as interface names.
9495
9496         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9497         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9498         'map'
9499
9500         * doc/dbus-specification.xml: update type codes to match
9501         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9502         CUSTOM. Add type OBJECT_PATH to the spec.
9503
9504 2003-10-17  Havoc Pennington  <hp@redhat.com>
9505
9506         * bus/driver.c (create_unique_client_name): use "." as separator
9507         in base service names instead of '-'
9508
9509         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9510         byte at the end of the string
9511
9512         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9513         optimization macros since string validation seems to be a slow
9514         point.
9515         
9516         * doc/dbus-specification.xml: restrict valid
9517         service/interface/member/error names. Add test suite code for the
9518         name validation.
9519
9520         * dbus/dbus-string.c: limit service/interface/member/error names 
9521         to [0-9][A-Z][a-z]_
9522
9523         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9524         format arg to verbose spew
9525
9526         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9527         memory, return instead of g_error
9528
9529         * test/test-service.c (path_message_func): support emitting a
9530         signal on request
9531
9532         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9533         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9534         assuming the activation bus was the session bus so that services
9535         started manually will still register.
9536         (init_connections_unlocked): fix so that in OOM situation we get
9537         the same semantics when retrying the function
9538         
9539         * test/test-service.c (main): change to use path registration, to
9540         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9541         than DBUS_BUS_SESSION
9542
9543 2003-10-16  Havoc Pennington  <hp@redhat.com>
9544
9545         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9546
9547         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9548         coverage of the tests
9549         (coverage-report.txt): don't move the .da and .bbg files around
9550
9551 2003-10-16  Havoc Pennington  <hp@redhat.com>
9552
9553         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9554         to put there
9555
9556 2003-10-16  Havoc Pennington  <hp@redhat.com>
9557
9558         * bus/connection.c (bus_pending_reply_expired): either cancel or
9559         execute, not both
9560         (bus_connections_check_reply): use unlink, not remove_link, as we
9561         don't want to free the link; fixes double free mess
9562
9563         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9564         where no reply was received
9565
9566         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9567         fix a refcount leak
9568
9569         * bus/signals.c (match_rule_matches): add special cases for the
9570         bus driver, so you can match on sender/destination for it.
9571
9572         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9573         DBUS_PRINT_BACKTRACE is set
9574
9575         * dbus/dbus-internals.c: add pid to assertion failure messages
9576
9577         * dbus/dbus-connection.c: add message type code to the debug spew
9578
9579         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9580         sender=foo not service=foo
9581
9582         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9583         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9584         DBUS_ACTIVATION_ADDRESS instead
9585
9586         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9587         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9588
9589         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9590         context struct
9591
9592         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9593         (dbus_message_iter_get_object_path_array): new function (half
9594         finished, disabled for the moment)
9595         
9596         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9597         DBUS_MESSAGE_TYPE_ERROR
9598
9599         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9600         avoid redirecting stderr to /dev/null
9601         (babysit): close stdin if not doing the "exit_with_session" thing
9602
9603         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9604         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9605         stdout/stdin, so things don't get confused
9606         
9607         * bus/system.conf.in: fix to allow replies, I modified .conf
9608         instead of .conf.in again.
9609
9610 2003-10-14  David Zeuthen  <david@fubar.dk>
9611
9612         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9613         argtype to arg_type when raising unknown arg type exception.
9614         Changed type list to reflect the changes in dbus-protocol.h so 
9615         the bindings actually work.
9616
9617 2003-10-14  Havoc Pennington  <hp@redhat.com>
9618
9619         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9620         to have a bug keeping it from outputting the .da files sometimes
9621         (string_get_string): don't append garbage nul bytes to the string.
9622
9623 2003-10-15  Seth Nickell  <seth@gnome.org>
9624
9625         * python/Makefile.am:
9626
9627         Include dbus_h_wrapper.h in the dist tarball.
9628
9629 2003-10-14  Havoc Pennington  <hp@redhat.com>
9630
9631         * bus/bus.c (bus_context_check_security_policy): revamp this to
9632         work more sanely with new policy-based requested reply setup
9633
9634         * bus/connection.c (bus_transaction_send_from_driver): set bus
9635         driver messages as no reply
9636
9637         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9638         requested_reply attribute on allow/deny rules
9639
9640         * bus/system.conf: add <allow requested_reply="true"/>
9641
9642         * bus/driver.c (bus_driver_handle_message): fix check for replies
9643         sent to the bus driver, which was backward. How did this ever work
9644         at all though? I think I'm missing something.
9645
9646         * dbus/dbus-message.c (decode_header_data): require error and
9647         method return messages to have a reply serial field to be valid
9648         (_dbus_message_loader_queue_messages): break up this function;
9649         validate that reply serial and plain serial are nonzero; 
9650         clean up the OOM/error handling.
9651         (get_uint_field): don't return -1 from this
9652         (dbus_message_create_header): fix signed/unsigned bug
9653
9654         * bus/connection.c (bus_connections_expect_reply): save serial of
9655         the incoming message, not reply serial
9656
9657 2003-10-14  Havoc Pennington  <hp@redhat.com>
9658
9659         * bus/connection.c: implement pending reply tracking using
9660         BusExpireList
9661
9662         * bus/bus.c (bus_context_check_security_policy): verify that a
9663         reply is pending in order to allow a reply to be sent. Deny 
9664         messages of unknown type.
9665
9666         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9667
9668         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9669         (bus_context_get_reply_timeout): new
9670
9671 2003-10-13  Seth Nickell  <seth@gnome.org>
9672
9673         * python/Makefile.am:
9674
9675         Pass "make distcheck": remove a couple files from DIST_FILES
9676         that weren't included in the final version.
9677
9678 2003-10-12  Havoc Pennington  <hp@pobox.com>
9679
9680         Added test code that 1) starts an actual bus daemon and 2) uses
9681         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9682         more testing possible, but this is the basic framework.
9683         
9684         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9685         empty proxy lists from the proxy list hash
9686
9687         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9688         couple of return_if_fail checks
9689
9690         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9691         to allocate, so everything is cleared to NULL as it should be.
9692
9693         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9694         source as data to dbus_connection_set_timeout_functions() as the 
9695         timeout functions expected
9696
9697         * test/glib/run-test.sh: add a little script to start up a message
9698         bus and run tests using it
9699
9700         * tools/dbus-launch.1: updates
9701
9702         * tools/dbus-launch.c (main): add --config-file option
9703
9704         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9705         that could never be reached.
9706
9707         * dbus/dbus-message.c (dbus_message_new_method_return) 
9708         (dbus_message_new_error, dbus_message_new_signal): set the
9709         no-reply-expected flag on all these. Redundant, but may
9710         as well be consistent.
9711
9712 2003-10-11  Havoc Pennington  <hp@pobox.com>
9713
9714         * test/decode-gcov.c (function_solve_graph): make broken block
9715         graph a nonfatal error since it seems to be broken. Need to debug
9716         this.
9717
9718         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9719         can't just check type > INVALID < LAST anymore
9720
9721         * dbus/dbus-message.c (dbus_message_get_signature): new function
9722         (dbus_message_has_signature): new function
9723         (struct DBusMessage): add signature field (right now it isn't sent
9724         over the wire, just generated on the fly)
9725         (dbus_message_copy): copy the signature, and init strings to
9726         proper length to avoid some reallocs
9727         (dbus_message_iter_init_array_iterator): return void, since it
9728         can't fail
9729         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9730         (_dbus_message_loader_queue_messages): add silly temporary hack to
9731         fill in message->signature on load
9732
9733         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9734         characters, so they are relatively human-readable.
9735
9736 2003-10-11  Havoc Pennington  <hp@pobox.com>
9737
9738         * dbus/dbus-message.c (_dbus_message_test): add more test
9739         coverage, but #if 0 for now since they uncover a bug 
9740         not fixed yet; I think in re_align_field_recurse()
9741         (re_align_field_recurse): add FIXME about broken assertion
9742
9743         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9744
9745         * bus/connection.c: share a couple code bits with expirelist.c
9746
9747         * bus/expirelist.h, bus/expirelist.c: implement a generic
9748         expire-items-after-N-seconds facility, was going to share between
9749         expiring connections and replies, decided not to use for expiring
9750         connections for now.
9751
9752         * COPYING: include AFL 2.0 (still need to change all the file headers)
9753
9754 2003-10-09  Havoc Pennington  <hp@redhat.com>
9755
9756         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9757         gcc 3.3. Not that we do anything about it yet.
9758
9759         * bus/signals.c (bus_match_rule_parse): impose max length on the
9760         match rule text
9761
9762         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9763
9764 2003-10-09  Havoc Pennington  <hp@redhat.com>
9765
9766         Make matching rules theoretically work (add parser).
9767         
9768         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9769         the case where destination is explicitly specified as bus driver
9770         and someone else is eavesdropping.
9771         
9772         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9773         definition of eavesdropping and assertion
9774
9775         * tools/dbus-send.c (main): use dbus_message_type_from_string
9776
9777         * bus/signals.c (bus_match_rule_parse): implement
9778
9779         * dbus/dbus-message.c (dbus_message_type_from_string): new
9780
9781         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9782
9783 2003-10-02  Havoc Pennington  <hp@pobox.com>
9784
9785         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9786         dbus_gproxy_oneway_call
9787
9788         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9789         (dbus_server_setup_with_g_main): fix to allow calling them more
9790         than once on the same args
9791         (dbus_bus_get_with_g_main): new function
9792
9793 2003-10-02  Havoc Pennington  <hp@redhat.com>
9794
9795         * doc/dbus-tutorial.xml: write some stuff
9796
9797 2003-09-29  Havoc Pennington  <hp@pobox.com>
9798
9799         * configure.in: split checks for Doxygen from XML docs, check for
9800         xmlto
9801
9802         * doc/Makefile.am: XML-ify all the docs, and add a blank
9803         dbus-tutorial.xml
9804
9805 2003-09-29  Havoc Pennington  <hp@pobox.com>
9806
9807         * Merge dbus-object-names branch. To see the entire patch 
9808         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9809         it's huuuuge though.
9810         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9811         
9812 2003-09-28  Havoc Pennington  <hp@pobox.com>
9813
9814         * HACKING: update to reflect new server
9815
9816 2003-09-26  Seth Nickell  <seth@gnome.org>
9817
9818         * python/dbus.py:
9819         * python/examples/example-signals.py:
9820
9821         Start implementing some notions of signals. The API
9822         is really terrible, but they sort of work (with the
9823         exception of being able to filter by service, and to
9824         transmit signals *as* a particular service). Need to
9825         figure out how to make messages come from the service
9826         we registered :-(
9827         
9828         * python/dbus_bindings.pyx.in:
9829
9830         Removed duplicate message_handler callbacks.
9831         
9832 2003-09-25  Havoc Pennington  <hp@redhat.com>
9833
9834         * bus/session.conf.in: fix my mess
9835
9836 2003-09-25  Havoc Pennington  <hp@pobox.com>
9837
9838         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9839
9840 2003-09-25  Seth Nickell  <seth@gnome.org>
9841
9842         * python/examples/example-service.py:
9843
9844         Johan notices complete wrong code in example-service, but
9845         completely wrong in a way that works exactly the same (!).
9846         Johan is confused, how could this possibly work? Example
9847         code fails to serve purpose of making things clear.
9848         Seth fixes.
9849
9850 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9851
9852         * doc/dbus-specification.sgml: don't require header fields
9853         to be 4-byte aligned and specify that fields should be
9854         distinguished from padding by the fact that zero is not
9855         a valid field name.
9856         
9857         * doc/TODO: remove re-alignment item and add item to doc
9858         the OBJECT_PATH type.
9859         
9860         * dbus/dbus-message.c:
9861         (HeaderField): rename the original member to value_offset
9862         and introduce a name_offset member to keep track of where
9863         the field actually begins.
9864         (adjust_field_offsets): remove.
9865         (append_int_field), (append_uint_field),
9866         (append_string_field): don't align the start of the header
9867         field to a 4-byte boundary.
9868         (get_next_field): impl finding the next marhsalled field
9869         after a given field.
9870         (re_align_field_recurse): impl re-aligning a number of
9871         already marshalled fields.
9872         (delete_field): impl deleting a field of any type and
9873         re-aligning any following fields.
9874         (delete_int_or_uint_field), (delete_string_field): remove.
9875         (set_int_field), (set_uint_field): no need to re-check
9876         that we have the correct type for the field.
9877         (set_string_field): ditto and impl re-aligning any
9878         following fields.
9879         (decode_header_data): update to take into account that
9880         the fields aren't 4-byte aligned any more and the new
9881         way to distinguish padding from header fields. Also,
9882         don't exit when there is too much header padding.
9883         (process_test_subdir): print the directory.
9884         (_dbus_message_test): add test to make sure a following
9885         field is re-aligned correctly after field deletion.
9886         
9887         * dbus/dbus-string.[ch]:
9888         (_dbus_string_insert_bytes): rename from insert_byte and
9889         allow the insert of multiple bytes.
9890         (_dbus_string_test): test inserting multiple bytes.
9891
9892         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9893         warning note to docs about having to re-align any
9894         marshalled values following the string.
9895         
9896         * dbus/dbus-message-builder.c:
9897         (append_string_field), (_dbus_message_data_load):
9898         don't align the header field.
9899         
9900         * dbus/dbus-auth.c: (process_test_subdir): print the
9901         directory.
9902         
9903         * test/break-loader.c: (randomly_add_one_byte): upd. for
9904         insert_byte change.
9905         
9906         * test/data/invalid-messages/bad-header-field-alignment.message:
9907         new test case.
9908         
9909         * test/data/valid-messages/unknown-header-field.message: shove
9910         a dict in the unknown field.
9911
9912 2003-09-25  Seth Nickell  <seth@gnome.org>
9913
9914         * python/dbus.py:
9915         * python/dbus_bindings.pyx.in:
9916
9917         Handle return values.
9918         
9919         * python/examples/example-client.py:
9920         * python/examples/example-service.py:
9921
9922         Pass back return values from the service to the client.
9923         
9924 2003-09-24  Seth Nickell  <seth@gnome.org>
9925
9926         * python/dbus.py:
9927
9928         Connect Object methods (when you are sharing an object) up... pass
9929         in a list of methods to be shared. Sharing all the methods just
9930         worked out too weird. You can now create nice Services over the
9931         DBus in Python. :-)
9932         
9933         * python/dbus_bindings.pyx.in:
9934
9935         Keep references to user_data tuples passed into C functions so 
9936         Python doesn't garbage collect on us.
9937
9938         Implement MethodReturn and Error subclasses of Message for creating
9939         DBusMessage's of those types.
9940         
9941         * python/examples/example-client.py:
9942         * python/examples/example-service.py:
9943
9944         Simple example code showing both how create DBus services and objects,
9945         and how to use them.
9946
9947 2003-09-23  Havoc Pennington  <hp@pobox.com>
9948
9949         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9950
9951 2003-09-23  Havoc Pennington  <hp@redhat.com>
9952
9953         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9954         (dbus_gproxy_disconnect_signal): implement
9955         (dbus_gproxy_manager_remove_signal_match): implement
9956         (dbus_gproxy_manager_add_signal_match): implement
9957         (dbus_gproxy_oneway_call): implement
9958
9959 2003-09-23  Havoc Pennington  <hp@pobox.com>
9960
9961         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9962         subclass. This means dropping the transparent thread safety of the
9963         proxy; you now need a separate proxy per-thread, or your own
9964         locking on the proxy. Probably right anyway.
9965         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9966
9967 2003-09-22  Havoc Pennington  <hp@redhat.com>
9968
9969         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9970
9971 2003-09-21  Seth Nickell  <seth@gnome.org>
9972
9973         First checkin of the Python bindings.
9974         
9975         * python/.cvsignore:
9976         * python/Makefile.am:
9977         * python/dbus_bindings.pyx.in:
9978         * python/dbus_h_wrapper.h:
9979
9980         Pieces for Pyrex to operate on, building a dbus_bindings.so
9981         python module for low-level access to the DBus APIs.
9982         
9983         * python/dbus.py:
9984
9985         High-level Python module for accessing DBus objects.
9986
9987         * configure.in:
9988         * Makefile.am:
9989
9990         Build stuff for the python bindings.
9991
9992         * acinclude.m4:
9993
9994         Extra macro needed for finding the Python C header files.
9995
9996 2003-09-21  Havoc Pennington  <hp@pobox.com>
9997
9998         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9999         implementing the proxy manager, didn't get very far.
10000
10001         * dbus/dbus-bus.c (dbus_bus_add_match): new
10002         (dbus_bus_remove_match): new
10003
10004         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
10005         path_name argument; adjust the other not-yet-implemented 
10006         gproxy constructors to be what I think they should be.
10007
10008 2003-09-21  Havoc Pennington  <hp@pobox.com>
10009
10010         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
10011         by default for message bus connections.
10012
10013         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
10014         exit_on_disconnect flag is set and we process the disconnected
10015         signal.
10016         (dbus_connection_set_exit_on_disconnect): new function
10017
10018 2003-09-21  Havoc Pennington  <hp@pobox.com>
10019
10020         Get matching rules mostly working in the bus; only actually
10021         parsing the rule text remains. However, the client side of
10022         "signal connections" hasn't been started, this patch is only the
10023         bus side.
10024         
10025         * dbus/dispatch.c: fix for the matching rules changes
10026         
10027         * bus/driver.c (bus_driver_handle_remove_match)
10028         (bus_driver_handle_add_match): send an ack reply from these
10029         method calls
10030
10031         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
10032         arguments, reported by Seth Nickell
10033
10034         * bus/config-parser.c (append_rule_from_element): support
10035         eavesdrop=true|false attribute on policies so match rules 
10036         can be prevented from snooping on the system bus.
10037
10038         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
10039         and "destination" in attribute names; fix some docs bugs; 
10040         add eavesdrop=true|false attribute
10041
10042         * bus/driver.c (bus_driver_handle_add_match)
10043         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
10044         messages
10045
10046         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
10047         rid of broadcast service concept, signals are just always broadcast
10048
10049         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
10050         mostly implement matching rules stuff (currently only exposed as signal
10051         connections)
10052
10053 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
10054
10055         * doc/dbus-specification.sgml: Change the header field name
10056         to be an enum and update the rest of the spec to reference
10057         the fields using the conventinal name.
10058
10059         * dbus/dbus-protocol.h: update to reflect the spec.
10060
10061         * doc/TODO: add item to remove the 4 byte alignment requirement.
10062         
10063         * dbus/dbus-message.c: Remove the code to generalise the
10064         header/body length and serial number header fields as named
10065         header fields so we can reference field names using the 
10066         protocol values.
10067         (append_int_field), (append_uint_field), (append_string_field):
10068         Append the field name as a byte rather than four chars.
10069         (delete_int_or_uint_field), (delete_string_field): reflect the
10070         fact that the field name and typecode now occupy 4 bytes instead
10071         of 8.
10072         (decode_string_field), (decode_header_data): update to reflect
10073         protocol changes and move the field specific encoding from
10074         decode_string_field() back into decode_header_data().
10075         
10076         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
10077         Add utility to aid debugging.
10078         
10079         * dbus/dbus-message-builder.c:
10080         (append_string_field), (_dbus_message_data_load): Update to
10081         reflect protocol changes; Change the FIELD_NAME directive
10082         to HEADER_FIELD and allow it to take the field's conventional
10083         name rather than the actual value.
10084         
10085         * test/data/*/*.message: Update to use HEADER_FIELD instead
10086         of FIELD_NAME; Always align the header on an 8 byte boundary
10087         *before* updating the header length.
10088
10089 2003-09-15  Havoc Pennington  <hp@pobox.com>
10090
10091         * dbus/dbus-pending-call.c: add the get/set object data
10092         boilerplate as for DBusConnection, etc. Use generic object data
10093         for the notify callback.
10094
10095         * glib/dbus-gparser.c (parse_node): parse child nodes
10096
10097         * tools/dbus-viewer.c: more hacking on the dbus-viewer
10098         
10099         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
10100         contain functions shared between the convenience lib and the
10101         installed lib
10102
10103         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
10104         -export-symbols-regex to the GLib library
10105
10106         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
10107         fix the locking in here, and add a default handler for
10108         Introspect() that just returns sub-nodes.
10109
10110 2003-09-14  Havoc Pennington  <hp@pobox.com>
10111
10112         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
10113         rather than gfoo consistent
10114
10115         * glib/dbus-gproxy.h: delete for now, move contents to
10116         dbus-glib.h, because the include files don't work right since we
10117         aren't in the dbus/ subdir.
10118         
10119         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
10120         (dbus_gproxy_end_call): finish
10121         (dbus_gproxy_begin_call): finish
10122
10123         * glib/dbus-gmain.c (dbus_set_g_error): new
10124
10125         * glib/dbus-gobject.c (handle_introspect): include information
10126         about child nodes in the introspection
10127
10128         * dbus/dbus-connection.c (dbus_connection_list_registered): new
10129         function to help in implementation of introspection
10130
10131         * dbus/dbus-object-tree.c
10132         (_dbus_object_tree_list_registered_and_unlock): new function
10133
10134 2003-09-12  Havoc Pennington  <hp@pobox.com>
10135
10136         * glib/dbus-gidl.h: add common base class for all the foo_info
10137         types
10138
10139         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
10140         similar to kdcop
10141
10142         * test/Makefile.am: try test srcdir -ef . in addition to test
10143         srcdir = ., one of them should work (yeah lame)
10144         
10145         * glib/Makefile.am: build the "idl" parser stuff as a convenience
10146         library
10147         
10148         * glib/dbus-gparser.h: make description_load routines return
10149         NodeInfo* not Parser*
10150
10151         * Makefile.am (SUBDIRS): build test dir after all library dirs
10152
10153         * configure.in: add GTK+ detection
10154
10155 2003-09-07  Havoc Pennington  <hp@pobox.com>
10156
10157         * Make Doxygen contented.
10158
10159 2003-09-07  Havoc Pennington  <hp@pobox.com>
10160
10161         * doc/dbus-specification.sgml: more updates
10162
10163 2003-09-06  Havoc Pennington  <hp@pobox.com>
10164
10165         * doc/dbus-specification.sgml: partial updates
10166
10167         * bus/dbus-daemon-1.1.in: fix the config file docs for the
10168         zillionth time; hopefully I edited the right file this time.
10169
10170         * bus/config-parser.c (append_rule_from_element): support
10171         send_type, send_path, receive_type, receive_path
10172
10173         * bus/policy.c: add message type and path to the list of things
10174         that can be "firewalled"
10175
10176 2003-09-06  Havoc Pennington  <hp@pobox.com>
10177
10178         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
10179         (dbus_connection_register_object_path): make this not handle
10180         messages to paths below the given path
10181
10182 2003-09-03  Havoc Pennington  <hp@pobox.com>
10183
10184         * test/glib/Makefile.am: add this with random glib-linked test
10185         programs
10186
10187         * glib/Makefile.am: remove the random test programs from here,
10188         leave only the unit tests
10189
10190         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
10191         uscore/javacaps conversion, and fix     
10192         (get_object_property, set_object_property): change to .NET
10193         convention for mapping props to methods, set_FooBar/get_FooBar, 
10194         since one language has such a convention we may as well copy it. 
10195         Plus real methods in either getFooBar or get_foo_bar style won't 
10196         collide with this convention.
10197
10198 2003-09-01  Havoc Pennington  <hp@pobox.com>
10199
10200         * glib/dbus-gparser.c: implement
10201
10202         * glib/dbus-gobject.c: start implementing skeletons support
10203
10204         * configure.in: when disabling checks/assert, also define
10205         G_DISABLE_ASSERT and G_DISABLE_CHECKS
10206
10207 2003-09-01  Havoc Pennington  <hp@pobox.com>
10208
10209         * glib/Makefile.am: rearrange a bunch of files and get "make
10210         check" framework set up
10211
10212 2003-08-31  Havoc Pennington  <hp@pobox.com>
10213
10214         * fix build with --disable-tests
10215
10216 2003-08-30  Havoc Pennington  <hp@pobox.com>
10217
10218         * dbus/dbus-connection.c: purge DBusMessageHandler
10219
10220         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
10221         use callbacks everywhere
10222
10223 2003-08-30  Havoc Pennington  <hp@pobox.com>
10224
10225         * test/data/valid-config-files/system.d/test.conf: change to 
10226         root for the user so warnings don't get printed
10227
10228         * dbus/dbus-message.c: add dbus_message_get_path,
10229         dbus_message_set_path
10230         
10231         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
10232         dispatching to a path
10233
10234         * dbus/dbus-string.c (_dbus_string_validate_path): add
10235
10236         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
10237         (_dbus_marshal_object_path): implement
10238
10239         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
10240         to contain the path to the target object
10241         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
10242         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
10243
10244 2003-08-30  Havoc Pennington  <hp@pobox.com>
10245
10246         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
10247
10248 2003-08-29  Havoc Pennington  <hp@pobox.com>
10249
10250         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
10251         registered
10252         (struct DBusObjectSubtree): shrink this
10253         a lot, since we may have a lot of them
10254         (_dbus_object_tree_free_all_unlocked): implement
10255         (_dbus_object_tree_dispatch_and_unlock): implement
10256
10257 2003-08-29  Havoc Pennington  <hp@pobox.com>
10258
10259         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
10260
10261 2003-08-28  Havoc Pennington  <hp@pobox.com>
10262
10263         purge DBusObjectID
10264         
10265         * dbus/dbus-connection.c: port to no ObjectID, create a
10266         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10267
10268         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10269         everything except UnregisterFunction and MessageFunction
10270         
10271         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10272         add DBUS_TYPE_OBJECT_PATH
10273         
10274         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10275         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10276         path-based object IDs
10277
10278 2003-08-25  Havoc Pennington  <hp@pobox.com>
10279
10280         Just noticed that dbus_message_test is hosed, I wonder when I
10281         broke that. I thought make check was passing earlier...
10282         
10283         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10284         container tree, will replace most of dbus-object-registry
10285
10286         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10287         screwup
10288
10289 2003-08-19  Havoc Pennington  <hp@pobox.com>
10290
10291         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10292         (dbus_message_is_error): fix this function
10293
10294         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10295         match
10296
10297         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10298         reflect clarified man page
10299         (bus_client_policy_check_can_send): ditto
10300         
10301         * bus/session.conf.in: fixup
10302
10303         * bus/system.conf.in: fixup
10304
10305 2003-08-18  Havoc Pennington  <hp@redhat.com>
10306
10307         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10308
10309         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10310         dumb bug created earlier (wrong order of args to
10311         decode_header_data())
10312         
10313         * tools/dbus-send.c: port
10314
10315         * tools/dbus-print-message.c (print_message): port
10316
10317         * test/data/*messages: port all messages over
10318         
10319         * dbus/dbus-message-builder.c: support including 
10320         message type
10321         
10322         * bus/driver.c: port over
10323         
10324         * bus/dispatch.c: port over to new stuff
10325
10326         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10327         rename disconnect signal to "Disconnected"
10328
10329 2003-08-17  Havoc Pennington  <hp@pobox.com>
10330
10331         This doesn't compile yet, but syncing up so I can hack on it from
10332         work. What are branches for if not broken code? ;-)
10333         
10334         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10335         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10336         DBUS_HEADER_FIELD_ERROR_NAME
10337         
10338         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10339         for the interface+member pairs
10340         (string_hash): change to use g_str_hash algorithm
10341         (find_direct_function, find_string_function): refactor these to
10342         share most code.
10343         
10344         * dbus/dbus-message.c: port all of this over to support 
10345         interface/member fields instead of name field
10346
10347         * dbus/dbus-object-registry.c: port over
10348         
10349         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10350         from _dbus_string_validate_name
10351
10352         * bus/dbus-daemon-1.1: change file format for the 
10353         <deny>/<allow> stuff to match new message naming scheme
10354
10355         * bus/policy.c: port over
10356
10357         * bus/config-parser.c: parse new format
10358         
10359 2003-08-16  Havoc Pennington  <hp@pobox.com>
10360
10361         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10362         broken assertion
10363
10364         * glib/dbus-gproxy.c: some hacking
10365
10366 2003-08-15  Havoc Pennington  <hp@redhat.com>
10367
10368         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10369
10370         * dbus/dbus-connection.c
10371         (dbus_connection_send_with_reply_and_block): factor out internals;
10372         change to convert any error replies to DBusError instead of 
10373         returning them as a message
10374
10375 2003-08-15  Havoc Pennington  <hp@pobox.com>
10376
10377         * dbus/dbus-connection.c, 
10378         dbus/dbus-pending-call.c: Finish the pending call stuff
10379
10380 2003-08-14  Havoc Pennington  <hp@redhat.com>
10381
10382         * dbus/dbus-pending-call.c: start on new object that will replace
10383         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10384         replies
10385
10386         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10387         with remote interfaces
10388
10389         * dbus/dbus-gidl.c: do the boring boilerplate in here
10390         
10391 2003-08-12  Havoc Pennington  <hp@pobox.com>
10392
10393         * bus/dispatch.c (bus_dispatch): make this return proper 
10394         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10395
10396         * dbus/dbus-errors.c (dbus_set_error): use
10397         _dbus_string_append_printf_valist
10398
10399         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10400         (_dbus_string_append_printf): new
10401
10402         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10403         UNKNOWN_METHOD
10404
10405         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10406         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10407         message is unhandled.
10408
10409 2003-08-11  Havoc Pennington  <hp@pobox.com>
10410
10411         * bus/test.c (client_disconnect_handler): change to return
10412         HANDLED (would have been REMOVE_MESSAGE)
10413
10414         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10415         HANDLED/NOT_YET_HANDLED instead of
10416         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10417         should be used.
10418
10419 2003-08-10  Havoc Pennington  <hp@pobox.com>
10420
10421         * tools/dbus-send.c (main): add --type argument, for now
10422         supporting only method_call and signal types.
10423
10424         * tools/dbus-print-message.c: print message type
10425
10426         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10427         init connection->objects
10428
10429         * doc/dbus-specification.sgml: fix sgml
10430
10431         * bus/*.c: port over to object-instance API changes
10432
10433         * test/test-service.c: ditto
10434         
10435         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10436         name, we will have to fix up the rest of the code to also handle
10437         this
10438         (dbus_message_new): generic message-creation call
10439         (set_string_field): allow appending name field
10440
10441 2003-08-06  Havoc Pennington  <hp@pobox.com>
10442
10443         * dbus/dbus-object-registry.c: implement signal connection 
10444         and dispatch
10445
10446         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10447
10448         * dbus/dbus-internals.c (_dbus_memdup): new function
10449
10450 2003-08-02  Havoc Pennington  <hp@pobox.com>
10451
10452         * dbus/dbus-message.c (dbus_message_get_no_reply)
10453         (dbus_message_set_no_reply): add these and remove
10454         set_is_error/get_is_error
10455
10456         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10457         remove the ERROR flag, since there's now an ERROR type
10458
10459 2003-08-01  Havoc Pennington  <hp@pobox.com>
10460
10461         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10462         implement
10463
10464         * dbus/dbus-message.c (dbus_message_get_type): new function
10465
10466         * doc/dbus-specification.sgml: add "type" byte to messages
10467
10468 2003-08-01  Havoc Pennington  <hp@pobox.com>
10469
10470         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10471         a message type enum to distinguish kinds of message
10472         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10473         that need not be replied to
10474
10475 2003-08-01  Havoc Pennington  <hp@pobox.com>
10476
10477         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10478         (unpack_8_octets): fix no-64-bit-int bug
10479
10480         * dbus/dbus-object-registry.c (validate_id): validate the 
10481         connection ID bits, not just the instance ID.
10482
10483         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10484         the connection-global 33 bits of the object ID
10485
10486         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10487         object ID in the new way
10488
10489         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10490         define server/client/instance bits.
10491
10492 2003-07-30  Havoc Pennington  <hp@pobox.com>
10493
10494         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10495         build
10496
10497 2003-07-13  Havoc Pennington  <hp@pobox.com>
10498
10499         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10500         fields to DBusObjectVTable and DBusObjectInfo
10501
10502 2003-07-12  Havoc Pennington  <hp@pobox.com>
10503
10504         * dbus/dbus-object-registry.c: implement unit test,
10505         fix bugs discovered in process
10506
10507         * dbus/dbus-connection.c: remove handler_table and
10508         register_handler(), add DBusObjectRegistry usage
10509
10510         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10511         (dbus_object_id_set_null): new functions
10512
10513 2003-07-08  Havoc Pennington  <hp@pobox.com>
10514
10515         * dbus/dbus-object.c: implement some of this
10516
10517         * dbus/dbus-object-registry.c
10518         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10519         param
10520         (_dbus_object_registry_new): handle OOM
10521
10522 2003-07-08  Havoc Pennington  <hp@pobox.com>
10523
10524         * dbus/dbus-object.h: sketch out an API for registering objects
10525         with a connection, that allows us to use as little as 24 bytes
10526         per object and lets application code represent an object in 
10527         any conceivable way.
10528
10529         * dbus/dbus-object-registry.c: implement the hard bits of the
10530         DBusConnection aspect of object API. Not yet wired up.
10531         
10532 2003-07-06  Havoc Pennington  <hp@pobox.com>
10533
10534         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10535         (_dbus_marshal_object_id): new
10536         (_dbus_demarshal_object_id): new
10537         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10538         consolidate identical switch cases. Don't conditionalize handling
10539         of DBUS_TYPE_UINT64, need to handle the type always.
10540         (_dbus_marshal_validate_arg): consolidate identical cases, and
10541         handle DBUS_TYPE_OBJECT_ID
10542
10543         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10544
10545         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10546
10547 2003-09-28  Havoc Pennington  <hp@pobox.com>
10548
10549         * real 0.13 release
10550
10551 2003-09-28  Havoc Pennington  <hp@pobox.com>
10552
10553         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10554         to work with Debian db2html
10555
10556 2003-09-28  Havoc Pennington  <hp@pobox.com>
10557
10558         * configure.in: 0.13
10559
10560         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10561         stylesheet-images for benefit of Debian
10562         
10563         Change back to using filesystem-linked sockets for the system
10564         bus, so only root can create the default system bus address.
10565         
10566         * bus/system.conf.in: change to use
10567         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10568
10569         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10570         from here.
10571
10572         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10573         here, and AC_DEFINE DBUS_SYSTEM_PATH
10574
10575 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10576
10577         * doc/TODO:
10578         * doc/busconfig.dtd:
10579         Add busconfig DTD.
10580         
10581 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10582
10583         * doc/dbus-specification.sgml:
10584         Add activation reply values.
10585         
10586 2003-08-05  Havoc Pennington  <hp@redhat.com>
10587
10588         * configure.in: 0.12
10589
10590 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10591
10592         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10593         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10594         (add_watch), (remove_watch), (create_source):
10595         Refcount fds, fixes some reentrancy issues.
10596         
10597 2003-07-30  Havoc Pennington  <hp@redhat.com>
10598
10599         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10600         bus address to be abstract if we have abstract sockets
10601
10602         * NEWS: update
10603
10604 2003-07-28  Havoc Pennington  <hp@redhat.com>
10605
10606         * bus/messagebus.in: fix to avoid processname/servicename 
10607         confusion, from Michael Kearey
10608         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10609         
10610 2003-07-23  Havoc Pennington  <hp@pobox.com>
10611
10612         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10613         fix from Andy Hanton to remove broken "+1"
10614
10615 2003-07-16  Havoc Pennington  <hp@pobox.com>
10616
10617         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10618         babysitter process, as suggested by Thomas Leonard, so 
10619         an "eval `dbus-launch --exit-with-session`" will actually 
10620         return
10621
10622 2003-07-16  Havoc Pennington  <hp@pobox.com>
10623
10624         * configure.in: print out EXPANDED_* variables in the summary at
10625         the end; clean up the code that computes EXPANDED_ variables and
10626         get the ones using exec_prefix right. Should make things work
10627         when you build without --prefix
10628
10629 2003-06-29  Havoc Pennington  <hp@pobox.com>
10630
10631         * mono/Test.cs (class Test): fire up a main loop and run it
10632
10633         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10634         done once, the app has to do it
10635
10636 2003-06-26  Havoc Pennington  <hp@pobox.com>
10637
10638         * mono/Connection.cs: set up connection with the glib main loop
10639
10640 2003-07-01  Havoc Pennington  <hp@redhat.com>
10641
10642         * doc/dbus-specification.sgml: clarify the format of a type code,
10643         change suggested by Jim Blandy
10644
10645 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10646
10647         * doc/Makefile.am:
10648         * tools/Makefile.am: Don't assume srcdir == builddir.
10649
10650         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10651         the allocated block.
10652         (_dbus_memory_test): New function.
10653         * dbus/dbus-test.h: Add _dbus_memory_test ().
10654         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10655
10656         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10657         of %c%c%c%c.
10658         (dbus_message_new): Remove obsolete @todo.
10659
10660         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10661         (_dbus_marshal_set_uint64): Fix comment.
10662
10663         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10664         hardcode FIELD_REPLY_SERIAL.
10665
10666         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10667         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10668
10669         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10670         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10671
10672 2003-06-24  Havoc Pennington  <hp@pobox.com>
10673
10674         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10675
10676 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10677
10678         * configure.in:
10679         * gcj/.cvsignore:
10680         * gcj/Hello.java:
10681         * gcj/Makefile.am:
10682         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10683         * gcj/org/.cvsignore:
10684         * gcj/org/Makefile.am:
10685         * gcj/org/freedesktop/.cvsignore:
10686         * gcj/org/freedesktop/Makefile.am:
10687         * gcj/org/freedesktop/dbus/.cvsignore:
10688         * gcj/org/freedesktop/dbus/Makefile.am:
10689         * gcj/org/freedesktop/dbus/Message.java: (Message),
10690         (Message.Message):
10691         * gcj/org/freedesktop/dbus/natMessage.cc:
10692         Fix the build system.
10693
10694 2003-06-22  Havoc Pennington  <hp@pobox.com>
10695
10696         * mono/Connection.cs: add more bindings
10697
10698         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10699         more than once.
10700
10701 2003-06-22  Havoc Pennington  <hp@pobox.com>
10702
10703         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10704         Start wrapping more stuff.
10705
10706 2003-06-22  Havoc Pennington  <hp@pobox.com>
10707
10708         * mono/Message.cs: implement Message.Wrap() that ensures we only
10709         have a single C# wrapper per DBusMessage, assuming it works which
10710         it probably doesn't.
10711
10712         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10713         (dbus_message_free_data_slot): new
10714         (dbus_message_set_data): new
10715         (dbus_message_get_data): new
10716
10717 2003-06-22  Havoc Pennington  <hp@pobox.com>
10718
10719         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10720         (_dbus_data_slot_allocator_alloc): rework these to keep a
10721         reference count on each slot and automatically manage a global
10722         slot ID variable passed in by address
10723
10724         * bus/bus.c: convert to new dataslot API
10725
10726         * dbus/dbus-bus.c: convert to new dataslot API
10727
10728         * dbus/dbus-connection.c: convert to new dataslot API
10729
10730         * dbus/dbus-server.c: convert to new dataslot API
10731
10732         * glib/dbus-gmain.c: ditto
10733
10734         * bus/test.c: ditto
10735
10736         * bus/connection.c: ditto
10737
10738 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10739
10740         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10741         after the gcj checks so that the correct configuration tags
10742         will be added to libtool.
10743
10744         * dbus-glib-1.pc.in: No need to specify any includes since
10745         dbus-1.pc.in has those.
10746
10747 2003-06-22  Havoc Pennington  <hp@pobox.com>
10748
10749         * mono/*, gcj/*, configure.in, Makefile.am:
10750         Check in makefiles and subdirs for mono and gcj bindings.
10751         Neither binding actually exists, just trying to get through
10752         all the build and other boring bits.
10753
10754 2003-06-21  Philip Blundell  <philb@gnu.org>
10755
10756         * tools/dbus-monitor.1: Updated.
10757
10758         * tools/dbus-send.1: Likewise.
10759
10760 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10761
10762         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10763         for hangup and error after checking read so we won't discard
10764         pending data if both hangup and read are set.
10765
10766 2003-06-19  Philip Blundell  <philb@gnu.org>
10767
10768         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10769
10770         * tools/dbus-send.c: Accept both --system and --session.
10771
10772         * tools/dbus-monitor.c: Same here.
10773
10774 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10775
10776         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10777         from C++ (Patch by Miloslav Trmac).
10778
10779 2003-06-15  Joe Shaw  <joe@assbarn.com>
10780
10781         * configure.in: Check for socklen_t.
10782
10783         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10784
10785         * test/test-segfault.c: Add #include <sys/time.h>
10786
10787         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10788         dbus-launch needs it.
10789
10790 2003-06-09  Havoc Pennington  <hp@redhat.com>
10791
10792         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10793         SUN_LEN, it breaks abstract socket usage
10794
10795         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10796         starts of lines.
10797
10798 2003-06-04  Havoc Pennington  <hp@pobox.com>
10799
10800         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10801         using unix:abstract=/foo, and when listening in a tmpdir
10802         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10803
10804         * dbus/dbus-transport.c (_dbus_transport_open): support
10805         unix:abstract=/foo
10806
10807         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10808         support abstract sockets
10809
10810         * dbus/dbus-transport-unix.c
10811         (_dbus_transport_new_for_domain_socket): support abstract sockets
10812
10813         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10814         toggle as an argument, implement abstract namespace support
10815         (_dbus_listen_unix_socket): ditto
10816
10817         * configure.in: add --enable-abstract-sockets and implement
10818         a configure check for autodetection of the right value.
10819
10820 2003-06-01  Havoc Pennington  <hp@pobox.com>
10821
10822         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10823         in /tmp (though on Linux this will end up being useless,
10824         when we add abstract namespace support)
10825
10826         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10827         subst'ing it
10828
10829 2003-05-28  Colin Walters  <walters@verbum.org>
10830
10831         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10832
10833 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10834
10835         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10836
10837 2003-05-17  Colin Walters  <walters@gnu.org>
10838
10839         * tools/dbus-send.c: Don't exit with an error code if --help was
10840         passed.  Default to using the session bus instead of the system
10841         one.
10842
10843         * tools/dbus-launch.c: Ditto.
10844
10845         * tools/dbus-monitor.c: Ditto.
10846
10847         * tools/dbus-send.1: Update with new arguments.
10848
10849         * tools/dbus-launch.c: Emit code to export variables.  New
10850         arguments -s and -c to specify shell syntax, and a bit of code to
10851         autodetect syntax.  Also, allow specifying a program to run.
10852
10853         * tools/dbus-launch.1: Update with new arguments.
10854
10855         * tools/dbus-send.1: Ditto.
10856
10857         * tools/dbus-monitor.1: Ditto.
10858
10859 2003-05-17  Havoc Pennington  <hp@pobox.com>
10860
10861         * bus/config-parser.c (merge_included): merge in policies from
10862         child configuration file.
10863
10864         * bus/policy.c (bus_policy_merge): function to merge two policies
10865         together
10866
10867 2003-05-16  Havoc Pennington  <hp@redhat.com>
10868
10869         * dbus/dbus-connection.c: disable verbose lock spew
10870
10871         * tools/dbus-send.c: add --print-reply command line option
10872
10873         * tools/dbus-print-message.h (print_message): new util function
10874         shared by dbus-send and dbus-monitor
10875
10876         * tools/dbus-monitor.c (handler_func): exit on disconnect
10877
10878         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10879         disconnected, don't try to use the read_watch
10880
10881         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10882         so we can find this bug more easily
10883
10884 2003-05-16  Havoc Pennington  <hp@redhat.com>
10885
10886         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10887         NULL as DBusHashTable is annoyingly likely to do.
10888
10889 2003-05-16  Colin Walters  <walters@verbum.org>
10890
10891         * tools/dbus-monitor.c: Add --session argument and usage()
10892         function.
10893
10894         * tools/dbus-monitor.1: Update with new --session arg.
10895
10896         * bus/Makefile.am (install-data-hook): Create
10897         $(libdir)/dbus-1.0/services so that the session bus is happy.
10898
10899 2003-05-15  Havoc Pennington  <hp@redhat.com>
10900
10901         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10902         on non-x86. ifdef's are evil.
10903
10904 2003-05-15  Havoc Pennington  <hp@redhat.com>
10905
10906         * configure.in: 0.11
10907
10908         * NEWS: update
10909
10910         * bus/Makefile.am (initddir): apparently we are supposed to put
10911         init scripts in /etc/rc.d/init.d not /etc/init.d
10912
10913         * bus/Makefile.am: remove the "you must --enable-tests to make
10914         check" as it broke distcheck
10915
10916         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10917
10918 2003-05-13  James Willcox  <jwillcox@gnome.org>
10919
10920         * configure.in:
10921         * bus/activation.c: (bus_activation_service_created),
10922         (bus_activation_activate_service):
10923         * bus/driver.c: (bus_driver_send_service_deleted),
10924         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10925         (bus_driver_send_service_acquired),
10926         (bus_driver_send_welcome_message),
10927         (bus_driver_handle_list_services):
10928         * bus/session.conf.in:
10929         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10930         (dbus_bus_service_exists), (dbus_bus_activate_service):
10931         * dbus/dbus-bus.h:
10932
10933         Add some convenience API which lets you activate a service, and did a
10934         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10935         and dbus_message_get_args()
10936
10937 2003-05-11  Havoc Pennington  <hp@pobox.com>
10938
10939         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10940         calling _dbus_marshal_validate_arg() for every byte in a byte
10941         array, etc.
10942
10943         * dbus/dbus-message-handler.c: use atomic reference counting to
10944         reduce number of locks slightly; the global lock in here sucks
10945
10946         * dbus/dbus-connection.c
10947         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10948         update_dispatch_status that can be called with lock held; then use
10949         in a couple places to reduce locking/unlocking
10950         (dbus_connection_send): hold the lock over the whole function
10951         instead of acquiring it twice.
10952
10953         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10954
10955         * bus/connection.c (bus_connections_setup_connection): fix access
10956         to already-freed memory.
10957
10958         * dbus/dbus-connection.c: keep a little cache of linked list
10959         nodes, to avoid using the global linked list alloc lock in the
10960         normal send-message case. Instead we just use the connection lock
10961         that we already have to take.
10962
10963         * dbus/dbus-list.c (_dbus_list_find_last): new function
10964
10965         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10966         change to use a struct for the atomic type; fix docs,
10967         they return value before increment, not after increment.
10968
10969         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10970         (_dbus_string_append_8_aligned): new functions to try to
10971         microoptimize this operation.
10972         (reallocate_for_length): break this out of set_length(), to
10973         improve profile info, and also so we can consider inlining the
10974         set_length() part.
10975
10976         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10977         strings with some preallocation, cuts down on our calls to realloc
10978         a fair bit. Though if we can get the "move entire string to empty
10979         string" optimization below to kick in here, it would be better.
10980
10981         * dbus/dbus-string.c (_dbus_string_move): just call
10982         _dbus_string_move_len
10983         (_dbus_string_move_len): add a special case for moving
10984         an entire string into an empty string; we can just
10985         swap the string data instead of doing any reallocs.
10986         (_dbus_string_init_preallocated): new function
10987
10988 2003-05-11  Havoc Pennington  <hp@pobox.com>
10989
10990         Write a "test-profile" that does echo client-server with threads;
10991         profile reveals lock contention, memcpy/realloc of buffers, and
10992         UTF-8 validation as hot spots. 20% of lock contention eliminated
10993         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10994         contention is global mempool locks for GList and DBusList.
10995
10996         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10997         x86 implementation
10998
10999         * dbus/dbus-connection.c (struct DBusConnection): use
11000         dbus_atomic_t for the reference count
11001
11002         * dbus/dbus-message.c (struct DBusMessage): declare
11003         dbus_atomic_t values as volatile
11004
11005         * configure.in: code to detect ability to use atomic integer
11006         operations in assembly, from GLib patch
11007
11008         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
11009         time, tired of it being wrong in threads and forked processes
11010
11011         * glib/test-profile.c: a little program to bounce messages back
11012         and forth between threads and eat CPU
11013
11014         * dbus/dbus-connection.c: add debug spew macros for debugging
11015         thread locks; include config.h at top; fix deadlock in
11016         dbus_connection_flush()
11017
11018 2003-05-08  Havoc Pennington  <hp@pobox.com>
11019
11020         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
11021         data from getting written, and there wasn't a good reason to
11022         use _exit really.
11023
11024         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
11025         dbus_verbose lines in test coverage
11026         (main): add list of functions sorted by # of untested blocks
11027         to the coverage report
11028
11029         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
11030
11031         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
11032
11033         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
11034         extend test coverage
11035
11036         * test/data/auth/cancel.auth-script: test canceling an
11037         authentication
11038
11039         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
11040         aren't used. in CVS history if we end up needing them.
11041
11042 2003-05-04  Havoc Pennington  <hp@pobox.com>
11043
11044         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
11045         unit test
11046
11047         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
11048         function, which assumed length was in # of strings, not bytes
11049
11050         * dbus/dbus-message.c (_dbus_message_test): add tests for some
11051         missing coverage
11052
11053         * dbus/dbus-connection.c
11054         (_dbus_connection_queue_received_message): disable function for
11055         now, we are only using it in test mode
11056
11057         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11058         remove a mistaken FIXME
11059
11060 2003-05-04  Havoc Pennington  <hp@pobox.com>
11061
11062         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
11063         unlock mutex on successful return, patch from Anders Gustafsson
11064
11065 2003-05-04  Havoc Pennington  <hp@pobox.com>
11066
11067         * dbus-glib-1.pc.in (Requires): fix dependencies, from
11068         Anders Gustafsson
11069
11070 2003-05-04  Havoc Pennington  <hp@pobox.com>
11071
11072         * tools/dbus-launch.c: implement
11073
11074         * bus/main.c (main), bus/bus.c (bus_context_new):
11075         implement --print-pid and --fork
11076
11077 2003-05-03  Havoc Pennington  <hp@redhat.com>
11078
11079         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
11080         the address had no value, and add to test suite. Fix and
11081         regression test from Miloslav Trmac
11082
11083 2003-05-03  Havoc Pennington  <hp@pobox.com>
11084
11085         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
11086         watch is invalid when handled
11087
11088         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
11089         dbus-launch utility to launch the bus from a shell script.  Didn't
11090         actually implement dbus-launch yet, it's just a placeholder still.
11091
11092 2003-05-03  Havoc Pennington  <hp@pobox.com>
11093
11094         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
11095         daemon; also documents daemon config file, so replaces
11096         doc/config-file.txt. Corrected some stuff from config-file.txt in
11097         the process of moving it.
11098
11099 2003-05-03  Havoc Pennington  <hp@pobox.com>
11100
11101         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
11102         add some man pages
11103
11104 2003-05-03  Colin Walters  <walters@verbum.org>
11105
11106         * dbus/dbus-sysdeps.c (fill_user_info): Test against
11107         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
11108
11109         * Makefile.am: Update to use new .pc versioning scheme.
11110
11111 2003-05-02  Havoc Pennington  <hp@redhat.com>
11112
11113         * bus/system.conf.in: allow send/receive to/from message bus
11114         service
11115
11116 2003-04-30  Havoc Pennington  <hp@redhat.com>
11117
11118         * configure.in: print a note when building with unit tests and
11119         without assertions
11120
11121 2003-04-30  Havoc Pennington  <hp@redhat.com>
11122
11123         * Makefile.am: add a check-local that complains if you didn't
11124         configure with --enable-tests
11125
11126 2003-04-29  Havoc Pennington  <hp@redhat.com>
11127
11128         * glib/dbus-gmain.c: docs cleanups
11129
11130         * dbus/dbus-types.h: add docs on int64 types
11131
11132         * dbus/dbus-memory.c: fix docs to avoid putting private API in
11133         public API docs section
11134
11135 2003-04-29  Havoc Pennington  <hp@redhat.com>
11136
11137         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
11138         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
11139         parallel install API version, not with the D-BUS package version.
11140
11141         * HACKING: move some of README over here
11142
11143         * README: updates, and document API/ABI policy
11144
11145         * configure.in: reindentation
11146
11147 2003-04-29  Havoc Pennington  <hp@redhat.com>
11148
11149         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
11150         to use this library" to be sure people have the right
11151         expectations.
11152
11153 2003-04-28  Havoc Pennington  <hp@redhat.com>
11154
11155         * configure.in: add --enable-docs which by default is auto yes if
11156         doxygen and db2html found, no otherwise; but can be forced on/off
11157
11158         * doc/Makefile.am: conditionalize whether to build docs on
11159         --enable-docs
11160
11161 2003-04-28  Havoc Pennington  <hp@redhat.com>
11162
11163         * configure.in: 0.10
11164
11165         * NEWS: update
11166
11167         * bus/system.conf.in: add <includedir>system.d</includedir>
11168
11169         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
11170         username was provided but not uid
11171
11172         * bus/config-parser.c (struct BusConfigParser): keep track of
11173         whether the parser is toplevel or was included; change some
11174         of the error handling if it's included.
11175
11176 2003-04-27  Havoc Pennington  <hp@pobox.com>
11177
11178         Unbreak my code...
11179
11180         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11181         report correct status if we finish processing authentication
11182         inside this function.
11183
11184         * bus/activation.c (try_send_activation_failure): use
11185         bus_transaction_send_error_reply
11186
11187         * bus/connection.c (bus_connection_get_groups): return an error
11188         explaining the problem
11189
11190         * bus/bus.c (bus_context_check_security_policy): implement
11191         restriction here that inactive connections can only send the
11192         hello message. Also, allow bus driver to send anything to
11193         any recipient.
11194
11195         * bus/connection.c (bus_connection_complete): create the
11196         BusClientPolicy here instead of on-demand.
11197         (bus_connection_get_policy): don't return an error
11198
11199         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
11200         sender field in message being replied to
11201
11202         * bus/bus.c (bus_context_check_security_policy): fix silly typo
11203         causing it to return FALSE always
11204
11205         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
11206         we checked sender rather than destination
11207
11208 2003-04-25  Havoc Pennington  <hp@redhat.com>
11209
11210         test suite is slightly hosed at the moment, will fix soon
11211
11212         * bus/connection.c (bus_connections_expire_incomplete): fix to
11213         properly disable the timeout when required
11214         (bus_connection_set_name): check whether we can remove incomplete
11215         connections timeout after we complete each connection.
11216
11217         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
11218         probably still broken.
11219
11220         * bus/services.c (bus_registry_acquire_service): implement max
11221         number of services owned, and honor allow/deny rules on which
11222         services a connection can own.
11223
11224         * bus/connection.c (bus_connection_get_policy): report errors here
11225
11226         * bus/activation.c: implement limit on number of pending
11227         activations
11228
11229 2003-04-25  Havoc Pennington  <hp@redhat.com>
11230
11231         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
11232         where we used >= 0 instead of != DBUS_UID_UNSET.
11233
11234 2003-04-25  Havoc Pennington  <hp@redhat.com>
11235
11236         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
11237         were toggled without add/remove, fix from Anders Gustafsson
11238
11239 2003-04-24  Havoc Pennington  <hp@redhat.com>
11240
11241         * test/data/valid-config-files/basic.conf: add <limit> tags to
11242         this test
11243
11244         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
11245         <limit> tag in configuration file.
11246
11247 2003-04-24  Havoc Pennington  <hp@redhat.com>
11248
11249         * bus/dispatch.c: somehow missed some name_is
11250
11251         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
11252         (_dbus_timeout_set_interval): new
11253
11254         * bus/connection.c (bus_connections_setup_connection): record time
11255         when each connection is first set up, and expire them after the
11256         auth timeout passes.
11257
11258 2003-04-24  Havoc Pennington  <hp@redhat.com>
11259
11260         * dbus/dbus-message.c (dbus_message_name_is): rename
11261         (dbus_message_service_is): rename
11262         (dbus_message_sender_is): rename
11263         (dbus_message_get_service): rename
11264
11265 2003-04-24  Havoc Pennington  <hp@redhat.com>
11266
11267         * configure.in: add --enable-checks
11268
11269         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11270
11271         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11272         to use thread locks.
11273         (_dbus_connection_handler_destroyed_locked): move some private
11274         functions into proper docs group
11275
11276         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11277         _dbus_return_val_if_fail
11278
11279         Throughout: use dbus_return_if_fail
11280
11281 2003-04-23  James Willcox  <jwillcox@gnome.org>
11282
11283         * glib/dbus-glib.h:
11284         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11285         (dbus_connection_setup_with_g_main),
11286         (dbus_server_setup_with_g_main):
11287         * glib/test-dbus-glib.c: (main):
11288         * glib/test-thread-client.c: (main):
11289         * glib/test-thread-server.c: (new_connection_callback), (main):
11290         * tools/dbus-monitor.c: (main):
11291
11292         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11293         and dbus_server_setup_with_g_main().
11294
11295 2003-04-20  Havoc Pennington  <hp@pobox.com>
11296
11297         * doc/dbus-specification.sgml: document the restrictions on
11298         message and service names
11299
11300 2003-04-22  Havoc Pennington  <hp@redhat.com>
11301
11302         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11303         support, and do some code cleanups to share more code and
11304         speed up array marshal/demarshal.
11305
11306         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11307
11308         * configure.in: generate dbus-arch-deps.h
11309
11310         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11311         64-bit typecodes
11312
11313 2003-04-22  Havoc Pennington  <hp@redhat.com>
11314
11315         * test/data/valid-messages/opposite-endian.message: fix test
11316         to use proper type for rply field
11317
11318         * test/data/invalid-messages: add tests for below validation
11319
11320         * dbus/dbus-message.c (decode_header_data): validate field types,
11321         and validate that named fields are valid names
11322         (decode_name_field): consider messages in the
11323         org.freedesktop.Local. namespace to be invalid.
11324
11325         * dbus/dbus-string.c (_dbus_string_validate_name): new
11326
11327 2003-04-19  Havoc Pennington  <hp@pobox.com>
11328
11329         * bus/driver.c (bus_driver_handle_hello): check limits and
11330         return an error if they are exceeded.
11331
11332         * bus/connection.c: maintain separate lists of active and inactive
11333         connections, and a count of each. Maintain count of completed
11334         connections per user. Implement code to check connection limits.
11335
11336         * dbus/dbus-list.c (_dbus_list_unlink): export
11337
11338         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11339         number of bytes in the message queue for a connection
11340
11341 2003-04-18  Havoc Pennington  <hp@pobox.com>
11342
11343         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11344
11345         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11346         memleaks
11347
11348         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11349         on realloc be sure to update the pointer in the keyring
11350
11351         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11352         offset to avoid writing to unallocated memory
11353
11354         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11355         try the next mechanism, so we properly handle OOM
11356
11357         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11358         on OOM.
11359         (_dbus_keyring_new): fix OOM bug
11360         (_dbus_keyring_new_homedir): always set error; impose a maximum
11361         number of keys we'll load from the file, mostly to speed up the
11362         test suite and make its OOM checks more useful, but also for
11363         general sanity.
11364
11365         * dbus/dbus-auth.c (process_error_server): reject authentication
11366         if we get an error from the client
11367         (process_cancel): on cancel, send REJECTED, per the spec
11368         (process_error_client): send CANCEL if we get an error from the
11369         server.
11370
11371 2003-04-18  Havoc Pennington  <hp@pobox.com>
11372
11373         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11374         debug spew
11375
11376         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11377         handling problem
11378
11379         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11380         about DBUS_TEST_HOMEDIR once
11381
11382         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11383         the environment
11384
11385         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11386         config file so we test the right thing
11387
11388         Throughout: assorted docs improvements
11389
11390 2003-04-18  Havoc Pennington  <hp@pobox.com>
11391
11392         * glib/dbus-gmain.c: adapt to watch changes
11393
11394         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11395
11396         * dbus/dbus-server.h: remove dbus_server_handle_watch
11397
11398         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11399
11400         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11401         like DBusTimeout, so we don't need dbus_connection_handle_watch
11402         etc.
11403
11404 2003-04-17  Havoc Pennington  <hp@redhat.com>
11405
11406         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11407         database usage so it all goes via the DBusUserDatabase cache.
11408
11409 2003-04-17  Havoc Pennington  <hp@redhat.com>
11410
11411         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11412         there was an OOM watch we skipped, we always return TRUE so we
11413         iterate again to have a look at it again. Fixes test suite hang.
11414         Code rearrangement also lets us lose some memset and only iterate
11415         over callbacks once.
11416
11417         * bus/driver.c (bus_driver_handle_message): sense of test for
11418         reply was backward
11419
11420 2003-04-16  Havoc Pennington  <hp@pobox.com>
11421
11422         * doc/dbus-specification.sgml: make spec say serials are unsigned
11423
11424         * dbus/dbus-message.h: change message serials to unsigned
11425
11426         * dbus/dbus-connection.c: adapt to message serials being unsigned
11427
11428 2003-04-15  Havoc Pennington  <hp@pobox.com>
11429
11430         * bus/bus.c: create and keep around a shared DBusUserDatabase
11431         object.
11432
11433         * bus/connection.c (bus_connection_get_groups): don't cache
11434         groups for user in the connection object, since user database
11435         object now does that.
11436
11437 2003-04-16  Havoc Pennington  <hp@redhat.com>
11438
11439         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11440         list of size counters
11441         (_dbus_message_loader_putback_message_link): put back a popped link
11442
11443         * dbus/dbus-connection.c
11444         (dbus_connection_set_max_live_messages_size): rename
11445         max_received_size
11446         (dbus_connection_get_outgoing_size): get size of outgoing
11447         queue
11448         (_dbus_connection_set_connection_counter): remove this cruft
11449
11450 2003-04-14  Havoc Pennington  <hp@redhat.com>
11451
11452         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11453         caching, but at some point we might want to be able to use a
11454         different database.
11455
11456         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11457         SHA1 conf file to test the sha1 auth mechanism, since the regular
11458         test always uses EXTERNAL when available.
11459
11460         * configure.in,
11461         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11462         add conf file that requires use of sha1 auth
11463
11464 2003-04-13  Havoc Pennington  <hp@pobox.com>
11465
11466         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11467         from Philip Blundell to send messages and monitor them.
11468
11469 2003-04-13  Havoc Pennington  <hp@pobox.com>
11470
11471         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11472         callbacks
11473
11474         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11475         users
11476
11477         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11478         fix to only recover unused bytes if we're already authenticated
11479         (_dbus_transport_get_is_authenticated): fix to still mark us
11480         authenticated if there are unused bytes.
11481
11482         * bus/dispatch.c: implement security policy checking
11483
11484         * bus/connection.c (bus_transaction_send_from_driver): new
11485
11486         * bus/bus.c (bus_context_check_security_policy): new
11487
11488         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11489         now we just set the DBusError and it gets converted to an error
11490         reply.
11491
11492         * bus/connection.c (allow_user_function): enable code using actual
11493         data from the config file
11494
11495         * bus/policy.c (list_allows_user): handle wildcard rules for
11496         user/group connection perms
11497
11498 2003-04-13  Havoc Pennington  <hp@pobox.com>
11499
11500         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11501
11502         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11503
11504         * bus/policy.c (bus_policy_append_mandatory_rule)
11505         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11506         (bus_policy_append_group_rule): new functions
11507
11508 2003-04-12  Havoc Pennington  <hp@pobox.com>
11509
11510         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11511
11512         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11513         the pid/gid/uid, just for paranoia.
11514
11515         * test/break-loader.c (randomly_do_n_things): find a byte
11516         containing a type code, and randomly change it to a different
11517         type code.
11518
11519 2003-04-12  Havoc Pennington  <hp@pobox.com>
11520
11521         * bus/policy.h: change BusPolicy to be the thing from the config
11522         file, and rename old BusPolicy to BusClientPolicy
11523
11524         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11525         match change in how policy works
11526
11527         * dbus/dbus-internals.h: mark assert_not_reached as
11528         __attribute((noreturn))__
11529
11530 2003-04-11  Havoc Pennington  <hp@redhat.com>
11531
11532         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11533         the broadcast service. Use boolean return for ServiceExists.
11534
11535 2003-04-11  Havoc Pennington  <hp@redhat.com>
11536
11537         * configure.in: add another directory to look for qt in.
11538
11539 2003-04-11  Havoc Pennington  <hp@redhat.com>
11540
11541         * AUTHORS: add Colin Walters
11542
11543 2003-04-11  Havoc Pennington  <hp@redhat.com>
11544
11545         * NEWS: update
11546
11547         * configure.in: 0.9
11548
11549 2003-04-11  Havoc Pennington  <hp@redhat.com>
11550
11551         * bus/messagebus.in: remove pid file when stopping the
11552         message bus, since the bus won't have privileges to remove it
11553         itself.
11554
11555 2003-04-11  Havoc Pennington  <hp@redhat.com>
11556
11557         * bus/bus.c (bus_context_new): move credentials change after
11558         creating pidfile
11559
11560 2003-04-11  Havoc Pennington  <hp@pobox.com>
11561
11562         * test/decode-gcov.c: add "below average functions" to the
11563         coverage report, and change how some of the code works.
11564
11565         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11566         not in the coverage stats.
11567
11568         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11569         couple places so running the test suite doesn't result in megaspam.
11570
11571 2003-04-11  Havoc Pennington  <hp@pobox.com>
11572
11573         * bus/dispatch.c (check_existent_service_activation): accept a no
11574         memory error in a place we didn't before
11575
11576         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11577         in case the first one failed," since the test suite is less
11578         broken now.
11579
11580 2003-04-10  Havoc Pennington  <hp@pobox.com>
11581
11582         * bus/dispatch.c (check_segfault_service_activation): add test
11583         for launching an executable that just crashes.
11584
11585         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11586         don't leave a million cores. We'll see how portable this is.
11587
11588 2003-04-10  Havoc Pennington  <hp@pobox.com>
11589
11590         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11591         the possible parent failures before we fork, so that we don't
11592         fail to create a babysitter after creating the child.
11593
11594         * bus/activation.c (bus_activation_activate_service): kill child
11595         if we don't successfully complete the activation.
11596
11597 2003-04-10  Havoc Pennington  <hp@redhat.com>
11598
11599         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11600         the connection if it's disconnected
11601
11602         * bus/activation.c (bus_activation_service_created): use new
11603         transaction features to roll back removal of pending activation if
11604         we don't successfully create the service after all. Don't remove
11605         pending activation if the function fails.
11606
11607         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11608         (_dbus_list_insert_after_link): new code to facilitate
11609         services.c fixes
11610
11611         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11612         new functionality, so we can preallocate the ability to insert
11613         into a hash table.
11614
11615         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11616         allowing us to put custom hooks in a transaction to be used for
11617         cancelling said transaction
11618
11619         * doc/dbus-specification.sgml: add some discussion of secondary
11620         service owners, and disallow zero-length service names
11621
11622         * bus/services.c (bus_registry_acquire_service): new function,
11623         splits out part of bus_driver_handle_acquire_service() and fixes
11624         a bug where we didn't remove the service doing the acquiring
11625         from the secondary queue if we failed to remove the current owner
11626         from the front of the queue.
11627
11628 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11629
11630         * doc/dbus-specification.sgml:
11631         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11632
11633 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11634
11635         * bus/.cvsignore:
11636         * glib/.cvsignore:
11637         * test/.cvsignore:
11638         Added files to cvsignore
11639
11640         * dbus/dbus-message.h:
11641         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11642         Make get_named() take two out argument and return a boolean.
11643         (dbus_message_iter_get_args_valist):
11644         Update usage of get_named().
11645         (dbus_message_iter_append_byte):
11646         Fix typo
11647         (dbus_message_iter_append_named)
11648         Fix typo
11649         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11650         More tests.
11651
11652 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11653
11654         * dbus/dbus-marshal.[ch]:
11655         Add array_type_pos argument to _dbus_marshal_validate_arg.
11656         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11657
11658         * dbus/dbus-message.[ch]:
11659         Multi-dimensional arrays have full type specification in the
11660         outermost array. Iter code re-arranged to handle this.
11661         Added some more iter tests.
11662
11663         * doc/dbus-specification.sgml:
11664         Add me to authors.
11665         Remove old FIXME.
11666         Update new array encoding description.
11667         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11668
11669         * test/data/invalid-messages/array-with-mixed-types.message:
11670         * test/data/valid-messages/array-of-array-of-uint32.message:
11671         Change to the new array format.
11672
11673         * test/data/invalid-messages/too-short-dict.message:
11674         Fix bug in test.
11675
11676         * test/data/valid-messages/recursive-types.message:
11677         Fix up and extend test.
11678
11679 2003-04-10  Havoc Pennington  <hp@pobox.com>
11680
11681         * bus/dispatch.c: lots of fixes
11682
11683         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11684         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11685         that was crack, broke the test service.
11686
11687         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11688         handling to avoid piling up errors if we get a failure on the
11689         first address.
11690
11691         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11692         pid in assertion failures.
11693
11694         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11695         to some fixed size of file descriptor array. Don't return TRUE
11696         anytime a timeout exists, that led to lots of busy loop silliness
11697         in the tests.
11698
11699 2003-04-09  Havoc Pennington  <hp@redhat.com>
11700
11701         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11702         I'd checked this in earlier but hadn't.
11703
11704 2003-04-09  Havoc Pennington  <hp@redhat.com>
11705
11706         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11707         the activation test (man this is getting old!)
11708
11709 2003-04-09  Havoc Pennington  <hp@redhat.com>
11710
11711         * test/test-utils.c: use dispatch status function to fix this up
11712
11713         * bus/connection.c (connection_watch_callback): don't dispatch
11714         from here
11715         (connection_timeout_callback): don't dispatch from here
11716         (bus_connections_setup_connection): set the dispatch status function
11717         (bus_connection_disconnected): unset it
11718
11719         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11720         used to add a connection to be dispatched
11721         (_dbus_loop_iterate): do the dispatching at the end of each
11722         iteration
11723
11724         * dbus/dbus-connection.c
11725         (dbus_connection_set_dispatch_status_function): new function
11726         allowing us to fix up main loop usage
11727         (_dbus_connection_last_unref): free all the various function
11728         user data
11729         (dbus_connection_dispatch): call the DispatchStatusFunction
11730         whenever this function returns
11731         (dbus_connection_handle_watch): call DispatchStatusFunction
11732         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11733         (reply_handler_timeout): call DispatchStatusFunction
11734         (dbus_connection_flush): call DispatchStatusFunction
11735
11736 2003-04-09  Havoc Pennington  <hp@redhat.com>
11737
11738         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11739         a memory leak
11740
11741         * bus/dispatch.c (check_service_activated): fix bug in test
11742
11743         * dbus/dbus-mainloop.c (check_timeout): fix this up
11744
11745         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11746         verbose output so we can sort out output from different processes,
11747         e.g. in the activation case.
11748
11749 2003-04-08  Colin Walters  <walters@gnu.org>
11750
11751         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11752         the pid file.
11753         (bus_context_new): Set it.
11754         (bus_context_unref): Use it to delete the pid file.
11755
11756 2003-04-08  Havoc Pennington  <hp@redhat.com>
11757
11758         * test/data/invalid-messages/array-with-mixed-types.message:
11759         regression test that fails for the moment
11760
11761         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11762         tests for convenience
11763
11764         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11765         array of nil, it broke things.
11766
11767         * test/data/invalid-messages/array-of-nil.message: regression test
11768
11769         * test/data/valid-messages/array-of-array-of-uint32.message:
11770         happened to write this so added it to suite
11771
11772 2003-04-08  Havoc Pennington  <hp@redhat.com>
11773
11774         * bus/driver.c (bus_driver_handle_acquire_service): init
11775         retval/reply before checking name
11776
11777         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11778         recursion depth argument
11779
11780         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11781         in the public struct for future extension
11782
11783         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11784         typo
11785
11786         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11787         message
11788
11789         * doc/dbus-specification.sgml: fix typo
11790
11791 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11792
11793         Implemented recursive types, named types and new-style iters
11794
11795         * bus/driver.c:
11796         * glib/test-thread-client.c: (thread_func):
11797         * glib/test-thread-server.c: (handle_test_message):
11798         * test/test-service.c: (handle_echo):
11799         Update to new api
11800
11801         * dbus/Makefile.am:
11802         * dbus/dbus-dict.c:
11803         * dbus/dbus-dict.h:
11804         * dbus/dbus.h
11805         Remove DBusDict
11806
11807         * dbus/dbus-internals.c: (_dbus_type_to_string):
11808         Update for new types.
11809
11810         * dbus/dbus-marshal.[ch]:
11811         Implement recursive types and the new marshalling format.
11812         Remove hardcoded dict marshalling.
11813         Marshal named types.
11814
11815         * dbus/dbus-message-builder.c:
11816         Add BYTE_ARRAY.
11817         Remove references to old types
11818
11819         * dbus/dbus-message.[ch]:
11820         New non-refcounted iter API that supports recursive iters.
11821         Use iters for appending, including support for recursive
11822         iters.
11823         Add byte and named type support.
11824         Update everything to new marshalling formats.
11825         Add tests for new API.
11826
11827         * dbus/dbus-protocol.h:
11828         Remove old array types.
11829         Add types: BYTE, ARRAY, DICT, NAMED
11830
11831         * dbus/dbus-string.c:
11832         * dbus/dbus-sysdeps.c:
11833         Make parse_double locale safe.
11834
11835         * dbus/dbus-test-main.c:
11836         Call setlocale.
11837
11838         * dbus/dbus-test.c:
11839         Kill dict test
11840
11841         * doc/dbus-specification.sgml:
11842         Update spec
11843
11844         * test/data/incomplete-messages/missing-body.message:
11845         * test/data/invalid-messages/bad-boolean.message:
11846         * test/data/invalid-messages/bad-boolean-array.message:
11847         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11848         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11849         * test/data/invalid-messages/too-short-dict.message:
11850         * test/data/valid-messages/dict-simple.message:
11851         * test/data/valid-messages/dict.message:
11852         * test/data/valid-messages/emptiness.message:
11853         * test/data/valid-messages/lots-of-arguments.message:
11854         * test/data/valid-messages/no-padding.message:
11855         * test/data/valid-messages/recursive-types.message:
11856         Add missing NAME fields
11857         Fix up dicts & arrays
11858
11859         * test/data/invalid-messages/dict-with-nil-value.message:
11860         Removed, this is not invalid anymore.
11861
11862         * test/data/valid-messages/recursive-types.message:
11863         Add new test for deeply recursive types.
11864
11865 2003-04-07  Havoc Pennington  <hp@pobox.com>
11866
11867         * bus/driver.c (bus_driver_handle_acquire_service): return an
11868         error if you try to acquire a service that starts with ':'
11869
11870 2003-04-07  Havoc Pennington  <hp@redhat.com>
11871
11872         * doc/dbus-specification.sgml: require that base service names
11873         start with ':' and that the base service is created/deleted
11874         as first and last things a connection does on the bus
11875
11876         * bus/dispatch.c (check_existent_service_activation): lots more
11877         work on the activation test; it doesn't fully pass yet...
11878
11879         * test/test-service.c (main): fix so we don't memleak the
11880         connection to the message bus
11881         (filter_func): accept a message asking us to exit
11882
11883 2003-04-06  Havoc Pennington  <hp@pobox.com>
11884
11885         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11886         from Colin Walters
11887
11888         * configure.in: fixes to Qt detection from Colin Walters
11889
11890         * doc/Makefile.am: Only remove generated docbook dirs if they
11891         exist, from Colin Walters
11892
11893         * dbus/dbus-bus.c: change how we set well-known connections to
11894         NULL, so that it works if a single connection is stored in
11895         two well-known array slots.
11896
11897         * test/Makefile.am: remove a lot of stuff that isn't immediately
11898         useful, it's in CVS history if we want it.
11899
11900         * test/test-service.c: use dbus-mainloop instead of that
11901         watch.[hc] crack
11902
11903 2003-04-06  Havoc Pennington  <hp@pobox.com>
11904
11905         * dbus/Makefile.am: split lists of sources into stuff that goes in
11906         the library, util functions that go in the lib and are also used
11907         elsewhere, and util functions that are used in tests/daemon but
11908         don't go in the lib.
11909
11910         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11911         here so it can be used in test binaries also
11912
11913 2003-04-06  Havoc Pennington  <hp@pobox.com>
11914
11915         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11916         here in the parent process, so we can return an error if it
11917         fails. Also, move some of the code into the child so the parent
11918         is less hosed if we fail midway through.
11919
11920         * bus/bus.c (bus_context_new): move pidfile detection further up
11921         in the function, before we start overwriting sockets and such.
11922
11923         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11924
11925         * configure.in: add --with-system-pid-file and --with-system-socket
11926
11927 2003-04-06  Colin Walters  <walters@verbum.org>
11928
11929         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11930
11931         * bus/system.conf.in: Declare a pidfile.
11932
11933         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11934         create one (if appropriate).
11935
11936         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11937         (struct BusConfigParser) [pidfile]: New.
11938         (element_type_to_name, merge_included, start_busconfig_child)
11939         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11940         (bus_config_parser_unref): Free it.
11941         (bus_config_parser_get_pidfile): New function.
11942
11943         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11944
11945         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11946
11947         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11948
11949         * dbus/dbus-sysdeps.h: Prototype it.
11950
11951 2003-04-06  Havoc Pennington  <hp@pobox.com>
11952
11953         * bus/bus.c (bus_context_new): print the address in here, rather
11954         than in main(), because we need to do it before forking the daemon
11955
11956         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11957         on the service nonexistent error
11958
11959         * bus/driver.c (bus_driver_handle_acquire_service): set the
11960         sender on the AcquireService reply
11961
11962         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11963         server also listen on a UNIX socket so services can connect to it.
11964
11965 2003-04-06  Havoc Pennington  <hp@pobox.com>
11966
11967         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11968         so it detects deadlocks and also we actually init threads when
11969         debugging.
11970
11971 2003-04-06  Havoc Pennington  <hp@pobox.com>
11972
11973         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11974         save the domain socket name, and unlink it when we disconnect the
11975         server. Means that at least when we exit normally, we won't leave
11976         a bunch of junk in /tmp
11977
11978         * dbus/dbus-transport-unix.c
11979         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11980         memory management). (I was making a real change here but then
11981         didn't)
11982
11983 2003-04-06  Havoc Pennington  <hp@pobox.com>
11984
11985         * bus/bus.c (bus_context_new): fix wrong handling of
11986         server_data_slot_unref() in the error case.
11987
11988         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11989         "(condition) != 0" to _dbus_real_assert so that
11990         "_dbus_assert (pointer)" doesn't cause a warning
11991
11992         * bus/main.c (main): accept --print-address option to print out
11993         the message bus address
11994
11995         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11996
11997         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11998         "tmpdir" option to unix: address on client side
11999
12000         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
12001         to unix: address
12002
12003         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
12004         we can use to create sockets in the test suite.
12005
12006         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
12007         cleanly. To be used for testing.
12008
12009         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
12010
12011         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
12012
12013         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12014         handle trying to call this when there's no servers active
12015
12016 2003-04-05  Havoc Pennington  <hp@pobox.com>
12017
12018         * NEWS: update
12019
12020         * configure.in: 0.8
12021
12022 2003-04-05  Havoc Pennington  <hp@pobox.com>
12023
12024         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
12025         crash on startup. Need to get "try starting the daemon"
12026         in the test suite I guess. ;-)
12027
12028         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
12029         tracked the number of open connections; it's better done in
12030         application-specific code as you want it to span all servers etc.
12031
12032 2003-04-05  Havoc Pennington  <hp@pobox.com>
12033
12034         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
12035         patch from Colin Walters
12036
12037 2003-04-05  Havoc Pennington  <hp@pobox.com>
12038
12039         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
12040         reality; in fact multiple mechanisms are allowed.
12041
12042         * dbus/dbus-internals.c (_dbus_real_assert)
12043         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
12044         _dbus_assert_not_reached() into functions, so that they don't show
12045         up in basic block counts for test coverage, and don't use up as
12046         much disk space. Does mean slower execution speed though, so
12047         assumes --disable-asserts is the normal production case.
12048
12049 2003-04-05  Havoc Pennington  <hp@pobox.com>
12050
12051         * test/Makefile.am (dist-hook): also dist *.in files
12052
12053         * NEWS: update
12054
12055         * configure.in: 0.7
12056
12057 2003-04-05  Havoc Pennington  <hp@pobox.com>
12058
12059         * dbus/dbus-string.c: docs warning
12060
12061         * dbus/dbus-spawn.c: missing docs
12062
12063         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
12064
12065 2003-04-05  Havoc Pennington  <hp@pobox.com>
12066
12067         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
12068         magic from GLib
12069
12070         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
12071         to -1 once we've reaped the babysitter
12072         (_dbus_babysitter_handle_watch): do as much work as we can, not
12073         just one go of it
12074
12075         * bus/activation.c: add code using DBusBabysitter so that we
12076         handle it when a service fails to start up properly.
12077         (bus_activation_service_created): don't remove the activation
12078         entries as we go, just let them get removed when we free the pending
12079         activation. Unref reply messages after sending them.
12080
12081 2003-04-05  Havoc Pennington  <hp@pobox.com>
12082
12083         * test/decode-gcov.c (main): print per-directory stats in the report
12084
12085         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
12086
12087 2003-04-05  Havoc Pennington  <hp@pobox.com>
12088
12089         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
12090
12091         * test/decode-gcov.c: hack up a little program to suck data
12092         out of gcov files. Yes this is sort of silly.
12093
12094         * configure.in: define something in config.h and do an
12095         AM_CONDITIONAL when gcov is enabled
12096
12097 2003-04-04  Havoc Pennington  <hp@redhat.com>
12098
12099         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
12100         return a "babysitter" object that is used to monitor the status of
12101         the spawned process and reap it when required.
12102
12103         * test/test-segfault.c, test/test-exit.c,
12104         test/test-sleep-forever.c: binaries that do various lame things,
12105         used in the test suite.
12106
12107         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
12108
12109 2003-04-03  Havoc Pennington  <hp@pobox.com>
12110
12111         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
12112         in preparation for modifying it, dbus-sysdeps is getting
12113         a bit unmanageable.
12114
12115 2003-04-03  Havoc Pennington  <hp@redhat.com>
12116
12117         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
12118         have multiple ones
12119
12120         * bus/*.[hc]: adapt to mainloop change
12121
12122 2003-04-03  Havoc Pennington  <hp@redhat.com>
12123
12124         * bus/activation.c (load_directory): fix up memleaks
12125         (bus_activation_entry_free): free the entry
12126
12127         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
12128         we get one from the message bus; fix memleaks.
12129
12130         * dbus/dbus-message.c (dbus_set_error_from_message): new function
12131
12132 2003-04-03  Havoc Pennington  <hp@pobox.com>
12133
12134         * bus/config-parser.c (bus_config_parser_unref): free
12135         list of mechanisms, bug discovered by test suite enhancements
12136         (putting system.conf and session.conf into suite)
12137
12138         * test/Makefile.am, test/test-service.c: add placeholder for a
12139         test service that we'll activate as part of test suite. Doesn't
12140         do anything yet.
12141
12142         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
12143         setting NULL value, and use system malloc not dbus_malloc()
12144         when we have unavoidable memleakage.
12145
12146         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
12147         didn't work, and support DBUS_BUS_ACTIVATION.
12148
12149         * bus/activation.c (child_setup): pass our well-known bus type to
12150         the child
12151
12152         * bus/config-parser.c: support <type> to specify well-known type
12153
12154         * doc/dbus-specification.sgml: document the env variables to
12155         locate well-known buses and find service activator
12156
12157 2003-04-02  Havoc Pennington  <hp@redhat.com>
12158
12159         * test/Makefile.am (all-local): add a rule to copy tests to
12160         builddir, so we can have generated tests. Use this to remove the
12161         silly hack for testing system.conf and session.conf. Will use this
12162         shortly to generate .service files pointing to test binaries.
12163
12164 2003-04-02  Havoc Pennington  <hp@redhat.com>
12165
12166         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
12167         current alloc and needed new length, not max of the doubled
12168         allocation and needed new length. Also, when building tests,
12169         don't do the double-allocation stuff, just realloc every time.
12170
12171 2003-04-02  Havoc Pennington  <hp@redhat.com>
12172
12173         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
12174         in error messages
12175         (_dbus_string_get_dirname): new
12176         (_dbus_sysdeps_test): new
12177         (_dbus_directory_open): include dirnames in error messages
12178
12179         * bus/config-parser.c: interpret <include> and <includedir> and
12180         <servicedir> relative to config file location if the given
12181         filename is not absolute.
12182
12183         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
12184
12185 2003-04-02  Havoc Pennington  <hp@redhat.com>
12186
12187         * bus/connection.c (bus_transaction_send_error_reply): set sender
12188         service for the error, and unref the reply on success
12189
12190         * bus/activation.c: convert to use BusTransaction so OOM can be
12191         handled correctly
12192         (bus_activation_service_created): set sender of the message
12193
12194 2003-04-01  Havoc Pennington  <hp@redhat.com>
12195
12196         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
12197         <includedir> (at least mostly)
12198
12199         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
12200         first, then the user ID
12201
12202 2003-04-01  Havoc Pennington  <hp@pobox.com>
12203
12204         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
12205         function
12206
12207         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
12208
12209         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
12210
12211         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
12212         socket 0777, and unlink any existing socket.
12213
12214         * bus/bus.c (bus_context_new): change our UID/GID and fork if
12215         the configuration file so specifies; set up auth mechanism
12216         restrictions
12217
12218         * bus/config-parser.c (bus_config_parser_content): add support
12219         for <fork> option and fill in code for <auth>
12220
12221         * bus/system.conf.in: add <fork/> to default configuration,
12222         and limit auth mechanisms to EXTERNAL
12223
12224         * doc/config-file.txt (Elements): add <fork>
12225
12226         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
12227         (_dbus_change_identity): new function
12228
12229 2003-03-31  Havoc Pennington  <hp@redhat.com>
12230
12231         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
12232         (_dbus_listen_unix_socket): fix off-by-one error in null
12233         termination spotted by Nalin
12234
12235 2003-03-31  Havoc Pennington  <hp@redhat.com>
12236
12237         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
12238         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
12239         having a real home directory available.
12240
12241 2003-03-31  Havoc Pennington  <hp@redhat.com>
12242
12243         * bus/Makefile.am (install-data-hook): create /var/run/dbus
12244
12245         * bus/messagebus.in: add init script for Red Hat /etc/init.d
12246
12247         * configure.in: add support for specifying a style of init script
12248         to install
12249
12250 2003-03-31  Havoc Pennington  <hp@redhat.com>
12251
12252         Fix some annoying DBusString API and fix all affected code.
12253
12254         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
12255         max_length argument
12256         (_dbus_string_get_data): change to return string instead of using
12257         an out param
12258         (_dbus_string_get_const_data): ditto
12259         (_dbus_string_get_data_len): ditto
12260         (_dbus_string_get_const_data_len): ditto
12261
12262 2003-03-31  Havoc Pennington  <hp@redhat.com>
12263
12264         * bus/main.c (main): fix up the command line arguments to be nicer
12265
12266 2003-03-31  Havoc Pennington  <hp@redhat.com>
12267
12268         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12269         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12270         final location that lands in the config file
12271
12272         * bus/config-loader-expat.c (bus_config_load): fix type of
12273         XML_Parser variable
12274
12275         * doc/TODO: remove TODO item for dbus_bus_get()
12276
12277         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12278
12279 2003-03-31  Havoc Pennington  <hp@pobox.com>
12280
12281         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12282         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12283         argument since they are always client side
12284
12285         * dbus/dbus-server.c (dbus_server_get_address): new function
12286
12287         * bus/main.c (main): take the configuration file as an argument.
12288
12289         * test/data/valid-config-files/debug-allow-all.conf: new file to
12290         use with dispatch.c tests for example
12291
12292         * bus/test-main.c (main): require test data dir
12293
12294         * bus/bus.c (bus_context_new): change this to take a
12295         configuration file name as argument
12296
12297         * doc/config-file.txt (Elements): add <servicedir>
12298
12299         * bus/system.conf, bus/session.conf: new files
12300
12301         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12302         well-known socket if none set
12303
12304         * configure.in: create system.conf and session.conf
12305
12306 2003-03-30  Havoc Pennington  <hp@pobox.com>
12307
12308         * bus/config-parser.c: hacking
12309
12310         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12311         to shut down, since it could cause weirdness with the DBusList
12312         lock
12313
12314         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12315         link-oriented stack routines
12316         (alloc_link): free the mempool if the first alloc from it fails
12317
12318         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12319
12320         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12321         from GLib
12322         (_dbus_string_skip_white): new
12323
12324         * doc/config-file.txt (Elements): add <includedir>
12325
12326 2003-03-28  Havoc Pennington  <hp@pobox.com>
12327
12328         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12329         (_dbus_string_copy_data): new functions
12330
12331 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12332
12333         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12334         * dbus/dbus-bus.h:
12335         Add dbus_bus_get.
12336
12337         * dbus/dbus-memory.c:
12338         Fix a doc comment.
12339
12340 2003-03-28  Havoc Pennington  <hp@pobox.com>
12341
12342         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12343         I think it may have just been superstition. Not sure.
12344
12345         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12346         failures that were not being handled.
12347
12348         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12349
12350         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12351         row that will fail on out-of-memory.
12352
12353         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12354         function for testing out-of-memory handling.
12355
12356         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12357         allocation functions, they do map exactly to the expat ones.
12358
12359 2003-03-27  Havoc Pennington  <hp@redhat.com>
12360
12361         * bus/config-loader-libxml.c (bus_config_load): add another error
12362         check
12363
12364 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12365
12366         * doc/TODO:
12367         Add note about automatic service activation.
12368
12369         * doc/dbus-specification.sgml:
12370         Rename the specification and clarify a few things.
12371
12372 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12373
12374         * Doxyfile.in:
12375         * dbus/dbus-address.c:
12376         * dbus/dbus-dict.c:
12377         * dbus/dbus-marshal.c:
12378         * dbus/dbus-server-debug-pipe.c:
12379         * dbus/dbus-transport-unix.c:
12380         Fix documentation warnings.
12381
12382 2003-03-26  Havoc Pennington  <hp@pobox.com>
12383
12384         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12385         after every test so it's quick and easy to see which leaked, and
12386         so we test multiple dbus_shutdown() calls
12387
12388         * configure.in: change configure.in XML stuff to also support
12389         expat
12390
12391         * config-loader-libxml.c: some hacking
12392
12393         * config-loader-expat.c: some hacking
12394
12395         * config-parser.c: some hacking, plus tests
12396
12397 2003-03-25  Havoc Pennington  <hp@redhat.com>
12398
12399         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12400
12401         * configure.in: add --with-xml option to specify XML library,
12402         right now only libxml is supported.
12403
12404         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12405         nonworking code between home and work, still just stubs
12406
12407 2003-03-24  Havoc Pennington  <hp@redhat.com>
12408
12409         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12410         file
12411
12412         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12413         NULL argument for "message" if the error is a well-known one,
12414         fill in a generic message in this case.
12415
12416         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12417         favor of DBusError
12418
12419         * bus/test.c (bus_test_flush_bus): add
12420
12421         * bus/policy.c (bus_policy_test): test code stub
12422
12423 2003-03-24  Havoc Pennington  <hp@pobox.com>
12424
12425         * bus/connection.c (bus_connections_setup_connection): set up
12426         the "can this user connect" function, but it always returns
12427         TRUE until we have a config file parser so we can have a config
12428         file that allows connections.
12429
12430 2003-03-23  Havoc Pennington  <hp@pobox.com>
12431
12432         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12433         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12434         the mutex, so we can check for proper memory management
12435         and OOM handling.
12436
12437         * dbus/dbus-dataslot.c: remove the mutex from
12438         DBusDataSlotAllocator and lock it manually when using it,
12439         to simplify fitting it into the global slots framework.
12440
12441         * dbus/dbus-threads.c (init_static_locks): rework how we're
12442         handling global locks so they are easily shut down.
12443
12444         * bus/policy.c (bus_policy_append_rule): fix
12445
12446         * bus/test-main.c (main): check for memleaks
12447
12448         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12449         test suite check for memleaks
12450
12451         * dbus/dbus-memory.c: add support in test mode for tracking
12452         number of outstanding blocks
12453
12454 2003-03-23  Havoc Pennington  <hp@pobox.com>
12455
12456         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12457         policies code
12458
12459         * dbus/dbus-hash.h: add ULONG hash keys
12460
12461         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12462         (_dbus_get_group_id): new function
12463
12464 2003-03-20  Havoc Pennington  <hp@redhat.com>
12465
12466         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12467         new function
12468         (dbus_connection_get_unix_user): new function
12469
12470 2003-03-20  Havoc Pennington  <hp@pobox.com>
12471
12472         * bus/connection.c (bus_connection_send_oom_error): assert that
12473         message has a sender
12474         (connection_execute_transaction): ditto
12475         (bus_connection_preallocate_oom_error): fix to set the sender, and
12476         set recipient to the destination service, not the bus driver
12477
12478         * bus/policy.c: hacking
12479
12480         * dbus/dbus-message.c (dbus_message_service_is): new function
12481         (dbus_message_sender_is): new
12482
12483 2003-03-19  Havoc Pennington  <hp@redhat.com>
12484
12485         * bus/policy.c: start sketching code for policy restrictions on
12486         what connections can do.
12487
12488 2003-03-18  Havoc Pennington  <hp@redhat.com>
12489
12490         * doc/TODO: some notes on high-level todo items. Little nitpick
12491         stuff is all in @todo, so no need to add it here.
12492
12493         * doc/config-file.txt: some notes on how config file might look
12494
12495 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12496
12497         * configure.in: 0.6
12498
12499         * NEWS: Update.
12500
12501 2003-03-17  Havoc Pennington  <hp@redhat.com>
12502
12503         * dbus/dbus-internals.h: add gcc attributes so that
12504         our printf-style functions warn on bad arguments to
12505         format
12506
12507         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12508         format bug
12509
12510         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12511         printf format bug
12512
12513 2003-03-17  Havoc Pennington  <hp@redhat.com>
12514
12515         * bus/test-main.c (main): make it print something as it runs
12516         so make check doesn't look stuck
12517
12518         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12519         from CVS, now obsolete
12520
12521 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12522
12523         * bus/dispatch.c: (bus_dispatch):
12524         Refetch the service name since it may have been reallocated
12525         when dbus_message_set_sender was called.
12526
12527         * dbus/dbus-sysdeps.c: (_dbus_accept):
12528         Add address and address length variables and use them to stop
12529         valgrind from complaining.
12530
12531 2003-03-17  Havoc Pennington  <hp@pobox.com>
12532
12533         All tests pass, no memleaks, no valgrind complaints.
12534
12535         * bus/test.c: refcount handler_slot
12536
12537         * bus/connection.c (bus_connections_new): refcount
12538         connection_data_slot
12539
12540         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12541         bytes so that auth scripts pass.
12542
12543         * bus/dispatch.c: init message_handler_slot so it gets allocated
12544         properly
12545
12546         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12547
12548         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12549         dealloc server_pipe_hash when no longer used for benefit of
12550         leak checking
12551
12552         * dbus/dbus-auth.c (process_command): memleak fix
12553
12554         * bus/dispatch.c (check_hello_message): memleak fix
12555
12556 2003-03-16  Havoc Pennington  <hp@pobox.com>
12557
12558         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12559
12560 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12561
12562         * bus/activation.c (bus_activation_activate_service): Append
12563         the pending activation entry to the list of pending activations.
12564
12565 2003-03-16  Havoc Pennington  <hp@pobox.com>
12566
12567         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12568         connections
12569
12570         * dbus/dbus-address.c (create_entry): fix OOM handling when
12571         failing to alloc entry->method
12572
12573 2003-03-16  Havoc Pennington  <hp@pobox.com>
12574
12575         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12576         the watch
12577
12578         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12579         add some missing dbus_set_result
12580
12581         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12582         alloc the DBusMessageHandler
12583
12584         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12585         the transport here, since we call this from the finalizer; it
12586         resulted in a double-finalize.
12587
12588         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12589         where we tried to use transport->connection that was NULL,
12590         happened when transport was disconnected early on due to OOM
12591
12592         * bus/*.c: adapt to handle OOM for watches/timeouts
12593
12594         * dbus/dbus-transport-unix.c: port to handle OOM during
12595         watch handling
12596
12597         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12598         reference to unused bytes instead of a copy
12599
12600         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12601         out of memory
12602
12603         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12604         FALSE on OOM
12605
12606         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12607         of memory
12608
12609 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12610
12611         * doc/dbus-specification.sgml:
12612         Document reply message for ActivateService.
12613
12614 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12615
12616         * bus/activation.c: (bus_pending_activation_entry_free),
12617         (bus_pending_activation_free), (bus_activation_new),
12618         (bus_activation_unref), (bus_activation_service_created),
12619         (bus_activation_activate_service):
12620         * bus/activation.h:
12621         * bus/bus.c: (bus_context_new):
12622         * bus/desktop-file.c: (new_section):
12623         * bus/driver.c: (bus_driver_send_service_deleted),
12624         (bus_driver_handle_activate_service):
12625         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12626         * bus/services.h:
12627         * dbus/dbus-connection.c:
12628         (dbus_connection_send_with_reply_and_block):
12629         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12630         * dbus/dbus-protocol.h:
12631         Make activation work better. Now pending activations will be queued
12632         and the daemon won't try to activate services that are already registered.
12633
12634 2003-03-16  Havoc Pennington  <hp@pobox.com>
12635
12636         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12637         connection data
12638
12639         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12640         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12641
12642 2003-03-16  Havoc Pennington  <hp@pobox.com>
12643
12644         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12645         this. always run the test suite before commit...
12646
12647         * bus/*: adapt to DBusConnection API changes
12648
12649         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12650         requires renaming stuff to avoid dbus_connection_dispatch name
12651         conflict.
12652
12653         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12654         function
12655
12656         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12657         separate from _dbus_message_loader_return_buffer()
12658
12659         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12660         this, because it's now always broken to use; the number of
12661         messages in queue vs. the number still buffered by the message
12662         loader is undefined/meaningless. Should use
12663         dbus_connection_get_dispatch_state().
12664         (dbus_connection_dispatch): rename from
12665         dbus_connection_dispatch_message
12666
12667 2003-03-16  Havoc Pennington  <hp@pobox.com>
12668
12669         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12670         implementation
12671
12672 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12673
12674         * dbus/dbus-connection.c:
12675         (dbus_connection_send_with_reply_and_block):
12676         Decrease connection->n_incoming when removing an entry
12677         from the list.
12678         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12679         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12680         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12681         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12682         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12683         (dbus_dict_get_byte_array):
12684         Handle NULL arrays and strings. Also add support for byte arrays.
12685
12686         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12687         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12688         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12689         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12690         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12691         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12692         * dbus/dbus-marshal.h:
12693         Add support for marshalling and demarshalling empty arrays and strings.
12694
12695         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12696         (dbus_message_append_string_array),
12697         (dbus_message_iter_get_boolean),
12698         (dbus_message_iter_get_boolean_array),
12699         (dbus_message_iter_get_int32_array),
12700         (dbus_message_iter_get_uint32_array),
12701         (dbus_message_iter_get_double_array),
12702         (dbus_message_iter_get_byte_array),
12703         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12704         (check_message_handling):
12705         Add support for getting empty arrays and dicts.
12706
12707         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12708         Don't do any validation at all for now, that's better than just checking
12709         for ASCII.
12710
12711         * test/data/valid-messages/emptiness.message:
12712         New test message with lots of empty arrays.
12713
12714 2003-03-16  Havoc Pennington  <hp@pobox.com>
12715
12716         * dbus/dbus-connection.c
12717         (_dbus_connection_queue_received_message_link): new function that
12718         can't fail due to OOM
12719
12720         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12721         new function pops a message together with a list link
12722         containing it.
12723
12724         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12725         message queuing functions to avoid needing to alloc memory
12726
12727 2003-03-16  Havoc Pennington  <hp@pobox.com>
12728
12729         Oops - test code was only testing failure of around 30 of the
12730         mallocs in the test path, but it turns out there are 500+
12731         mallocs. I believe this was due to misguided linking setup such
12732         that there was one copy of dbus_malloc etc. in the daemon and one
12733         in the shared lib, and only daemon mallocs were tested. In any
12734         case, the test case now tests all 500+ mallocs, and doesn't pass
12735         yet, though there are lots of fixes in this patch.
12736
12737         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12738         this so that it doesn't need to allocate memory, since it
12739         has no way of indicating failure due to OOM (and would be
12740         annoying if it did).
12741
12742         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12743
12744         * bus/Makefile.am: rearrange to create two self-contained
12745         libraries, to avoid having libraries with overlapping symbols.
12746         that was resulting in weirdness, e.g. I'm pretty sure there
12747         were two copies of global static variables.
12748
12749         * dbus/dbus-internals.c: move the malloc debug stuff to
12750         dbus-memory.c
12751
12752         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12753         empty.
12754
12755         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12756
12757         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12758         on failure.
12759
12760         * bus/dispatch.c (bus_dispatch_add_connection): free
12761         message_handler_slot when no longer using it, so
12762         memory leak checkers are happy for the test suite.
12763
12764         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12765
12766         * bus/bus.c (new_connection_callback): disconnect in here if
12767         bus_connections_setup_connection fails.
12768
12769         * bus/connection.c (bus_connections_unref): fix to free the
12770         connections
12771         (bus_connections_setup_connection): if this fails, don't
12772         disconnect the connection, just be sure there are no side
12773         effects.
12774
12775         * dbus/dbus-string.c (undo_alignment): unbreak this
12776
12777         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12778         leaking
12779         (_dbus_auth_new): fix the order in which we free strings
12780         on OOM failure
12781
12782         * bus/connection.c (bus_connection_disconnected): fix to
12783         not send ServiceDeleted multiple times in case of memory
12784         allocation failure
12785
12786         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12787         get the base service name
12788         (dbus_bus_register_client): don't return base service name,
12789         instead store it on the DBusConnection and have an accessor
12790         function for it.
12791         (dbus_bus_register_client): rename dbus_bus_register()
12792
12793         * bus/dispatch.c (check_hello_message): verify that other
12794         connections on the bus also got the correct results, not
12795         just the one sending hello
12796
12797 2003-03-15  Havoc Pennington  <hp@pobox.com>
12798
12799         Make it pass the Hello handling test including all OOM codepaths.
12800         Now to do other messages...
12801
12802         * bus/services.c (bus_service_remove_owner): fix crash when
12803         removing owner from an empty list of owners
12804         (bus_registry_ensure): don't leave service in the list of
12805         a connection's owned services if we fail to put the service
12806         in the hash table.
12807
12808         * bus/connection.c (bus_connection_preallocate_oom_error): set
12809         error flag on the OOM error.
12810
12811         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12812         handle _dbus_transport_set_connection failure
12813
12814         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12815         to create watches up front and simply enable/disable them as
12816         needed.
12817         (unix_connection_set): this can now fail on OOM
12818
12819         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12820         of enabling/disabling a watch or timeout.
12821
12822         * bus/loop.c (bus_loop_iterate): don't touch disabled
12823         watches/timeouts
12824
12825         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12826
12827 2003-03-15  Havoc Pennington  <hp@pobox.com>
12828
12829         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12830         write useful test code, after all that futzing around ;-)
12831
12832         Test does not yet pass because we can't handle OOM in
12833         _dbus_transport_messages_pending (basically,
12834         dbus_connection_preallocate_send() does not prealloc the write
12835         watch). To fix this, I think we need to add new stuff to
12836         set_watch_functions, namely a SetEnabled function so we can alloc
12837         the watch earlier, then enable it later.
12838
12839         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12840         dbus-memory.c to the convenience lib
12841
12842         * bus/test.c: rename some static functions to keep them clearly
12843         distinct from stuff in connection.c. Handle client disconnection.
12844
12845 2003-03-14  Havoc Pennington  <hp@pobox.com>
12846
12847         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12848         transport, tests more of the real codepath. Set up clients
12849         with bus_setup_debug_client.
12850
12851         * bus/test.c (bus_setup_debug_client): function to set up debug
12852         "clients" on the main loop
12853
12854         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12855         support
12856
12857         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12858         server type
12859
12860         * dbus/dbus-server-debug.c: support a debug server based on pipes
12861
12862         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12863         (_dbus_close): new function
12864
12865         * configure.in: check for socketpair
12866
12867 2003-03-14  Havoc Pennington  <hp@redhat.com>
12868
12869         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12870         cheesy hack
12871
12872         * dbus/dbus-transport-debug.c: rework this a good bit to be
12873         less complicated. hopefully still works.
12874
12875         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12876         manually
12877
12878         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12879         after running it
12880
12881         * dbus/dbus-message.c (dbus_message_copy): rename from
12882         dbus_message_new_from_message, fix it up to copy
12883         all the message fields, add test case
12884
12885         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12886         not quite passing yet
12887
12888 2003-03-14  Havoc Pennington  <hp@pobox.com>
12889
12890         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12891         until no work remains" in test code. (the large diff here
12892         is just code movement, no actual changes)
12893
12894         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12895         1, no point waiting around for test code.
12896         (_dbus_server_debug_accept_transport): unref the timeout
12897         after adding it (right?)
12898
12899         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12900
12901 2003-03-13  Havoc Pennington  <hp@redhat.com>
12902
12903         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12904         out of memory
12905
12906         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12907         of memory
12908
12909         * dbus/dbus-connection.h: Make AddWatchFunction and
12910         AddTimeoutFunction return a bool so they can fail on out-of-memory
12911
12912         * bus/bus.c (bus_context_new): set up timeout handlers
12913
12914         * bus/connection.c (bus_connections_setup_connection): set up
12915         timeout handlers
12916
12917         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12918         can fail
12919
12920         * bus/bus.c (bus_context_new): adapt to changes
12921
12922         * bus/connection.c: adapt to changes
12923
12924         * test/watch.c: adapt to DBusWatch changes
12925
12926         * bus/dispatch.c (bus_dispatch_test): started adding this but
12927         didn't finish
12928
12929 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12930
12931         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12932
12933 2003-03-13  Havoc Pennington  <hp@pobox.com>
12934
12935         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12936         set up a test framework as for the library
12937
12938 2003-03-12  Havoc Pennington  <hp@pobox.com>
12939
12940         Throughout: purge global variables, introduce BusActivation,
12941         BusConnections, BusRegistry, etc. objects instead.
12942
12943         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12944         message bus object
12945
12946         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12947         going to redo this a bit differently I think
12948
12949 2003-03-12  Havoc Pennington  <hp@redhat.com>
12950
12951         Mega-patch that gets the message bus daemon initially handling
12952         out-of-memory. Work still needed. Also lots of random
12953         moving stuff to DBusError instead of ResultCode.
12954
12955         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12956
12957         * dbus/dbus-connection.c
12958         (dbus_connection_send_with_reply_and_block): use DBusError
12959
12960         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12961         DBusResultCode
12962
12963         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12964         code here, as the only failure possible is OOM.
12965
12966         * bus/connection.c (bus_connection_disconnect):
12967         rename bus_connection_disconnected as it's a notification only
12968
12969         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12970         "name" on get_args failure, should be done by get_args;
12971         don't disconnect client for bad args, just return an error.
12972         (bus_driver_handle_service_exists): ditto
12973
12974         * bus/services.c (bus_services_list): NULL-terminate returned array
12975
12976         * bus/driver.c (bus_driver_send_service_lost)
12977         (bus_driver_send_service_acquired): send messages from driver to a
12978         specific client to the client's unique name, not to the broadcast
12979         service.
12980
12981         * dbus/dbus-message.c (decode_header_data): reject messages that
12982         contain no name field
12983         (_dbus_message_get_client_serial): rename to
12984         dbus_message_get_serial and make public
12985         (_dbus_message_set_serial): rename from set_client_serial
12986         (_dbus_message_set_reply_serial): make public
12987         (_dbus_message_get_reply_serial): make public
12988
12989         * bus/connection.c (bus_connection_foreach): allow stopping
12990         iteration by returning FALSE from foreach function.
12991
12992         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12993         (dbus_connection_free_preallocated_send)
12994         (dbus_connection_preallocate_send): new API for sending a message
12995         without possibility of malloc failure.
12996         (dbus_connection_send_message): rename to just
12997         dbus_connection_send (and same for whole function family)
12998
12999         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
13000
13001         * dbus/dbus-sysdeps.c (_dbus_exit): new function
13002
13003         * bus/activation.c: handle/return errors
13004
13005         * dbus/dbus-errors.h: add more DBUS_ERROR #define
13006
13007         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
13008         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
13009         (_dbus_result_from_errno): move to this file
13010
13011 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
13012
13013         * dbus/dbus-marshal.c:
13014         (_dbus_marshal_set_string):
13015         Take a length argument so we can marshal the correct string
13016         length.
13017
13018         (_dbus_marshal_dict), (_dbus_demarshal_dict),
13019         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
13020         (_dbus_marshal_test):
13021         * dbus/dbus-marshal.h:
13022         Add support for marshalling and demarshalling dicts.
13023
13024         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13025         Add support for TYPE DICT.
13026
13027         * dbus/dbus-message.c: (set_string_field):
13028         Adjust header padding.
13029
13030         (dbus_message_append_args_valist), (dbus_message_append_dict),
13031         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
13032         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
13033         (check_message_handling), (check_have_valid_message):
13034         * dbus/dbus-message.h:
13035         Add functions for setting and getting dicts.
13036
13037         * dbus/dbus-protocol.h:
13038         Add DBUS_TYPE_DICT.
13039
13040         * dbus/dbus.h:
13041         Add dbus-dict.h
13042
13043         * doc/dbus-specification.sgml:
13044         Add information about how dicts are marshalled.
13045
13046         * test/data/invalid-messages/dict-with-nil-value.message:
13047         * test/data/invalid-messages/too-short-dict.message:
13048         * test/data/valid-messages/dict-simple.message:
13049         * test/data/valid-messages/dict.message:
13050         Add sample messages containing dicts.
13051
13052 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
13053
13054         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
13055
13056 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13057
13058         * dbus/Makefile.am:
13059         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13060         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
13061         (dbus_dict_set_int32), (dbus_dict_set_uint32),
13062         (dbus_dict_set_double), (dbus_dict_set_string),
13063         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
13064         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
13065         (dbus_dict_set_string_array), (_dbus_dict_test):
13066         * dbus/dbus-dict.h:
13067         Fix according to comments from Havoc.
13068
13069 2003-03-06  Michael Meeks  <michael@server.home>
13070
13071         * configure.in: if we don't have kde-config, disable have_qt.
13072
13073 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13074
13075         * dbus/Makefile.am:
13076         Add dbus-dict.[ch]
13077
13078         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13079         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
13080         (dbus_dict_remove), (dbus_dict_get_value_type),
13081         (dbus_dict_get_keys), (dbus_dict_put_boolean),
13082         (dbus_dict_put_int32), (dbus_dict_put_uint32),
13083         (dbus_dict_put_double), (dbus_dict_put_string),
13084         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
13085         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
13086         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
13087         (dbus_dict_get_int32), (dbus_dict_get_uint32),
13088         (dbus_dict_get_double), (dbus_dict_get_string),
13089         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
13090         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
13091         (dbus_dict_get_string_array), (_dbus_dict_test):
13092         * dbus/dbus-dict.h:
13093         Add DBusDict implementation
13094
13095         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
13096         * dbus/dbus-test.h:
13097         Add _dbus_dict_test
13098
13099 2003-03-04  Havoc Pennington  <hp@pobox.com>
13100
13101         * test/data/auth/*: adapt to changes
13102
13103         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
13104         USERID_BASE64 and change USERNAME_BASE64 to put in username not
13105         userid
13106
13107         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
13108         more stuff from being in a context name, to make the protocol
13109         simpler to deal with
13110
13111         * dbus/dbus-errors.c (dbus_error_has_name): new function
13112         (dbus_error_is_set): new function
13113
13114         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
13115         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
13116
13117         * dbus/dbus-connection.c (dbus_connection_flush): also read
13118         messages during a flush operation
13119
13120         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
13121
13122 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13123
13124         * configure.in: Check for gethostbyname on Solaris.
13125
13126         * dbus/dbus-transport.c: (_dbus_transport_open):
13127         Remove duplicate "tcp" entry.
13128
13129         * doc/dbus-specification.sgml:
13130         Clarify some things.
13131
13132 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13133
13134         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
13135         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
13136         (_dbus_keyring_test):
13137         * dbus/dbus-md5.c: (_dbus_md5_compute):
13138         * dbus/dbus-sha.c: (_dbus_sha_compute):
13139         Plug memory leaks.
13140
13141 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13142
13143         * README: Add some things.
13144
13145 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
13146
13147         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
13148         after case DBUS_TYPE_BOOELAN.
13149
13150 2003-03-02  Havoc Pennington  <hp@pobox.com>
13151
13152         * test/break-loader.c (randomly_set_extreme_ints): add test that
13153         sets really huge and small integers
13154
13155         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
13156         that length of boolean array fits in the string, and that
13157         string has room for boolean value in single-bool case.
13158
13159         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
13160         optional value to "ALIGN" command which is what to fill the
13161         alignment with.
13162
13163         * test/data/valid-messages/no-padding.message: add regression
13164         test for the message padding problem
13165
13166 2003-03-02  Havoc Pennington  <hp@pobox.com>
13167
13168         * dbus/dbus-message.c (decode_header_data): fix to always init
13169         message_padding, from Benjamin Dauvergne
13170
13171 2003-03-02  Havoc Pennington  <hp@pobox.com>
13172
13173         * configure.in: 0.5
13174
13175         * NEWS: Update.
13176
13177 2003-03-01  Joe Shaw  <joe@assbarn.com>
13178
13179         * configure.in: Check for "struct cmsgcred" and try to access its
13180         members for BSD-like unices.
13181
13182         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
13183         _dbus_read_credentials_unix_socket().
13184         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
13185         read() for reading the credential byte off the unix socket.  Use
13186         struct cmsgcred on systems that support it.
13187
13188 2003-02-27  Alexander Larsson  <alexl@redhat.com>
13189
13190         * glib/Makefile.am:
13191         * configure.in:
13192         Make gthreads-2.0 dependency optional. Don't build thread test if
13193         its not found.
13194
13195 2003-02-27  Havoc Pennington  <hp@pobox.com>
13196
13197         * dbus/dbus-connection.c
13198         (dbus_connection_send_message_with_reply_and_block): fix doh!
13199         doh! doh! bug that resulted in never removing a reply from the
13200         queue, no wonder we called get_reply_serial so much ;-)
13201
13202         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
13203         and client serial instead of demarshaling them every time
13204
13205 2003-02-27  Havoc Pennington  <hp@pobox.com>
13206
13207         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
13208         more inlined, using dbus-string-private.h, speeds things up
13209         substantially
13210
13211         * dbus/dbus-string.c (_dbus_string_free): apply align offset
13212         when freeing the string
13213         (_dbus_string_steal_data): fix for align offset
13214         (undo_alignment): new function
13215
13216 2003-02-26  Havoc Pennington  <hp@redhat.com>
13217
13218         All kinds of audit fixes from Owen, plus initial attempt to
13219         handle unaligned memory returned from malloc.
13220
13221         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
13222         leave room for align_offset and nul byte
13223         (fixup_alignment): function to track an align_offset and
13224         ensure real->str is aligned
13225         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
13226         to allow a nul byte plus align offset
13227         (_dbus_string_lock): fix overflow issue
13228         (_dbus_string_init_const_len): add assertions on sanity of len,
13229         assign allocated to be ALLOCATION_PADDING larger than len
13230         (set_length): fixup the overflow handling
13231         (_dbus_string_get_data_len): fix overflow in assertion
13232         (open_gap): detect overflow in size of gap to be opened
13233         (_dbus_string_lengthen): add overflow check
13234         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
13235         (_dbus_string_append): add overflow check
13236         (_dbus_string_append_unichar): overflow
13237         (_dbus_string_delete): fix overflow in assertion
13238         (_dbus_string_copy_len): overflow in assertion
13239         (_dbus_string_replace_len): overflows in assertions
13240         (_dbus_string_find): change to implement in terms of
13241         _dbus_string_find_to
13242         (_dbus_string_find_to): assorted fixage
13243         (_dbus_string_equal_c_str): assert c_str != NULL,
13244         fix logic so the function works
13245         (_dbus_string_ends_with_c_str): fix overflow thingy
13246         (_dbus_string_base64_encode): overflow fix
13247         (_dbus_string_validate_ascii): overflow
13248         (_dbus_string_validate_nul): overflow
13249
13250 2003-02-26  Havoc Pennington  <hp@redhat.com>
13251
13252         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
13253
13254 2003-02-26  Alexander Larsson  <alexl@redhat.com>
13255
13256         * configure.in:
13257         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
13258
13259         * dbus/dbus-connection.c:
13260         * dbus/dbus-connection.h:
13261         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13262         Add dbus_connection_set_wakeup_main_function and use it when queueing
13263         incoming and outgoing messages.
13264
13265
13266         * dbus/dbus-dataslot.c:
13267         Threadsafe usage of DBusDataSlotAllocator
13268
13269         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13270         dbus_new can fail.
13271
13272         * dbus/dbus-server-unix.c:
13273         Add todo comment
13274
13275         * glib/dbus-gmain.c:
13276         Implement the new wakeup functions for glib.
13277
13278         * glib/Makefile.am:
13279         * glib/test-thread-client.c:
13280         * glib/test-thread-server.c:
13281         * glib/test-thread.h:
13282         Initial cut at some thread test code. Not really done yet.
13283
13284 2003-02-26  Havoc Pennington  <hp@pobox.com>
13285
13286         * dbus/dbus-connection.c
13287         (dbus_connection_send_message_with_reply_and_block): fix crash
13288         where we ref'd the outgoing message instead of the returned reply
13289
13290         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13291         at the end of this function, so if we didn't need to read for
13292         authentication, we reinstall it for receiving messages
13293
13294         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13295         a NULL sender for peer-to-peer case
13296
13297         * dbus/dbus-transport-unix.c (check_read_watch): handle
13298         !authenticated case correctly
13299
13300         * glib/dbus-gmain.c: add support for DBusServer
13301
13302         * dbus/dbus-server.c: add data slot support
13303
13304         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13305         return values and handle errors
13306
13307         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13308         DBusConnection
13309
13310         * Doxyfile.in (INPUT): add glib subdir
13311
13312         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13313         setup_with_g_main instead of hookup_with_g_main; write docs
13314
13315 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13316
13317         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13318         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13319         * dbus/dbus-message.c: (dbus_message_append_boolean),
13320         (dbus_message_append_boolean_array),
13321         (dbus_message_get_args_valist), (_dbus_message_test):
13322         * dbus/dbus-message.h:
13323         * doc/dbus-specification.sgml:
13324         Various fixes as pointed out by Havoc.
13325
13326         * test/data/invalid-messages/bad-boolean-array.message:
13327         * test/data/invalid-messages/bad-boolean.message:
13328         Add invalid boolean value test cases.
13329
13330 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13331
13332         * dbus/dbus-internals.c: (_dbus_type_to_string):
13333         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13334         (_dbus_marshal_validate_arg):
13335         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13336         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13337         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13338         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13339         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13340         (dbus_message_iter_get_double),
13341         (dbus_message_iter_get_boolean_array), (message_iter_test):
13342         * dbus/dbus-message.h:
13343         * dbus/dbus-protocol.h:
13344         * doc/dbus-specification.sgml:
13345         * test/data/valid-messages/lots-of-arguments.message:
13346         Add support for boolean and boolean array types.
13347
13348 2003-02-23  Havoc Pennington  <hp@pobox.com>
13349
13350         * dbus/dbus-keyring.c: finish most of this implementation and
13351         simple unit test
13352
13353         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13354         these barf if the error isn't cleared to NULL
13355
13356         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13357         (_dbus_create_directory): new function
13358
13359         * dbus/dbus-errors.c (dbus_set_error): fix warning
13360
13361         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13362         (_dbus_string_hex_decode): new function
13363         (test_hex_roundtrip): test code
13364
13365         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13366
13367         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13368
13369         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13370         the save-to-temp/rename trick to atomically write the new file
13371         (_dbus_string_parse_uint): new function
13372
13373 2003-02-22  Havoc Pennington  <hp@pobox.com>
13374
13375         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13376
13377 2003-02-22  Havoc Pennington  <hp@pobox.com>
13378
13379         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13380         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13381
13382         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13383
13384         * dbus/test/data/sha-1: add US government test suite for SHA-1
13385
13386 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13387
13388         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13389         Make string arrays NULL-terminated.
13390
13391         * dbus/dbus-memory.c: (dbus_free_string_array):
13392         * dbus/dbus-memory.h:
13393         New function for freeing NULL-terminated string arrays.
13394
13395         * dbus/dbus-message-builder.c: (append_quoted_string),
13396         (_dbus_message_data_load):
13397         Add support for array types.
13398
13399         * dbus/dbus-message.c: (check_message_handling):
13400         Add more types as test cases.
13401
13402         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13403         (_dbus_string_parse_double):
13404         Add the start offset to the end offset.
13405
13406         * test/data/valid-messages/lots-of-arguments.message:
13407         New test message with lots of arguments.
13408
13409 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13410
13411         * dbus/dbus-message.c: (dbus_message_append_nil),
13412         (dbus_message_append_int32), (dbus_message_append_uint32),
13413         (dbus_message_append_double), (dbus_message_append_string),
13414         (dbus_message_append_int32_array),
13415         (dbus_message_append_uint32_array),
13416         (dbus_message_append_double_array),
13417         (dbus_message_append_byte_array),
13418         (dbus_message_append_string_array):
13419         Fix all out-of-memory handling in these functions.
13420
13421 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13422
13423         * dbus/dbus-message.c: (dbus_message_append_nil):
13424         Fix a silly.
13425
13426 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13427
13428         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13429         (dbus_message_append_nil), (dbus_message_append_int32_array),
13430         (dbus_message_append_uint32_array),
13431         (dbus_message_append_double_array),
13432         (dbus_message_append_byte_array),
13433         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13434         (dbus_message_iter_get_int32_array),
13435         (dbus_message_iter_get_uint32_array),
13436         (dbus_message_iter_get_double_array),
13437         (dbus_message_iter_get_byte_array),
13438         (dbus_message_iter_get_string_array):
13439
13440         * dbus/dbus-message.h:
13441         Add functions for appending and getting arrays.
13442
13443 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13444
13445         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13446         element size at least 8 bytes, fixes mempool tests on
13447         64-bit machines.
13448
13449 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13450
13451         * dbus/dbus-transport-unix.c (unix_do_iteration):
13452         Unlock the connection mutex during a blocking select call.
13453         Add todo about how we need a way to wake up the select.
13454
13455         * dbus/dbus-connection-internal.h:
13456         * dbus/dbus-connection.c:
13457         Add _dbus_connection_lock and _dbus_connection_unlock.
13458
13459 2003-02-19  Havoc Pennington  <hp@pobox.com>
13460
13461         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13462         Doxyfile.in, not Doxyfile
13463
13464         * dbus/dbus-keyring.c: do some hacking on this
13465
13466         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13467
13468         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13469         dbus_error_init
13470         (dbus_set_error): remove dbus_error_init, check for message ==
13471         NULL *before* we sprintf into it, and add @todo about including
13472         system headers in this file
13473
13474         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13475
13476         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13477
13478         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13479         get various bits of user information based on either username
13480         or user ID
13481         (_dbus_homedir_from_username): new function
13482
13483 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13484
13485         * configure.in:
13486         Add check for nonposix getpwnam_r
13487
13488         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13489         Align the pool element size to a sizeof (void *) boundary.
13490
13491         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13492         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13493         General Solaris fixes.
13494
13495         * test/data/valid-messages/simplest-manual.message:
13496         Explicitly state that we want little-endian packing.
13497
13498 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13499
13500         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13501
13502         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13503         Added to create a transport connecting using a tcp/ip socket.
13504
13505         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13506         to a tcp socket at given host and port.
13507         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13508         hostname and port.
13509
13510         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13511
13512         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13513         Added to create a server listening on a TCP/IP socket.
13514
13515 2003-02-19  Havoc Pennington  <hp@pobox.com>
13516
13517         Throughout: mop up all the Doxygen warnings and undocumented
13518         stuff.
13519
13520         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13521         to search any paths.
13522
13523         * dbus/dbus-threads.c: move global mutex initializers to
13524         dbus-internals.h, multiple prototypes was confusing doxygen
13525         besides being kind of ugly
13526
13527         * Doxyfile (PREDEFINED): have Doxygen define
13528         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13529         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13530         (do not abuse the feature! it's for stuff like the autogenerated
13531         macros in dbus-md5.c, not just for things you don't feel like
13532         documenting...)
13533
13534 2003-02-18  Havoc Pennington  <hp@pobox.com>
13535
13536         * dbus/dbus-string.c (_dbus_string_zero): new function
13537
13538         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13539         wrap it in some dbus-friendly API
13540
13541         * dbus/dbus-types.h: add 16-bit types
13542
13543 2003-02-18  Joe Shaw  <joe@assbarn.com>
13544
13545         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13546         credentials from our currently running process.
13547         (get_word): Fix a buglet where we were copying the entire length
13548         instead of relative to our position.
13549
13550         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13551         keys on the stack... it's 640k of data.
13552
13553         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13554         read the credentials byte off the socket, even if we don't have
13555         SO_PEERCRED.
13556         (_dbus_poll): Implement poll() using select() for systems which
13557         don't have it.
13558
13559         * glib/test-dbus-glib.c (main): Print out an error if no
13560         parameters are given.
13561
13562         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13563         can fallback to a secondary auth mechanism if the first fails.
13564
13565 2003-02-18  Havoc Pennington  <hp@pobox.com>
13566
13567         * AUTHORS: add Alex
13568
13569 2003-02-17  Havoc Pennington  <hp@pobox.com>
13570
13571         * doc/dbus-specification.sgml: lots of cosmetic
13572         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13573         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13574         s/server/bus/ (except in authentication section). Add a section
13575         "Message Bus Message Routing"
13576
13577 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13578
13579         Release 0.4
13580
13581         * NEWS: Update
13582
13583 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13584
13585         * doc/dbus-specification.sgml:
13586         Specification updates.
13587
13588 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13589
13590         * bus/activation.c: (bus_activation_init), (child_setup),
13591         (bus_activation_activate_service):
13592         * bus/activation.h:
13593         * bus/main.c: (main):
13594         Set DBUS_ADDRESS environment variable.
13595
13596         * dbus/dbus-errors.c: (dbus_set_error):
13597         Don't use va_copy since that's a C99 feature.
13598
13599         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13600         (_dbus_spawn_async):
13601         * dbus/dbus-sysdeps.h:
13602         Add child_setup_func to _dbus_spawn_async.
13603
13604         * doc/dbus-specification.sgml:
13605         Update specification.
13606
13607         * test/spawn-test.c: (setup_func), (main):
13608         Fix test.
13609
13610 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13611
13612         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13613         Added todo.
13614
13615 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13616
13617         * doc/.cvsignore:
13618         * doc/Makefile.am:
13619         * doc/dbus-test-plan.sgml:
13620         Add test plan document.
13621
13622         * test/Makefile.am:
13623         Fix distcheck.
13624
13625 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13626
13627         * dbus/dbus-message.c: (decode_header_data),
13628         (_dbus_message_loader_return_buffer):
13629         Set the header padding amount when loading a message.
13630
13631 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13632
13633         * bus/dispatch.c: (send_one_message):
13634         Only send broadcast messages to registered connections.
13635
13636         * dbus/dbus-message.c: (dbus_message_name_is):
13637         * dbus/dbus-message.h:
13638         New convenience function.
13639
13640         * dbus/dbus-transport-debug.c: (do_reading):
13641         Only dispatch one message per run.
13642
13643         * test/Makefile.am:
13644         * test/bus-test.c: (new_connection_callback), (die),
13645         (test_hello_client1_handler), (test_hello_client2_handler),
13646         (test_hello_replies), (main):
13647
13648         * test/bus-test-loop.[ch]:
13649         Add these.
13650
13651 2003-02-16  Havoc Pennington  <hp@pobox.com>
13652
13653         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13654         backward conditional
13655
13656 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13657
13658         * dbus/dbus-connection.c:
13659         Implement sent_message_with_reply. (with_reply_and block is still
13660         busted).
13661         Made dispatch_message not lose message if OOM.
13662
13663         * dbus/dbus-errors.h:
13664         Add NoReply error (for reply timeouts).
13665
13666 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13667
13668         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13669         Actually free keys and values when destroying hashtable.
13670
13671 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13672
13673         * dbus/dbus-auth.c: (client_try_next_mechanism):
13674         Plug a leak.
13675
13676         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13677         Return TRUE if there's no thread implementation around.
13678
13679         * glib/dbus-gmain.c: (free_source),
13680         (dbus_connection_hookup_with_g_main):
13681         Make sure to remove the GSource when the connection is finalized.
13682
13683 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13684
13685         * bus/dispatch.c: (bus_dispatch_message_handler):
13686         * dbus/dbus-errors.h:
13687         Return an error if someone tries to send a message to a service
13688         that doesn't exist.
13689
13690 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13691
13692         * bus/activation.c: (load_directory), (bus_activation_init),
13693         (bus_activation_activate_service):
13694         * bus/activation.h:
13695         * bus/driver.c:
13696         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13697         More work on the activation handling.
13698
13699         * dbus/dbus-errors.h:
13700         Add some error messages
13701
13702         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13703         * dbus/dbus-message.h:
13704         New function that creates an error message.
13705
13706         * dbus/dbus-protocol.h:
13707         Add ACTIVATE_SERVER message.
13708
13709         * dbus/dbus-server-unix.c: (unix_handle_watch),
13710         (_dbus_server_new_for_domain_socket):
13711         Call _dbus_fd_set_close_on_exec.
13712
13713         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13714         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13715         (_dbus_fd_set_close_on_exec):
13716         * dbus/dbus-sysdeps.h:
13717         Add _dbus_fd_set_close_on exec function. Also add function that checks
13718         that all open fds are set to close-on-exec and warns otherwise.
13719
13720         * dbus/dbus-transport-unix.c:
13721         (_dbus_transport_new_for_domain_socket):
13722         Call _dbus_fd_set_close_on_exec.
13723
13724 2003-02-16  Havoc Pennington  <hp@pobox.com>
13725
13726         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13727         allow people to avoid setting SIGPIPE to SIG_IGN
13728         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13729         we've been asked not to
13730
13731 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13732
13733         * dbus/dbus-list.c: (_dbus_list_append_link),
13734         (_dbus_list_prepend_link):
13735         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13736         (dbus_realloc):
13737         Warning fixes.
13738
13739 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13740
13741         * bus/Makefile.am:
13742         * bus/activation.c: (bus_activation_entry_free),
13743         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13744         * bus/activation.h:
13745         * bus/main.c: (main):
13746         Add simple activation support, doesn't work yet though.
13747
13748 2003-02-15   Zack Rusin  <zack@kde.org>
13749
13750         * qt/dbus-qthread.cpp:  small casting fix
13751
13752 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13753
13754         * dbus/dbus-errors.c: (dbus_set_error):
13755         * dbus/dbus-errors.h:
13756         Add a few errors and make dbus_set_error void.
13757
13758         * dbus/dbus-sysdeps.c:
13759         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13760         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13761         * dbus/dbus-sysdeps.h:
13762         Add _dbus_spawn_async.
13763
13764         * test/spawn-test.c: (main):
13765         Test for _dbus_spawn_async.
13766
13767 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13768
13769         * dbus/dbus-internals.h:
13770         Fix build without tests.
13771
13772         * dbus/dbus-list.c: (alloc_link):
13773         Fix a segfault when a malloc fails.
13774
13775         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13776         (dbus_malloc0), (dbus_realloc):
13777         Add support for malloc debugging.
13778
13779 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13780
13781         * dbus/dbus-threads.c:
13782         * dbus/dbus-threads.h:
13783         Add condvars. Remove static mutext from API.
13784         Implement static mutexes by initializing them from threads_init.
13785
13786         * glib/dbus-gthread.c:
13787         * qt/dbus-qthread.cpp:
13788         Update with the thread api changes.
13789
13790
13791         * dbus/dbus-list.c:
13792         * dbus/dbus-list.h:
13793         Turn StaticMutex into normal mutex + init function.
13794         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13795         _dbus_list_append_link, _dbus_list_prepend_link
13796
13797
13798         * dbus/dbus-sysdeps.c:
13799         * dbus/dbus-sysdeps.h:
13800         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13801         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13802
13803         * dbus/dbus-protocol.h:
13804         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13805
13806         * dbus/dbus-message.c:
13807         Make ref/unref atomic.
13808         Fix some docs.
13809
13810         * dbus/dbus-connection-internal.h:
13811         * dbus/dbus-connection.c:
13812         * dbus/dbus-connection.h:
13813         Make threadsafe.
13814         Change _peek to _borrow,_return & _steal_borrowed.
13815         Change disconnect callback to event.
13816         Make dbus_connection_dispatch_messages reentrant.
13817
13818         * dbus/dbus-transport.c:
13819         Don't ref the connection on calls to the transport
13820         implementation.
13821
13822         * dbus/dbus-message-handler.c:
13823         Make threadsafe.
13824
13825         * glib/dbus-gmain.c:
13826         Don't use peek_message anymore
13827
13828         * test/Makefile.am:
13829         * test/debug-thread.c:
13830         * test/debug-thread.h:
13831         Simple thread implementation that asserts() on deadlocks in
13832         single-threaded code.
13833
13834         * test/bus-test.c:
13835         (main) Call debug_threads_init.
13836
13837         * test/watch.c:
13838         Use disconnect message instead of disconnect callback.
13839
13840         * bus/connection.c:
13841         * bus/connection.h:
13842         Don't call dbus_connection_set_disconnect_function. Instead export
13843         bus_connection_disconnect.
13844
13845         * bus/dispatch.c:
13846         Call bus_connection_disconnect when we get a disconnected message.
13847
13848 2003-02-15  Havoc Pennington  <hp@pobox.com>
13849
13850         * dbus/dbus-message.c (dbus_message_new): fool around with the
13851         docs
13852
13853 2003-02-14  Havoc Pennington  <hp@pobox.com>
13854
13855         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13856
13857         * dbus/dbus-memory.c: fail if the debug functions indicate we
13858         should
13859
13860         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13861         (_dbus_decrement_fail_alloc_counter): debug functions to
13862         simulate memory allocation failures
13863
13864 2003-02-14  Havoc Pennington  <hp@pobox.com>
13865
13866         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13867         to DBusError
13868
13869 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13870
13871         * bus/driver.c: (bus_driver_handle_hello):
13872         * bus/driver.h:
13873         * bus/services.c: (bus_service_lookup):
13874         Reorder message sending so we get a more sane order.
13875
13876         * test/bus-test.c: (message_handler):
13877         Fix tyop.
13878
13879 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13880
13881         * bus/driver.c: (bus_driver_send_service_deleted),
13882         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13883         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13884         (bus_driver_send_welcome_message),
13885         (bus_driver_handle_list_services),
13886         (bus_driver_handle_acquire_service),
13887         (bus_driver_handle_service_exists):
13888         * dbus/dbus-bus.c: (dbus_bus_register_client),
13889         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13890         * dbus/dbus-errors.c: (dbus_result_to_string):
13891         * dbus/dbus-errors.h:
13892         * dbus/dbus-message.c: (dbus_message_append_args),
13893         (dbus_message_append_args_valist), (dbus_message_get_args),
13894         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13895         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13896         (dbus_message_iter_get_byte_array),
13897         (dbus_message_iter_get_string_array), (message_iter_test),
13898         (check_message_handling), (_dbus_message_test):
13899         * dbus/dbus-message.h:
13900         * test/bus-test.c: (main):
13901         Change fields to arguments in messages, so that they won't be
13902         confused with header fields.
13903
13904         * glib/test-dbus-glib.c: (main):
13905         Remove append_fields from hello message.
13906
13907 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13908
13909         * dbus/dbus-errors.c:
13910         * dbus/dbus-message.c:
13911         * dbus/dbus-string.c:
13912         Documentation fixes.
13913
13914 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13915
13916         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13917         (remove_timeout):
13918         Implement support for timeouts in dbus-glib.
13919
13920 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13921
13922         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13923         * dbus/dbus-message.c: (process_test_subdir):
13924         * test/break-loader.c: (find_breaks_based_on):
13925         Plug some memory leaks.
13926
13927 2003-02-13  Richard Hult  <rhult@codefactory.se>
13928
13929         * bus/main.c: Fix build.
13930
13931         * dbus/dbus-errors.h:
13932         * dbus/dbus-errors.c: Fix copyright for Anders.
13933
13934 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13935
13936         * bus/Makefile.am:
13937         Add utils.[ch]
13938
13939         * bus/connection.c: (bus_connection_foreach):
13940         Fix a warning.
13941
13942         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13943         (unescape_string), (new_section), (parse_section_start),
13944         (parse_key_value), (report_error), (bus_desktop_file_load),
13945         (bus_desktop_file_get_string):
13946         * bus/desktop-file.h:
13947         Use DBusError for error reporting.
13948
13949         * bus/dispatch.c: (send_one_message),
13950         (bus_dispatch_message_handler):
13951         * bus/driver.c: (bus_driver_send_service_deleted),
13952         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13953         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13954         (bus_driver_send_welcome_message),
13955         (bus_driver_handle_list_services),
13956         (bus_driver_handle_acquire_service),
13957         (bus_driver_handle_service_exists):
13958         * bus/loop.c: (bus_loop_run):
13959         * bus/main.c:
13960         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13961
13962         * bus/utils.c: (bus_wait_for_memory):
13963         * bus/utils.h:
13964         New files with general utility functions.
13965
13966         * dbus/dbus-internals.h:
13967         Remove _DBUS_HANDLE_OOM.
13968
13969 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13970
13971         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13972         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13973         * dbus/dbus-errors.h:
13974         Add DBusError structure.
13975
13976 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13977
13978         * test/data/valid-messages/standard-acquire-service.message:
13979         * test/data/valid-messages/standard-hello.message:
13980         * test/data/valid-messages/standard-list-services.message:
13981         * test/data/valid-messages/standard-service-exists.message:
13982         Add some standard messages.
13983
13984 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13985
13986         * bus/driver.c: (bus_driver_send_welcome_message),
13987         (bus_driver_handle_list_services),
13988         (bus_driver_handle_acquire_service),
13989         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13990         Update for API changes in libdbus.
13991
13992         * dbus/dbus-message.c: (dbus_message_new_reply):
13993         * dbus/dbus-message.h:
13994         Remove the name argument. The spec states that replies shouldn't
13995         have a name.
13996
13997 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13998
13999         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
14000         (report_error), (bus_desktop_file_load), (lookup_section),
14001         (lookup_line), (bus_desktop_file_get_raw),
14002         (bus_desktop_file_get_string):
14003         * bus/desktop-file.h:
14004         Some fixes, and new functions for getting a key value from a section.
14005
14006 2003-02-13  Havoc Pennington  <hp@pobox.com>
14007
14008         * test/data/auth/fail-after-n-attempts.auth-script: new test
14009
14010         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
14011         reject the client.
14012
14013 2003-02-13  Havoc Pennington  <hp@pobox.com>
14014
14015         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
14016         dbus_credentials_match were backward
14017
14018         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
14019         NO_CREDENTIALS and ROOT_CREDENTIALS
14020
14021         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
14022         into here. Never process more commands after we've reached an
14023         end state; store further data as unused bytes.
14024
14025         * test/data/auth/*: add more auth tests
14026
14027         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
14028         command to match exact string and EXPECT_UNUSED to match unused
14029         bytes
14030
14031         * test/Makefile.am (dist-hook): fix to dist all the test stuff
14032
14033 2003-02-12  Havoc Pennington  <hp@pobox.com>
14034
14035         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
14036         \r off of popped lines
14037
14038         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
14039         scripts
14040
14041         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
14042         SEND, append \r\n
14043
14044 2003-02-12  Havoc Pennington  <hp@pobox.com>
14045
14046         * dbus/Makefile.am: remove break-loader from the build, since it
14047         moved.
14048
14049         * configure.in: add --enable-gcov to turn on coverage profiling
14050         flags and disable optimization
14051
14052 2003-02-10  Havoc Pennington  <hp@pobox.com>
14053
14054         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
14055         initial cut at test framework for DBusAuth from laptop.
14056         Doesn't quite work yet but it compiles and I need to get
14057         it off the 266mhz laptop. ;-)
14058
14059         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
14060         fix a memleak in error case
14061
14062 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
14063
14064         * bus/Makefile.am:
14065         * bus/desktop-file.c:
14066         * bus/desktop-file.h:
14067         Add a desktop file parser.
14068
14069 2003-02-11  Zack Rusin  <zack@kde.org>
14070
14071         * qt/message.[h|cpp]: sample implementation
14072         of the KDE wrapper for DBusMessage
14073
14074 2003-02-09  Zack Rusin  <zack@kde.org>
14075
14076         * test/bus-test.c: make_it_compile
14077         * doc/dbus-specification.sgml: minimal semantic fix
14078
14079 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14080
14081         Release 0.3
14082
14083         * NEWS: Update
14084
14085 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14086
14087         * dbus/Makefile.am:
14088         * dbus/dbus-break-loader.c:
14089         * test/Makefile.am:
14090         * test/break-loader.c:
14091         Move dbus-break-loader to test/ and rename it to break-loader.
14092
14093 2003-02-02  Havoc Pennington  <hp@pobox.com>
14094
14095         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
14096         for code to manage cookies in your home directory
14097
14098         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
14099
14100         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
14101         to authenticate, then disconnect the client.
14102
14103 2003-02-03  Alexander Larsson  <alexl@redhat.com>
14104
14105         * dbus/dbus-message.c (dbus_message_append_fields):
14106         Correct docs.
14107
14108 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14109
14110         * doc/dbus-specification.sgml:
14111         Update address format section.
14112
14113 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14114
14115         * test/Makefile.am:
14116         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
14117         (message_handler), (new_connection_callback), (loop_quit),
14118         (loop_run), (main):
14119         Add bus test.
14120
14121 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14122
14123         * bus/driver.c: (bus_driver_handle_service_exists):
14124         Simplify the code a bit.
14125
14126         * dbus/dbus-bus.c: (dbus_bus_service_exists):
14127         Fix a silly.
14128
14129 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14130
14131         * bus/Makefile.am:
14132         Add libdbus-daemon.la and link to it.
14133
14134 2003-02-01  James Willcox  <jwillcox@gnome.org>
14135
14136         * bus/driver.c: (bus_driver_handle_own_service):
14137         Actually include the service reply code in the message.
14138
14139 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14140
14141         * bus/driver.c: (bus_driver_handle_service_exists):
14142         Don't unref the incoming message.
14143
14144 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14145
14146         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
14147
14148 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14149
14150         * dbus/dbus-server.c: (dbus_server_listen):
14151         * dbus/dbus-transport.c: (_dbus_transport_open):
14152         ifdef out the calls to the debug transport and server.
14153
14154 2003-02-02  Alexander Larsson  <alexl@redhat.com>
14155
14156         * dbus/dbus-watch.c (dbus_watch_get_flags):
14157         Add note in the docs that ERROR or HANGUP won't be returned
14158         and are assumed always on.
14159
14160         * glib/dbus-gmain.c (add_watch):
14161         Always add IO_ERR | IO_HUP
14162
14163         * dbus/dbus-message.h:
14164         Add semicolon after dbus_message_iter_get_string_array().
14165         Makes qt code build again
14166
14167 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
14168
14169         * bus/driver.c: (create_unique_client_name),
14170         (bus_driver_handle_hello):
14171         Don't take a name, just use a numeric id to identify
14172         each client.
14173
14174         * dbus/Makefile.am:
14175         * dbus/dbus-bus.c: (dbus_bus_register_client),
14176         (dbus_bus_acquire_service), (dbus_bus_service_exists):
14177         * dbus/dbus-bus.h:
14178         Add new convenience functions for communicating with the bus.
14179
14180         * dbus/dbus-message.h:
14181
14182         * dbus/dbus-protocol.h:
14183         Fix a typo.
14184
14185 2003-02-01  Alexander Larsson  <alexl@redhat.com>
14186
14187         * dbus/dbus-message.c (dbus_message_append_fields):
14188         Add some more doc comments.
14189
14190 2003-02-01  Havoc Pennington  <hp@pobox.com>
14191
14192         * dbus/dbus-break-loader.c (randomly_modify_length): change
14193         a 4-byte value in the message as if it were a length
14194
14195         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
14196         execute bit on saved files
14197
14198 2003-02-01  Havoc Pennington  <hp@pobox.com>
14199
14200         * dbus/dbus-break-loader.c (main): new program to find messages
14201         that break the loader.
14202
14203         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
14204         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
14205
14206         * dbus/dbus-string.c (_dbus_string_set_byte): new
14207
14208 2003-01-31  Havoc Pennington  <hp@pobox.com>
14209
14210         * dbus/dbus-message.c: refactor the test code to be more general,
14211         in preparation for writing a "randomly permute test cases to
14212         try to break the loader" program.
14213
14214 2003-01-31  Havoc Pennington  <hp@pobox.com>
14215
14216         * doc/dbus-specification.sgml: work on the specification
14217
14218         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
14219         the protocol version of the message.
14220
14221         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
14222         no longer specifies that.
14223         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
14224         1/2/3/4)
14225
14226         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
14227         "break" for DBUS_TYPE_NIL, remove @todo
14228
14229 2003-01-31  Havoc Pennington  <hp@pobox.com>
14230
14231         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
14232         just set_is_error/get_is_error as this is a commonly-used
14233         function, and write docs.
14234
14235 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
14236
14237         * dbus/dbus-address.c: (dbus_address_entry_free):
14238         Free key and value lists.
14239
14240         * dbus/dbus-internals.c: (_dbus_type_to_string):
14241         Add the types we didn't have.
14242
14243         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
14244         (_dbus_marshal_validate_arg):
14245         Add NIL types.
14246
14247         * dbus/dbus-message.c: (dbus_message_set_sender):
14248         Remove todo about being able to set sender to NULL.
14249
14250         (dbus_message_set_is_error_reply),
14251         (dbus_message_get_is_error_reply):
14252         * dbus/dbus-message.h:
14253         New functions.
14254
14255         * dbus/dbus-protocol.h:
14256         Add error reply flag.
14257
14258         * test/data/valid-messages/opposite-endian.message:
14259         Add NIL type to test.
14260
14261 2003-01-31  Havoc Pennington  <hp@pobox.com>
14262
14263         * doc/dbus-specification.sgml: fully specify the header.  Add
14264         flags and major protocol version, and change header/body len to
14265         unsigned.
14266
14267         * dbus/dbus-message-builder.c (append_saved_length): append length
14268         as uint32
14269
14270         * dbus/dbus-message.c (dbus_message_create_header): change header
14271         length and body length to unsigned. Add the new fields from the
14272         spec
14273         (_dbus_message_loader_return_buffer): unsigned header/body len
14274
14275 2003-01-30  Havoc Pennington  <hp@pobox.com>
14276
14277         * dbus/dbus-auth.c: rework to use only REJECTED, no
14278         MECHANISMS
14279
14280         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14281         use REJECTED, suggested by Mark McLoughlin
14282
14283 2003-01-30  Havoc Pennington  <hp@pobox.com>
14284
14285         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14286         a better way to report errors here. e.g.  "unix address lacks
14287         path" or something. also "no such file" when the path doesn't
14288         exist, etc.
14289
14290         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14291         leaking list nodes
14292         (dbus_parse_address): add @todo about documenting address format,
14293         and allowing , and ; to be escaped
14294
14295 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14296
14297         * dbus/Makefile.am:
14298         Add dbus-address.[ch]
14299
14300         * dbus/dbus-address.c: (dbus_address_entry_free),
14301         (dbus_address_entries_free), (create_entry),
14302         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14303         (dbus_parse_address), (_dbus_address_test):
14304         * dbus/dbus-address.h:
14305         New files for dealing with address parsing.
14306
14307         * dbus/dbus-connection.c:
14308         Document timeout functions.
14309
14310         * dbus/dbus-message.c:
14311         Document dbus_message_new_from_message.
14312
14313         * dbus/dbus-server-debug.c:
14314         Document.
14315
14316         * dbus/dbus-server.c: (dbus_server_listen):
14317         Parse address and use correct server implementation.
14318
14319         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14320         * dbus/dbus-string.h:
14321         New function with test.
14322
14323         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14324         * dbus/dbus-test.h:
14325         Add address tests.
14326
14327         * dbus/dbus-transport-debug.c:
14328         Document.
14329
14330         * dbus/dbus-transport.c: (_dbus_transport_open):
14331         Parse address and use correct transport implementation.
14332
14333 2003-01-30  Havoc Pennington  <hp@pobox.com>
14334
14335         * dbus/dbus-message.c: use message->byte_order instead of
14336         DBUS_COMPILER_BYTE_ORDER throughout.
14337         (dbus_message_create_header): pad header to align the
14338         start of the body of the message to 8-byte boundary
14339
14340         * dbus/dbus-marshal.h: make all the demarshalers take const
14341         DBusString arguments.
14342
14343         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14344         validate message args here, so we don't have to do slow validation
14345         later, and so we catch bad messages as they are incoming. Also add
14346         better checks on header_len and body_len. Also fill in
14347         message->byte_order
14348
14349         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14350         implemented properly)
14351         (_dbus_string_validate_nul): new function to check all-nul
14352
14353         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14354         get_arg_end_pos and remove all validation
14355         (_dbus_marshal_validate_arg): actually do validation here.
14356
14357 2003-01-29  Havoc Pennington  <hp@pobox.com>
14358
14359         * dbus/dbus-message.c (check_message_handling): fix assertion
14360         failure on set_client_serial
14361
14362 2003-01-28  Havoc Pennington  <hp@pobox.com>
14363
14364         * dbus/dbus-server-debug.c: Add doc section comments
14365
14366         * dbus/dbus-transport-debug.c: add doc section comments
14367
14368 2003-01-28  Havoc Pennington  <hp@redhat.com>
14369
14370         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14371         the reverse order from how I had it
14372         (_dbus_string_base64_encode): reverse encoding order. I was
14373         basically byteswapping everything during encoding.
14374
14375 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14376
14377         * dbus/dbus-connection-internal.h:
14378         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14379         (_dbus_connection_remove_timeout):
14380         Add functions for adding and removing timeouts.
14381
14382         * dbus/dbus-message.c: (dbus_message_new_from_message):
14383         Add new function that takes a message and creates an exact
14384         copy of it, but with the refcount set to 1.
14385         (check_message_handling):
14386         Fix build error.
14387
14388         * dbus/dbus-server-protected.h:
14389         * dbus/dbus-server.c: (_dbus_server_init_base),
14390         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14391         (dbus_server_set_timeout_functions):
14392         (_dbus_server_remove_timeout):
14393         New functions so that a server can add and remove timeouts.
14394
14395         (dbus_server_listen):
14396         Add commented out call to dbus_server_debug_new.
14397
14398         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14399         Actually set the handler, doh.
14400
14401         * dbus/dbus-transport.c: (_dbus_transport_open):
14402         Add commented out call to dbus_transport_debug_client_new.
14403
14404         * dbus/Makefile.am:
14405         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14406
14407 2003-01-28  Havoc Pennington  <hp@pobox.com>
14408
14409         * dbus/dbus-message.c (check_message_handling): function to check
14410         on the loaded message, iterates over it etc.
14411
14412 2003-01-28  Havoc Pennington  <hp@pobox.com>
14413
14414         * test/Makefile.am (dist-hook): fix make distdir
14415
14416         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14417
14418 2003-01-27  Havoc Pennington  <hp@pobox.com>
14419
14420         * dbus/dbus-mempool.c (time_for_size): replace printf with
14421         _dbus_verbose
14422
14423         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14424         empty lines; fix the SAVE_LENGTH stuff to be
14425         START_LENGTH/END_LENGTH so it actually works; couple other
14426         bugfixes
14427
14428         * test/Makefile.am (dist-hook): add dist-hook for .message files
14429
14430         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14431         can be constant or locked.
14432         (_dbus_string_free): allow freeing a const string as
14433         documented/intended
14434
14435         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14436
14437         * dbus/dbus-test-main.c (main): take an argument which is the
14438         directory containing test data
14439
14440         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14441         argument to this and load all the messages in test/data/
14442         checking that they can be loaded or not loaded as appropriate.
14443
14444 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14445
14446         * bus/dispatch.c: (bus_dispatch_message_handler):
14447         Dispatch messages sent to services.
14448
14449         * bus/driver.c: (bus_driver_send_service_deleted),
14450         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14451         (bus_driver_send_service_acquired):
14452         Add helper functions for sending service related messages.
14453
14454         (bus_driver_send_welcome_message):
14455         Send HELLO_REPLY instead of WELCOME.
14456
14457         (bus_driver_handle_list_services):
14458         Send LIST_SERVICES_REPLY instead of SERVICES.
14459
14460         (bus_driver_handle_own_service),
14461         (bus_driver_handle_service_exists):
14462         New message handlers.
14463
14464         (bus_driver_handle_message):
14465         Invoke new message handlers.
14466
14467         (bus_driver_remove_connection):
14468         Don't remove any services here since that's done automatically
14469         by bus_service_remove_owner now.
14470
14471         * bus/driver.h:
14472         New function signatures.
14473
14474         * bus/services.c: (bus_service_add_owner):
14475         Send ServiceAcquired message if we're the only primary owner.
14476
14477         (bus_service_remove_owner):
14478         Send ServiceAcquired/ServiceLost messages.
14479
14480         (bus_service_set_prohibit_replacement),
14481         (bus_service_get_prohibit_replacement):
14482         Functions for setting prohibit replacement.
14483
14484         (bus_service_has_owner):
14485         New function that checks if a connection is in the owner queue of
14486         a certain service.
14487
14488         * bus/services.h:
14489         Add new function signatures.
14490
14491         * dbus/dbus-list.c: (_dbus_list_test):
14492         Add tests for _dbus_list_remove_last and traversing the list backwards.
14493
14494         * dbus/dbus-list.h:
14495         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14496         go any further, so return NULL then.
14497
14498         * dbus/dbus-protocol.h:
14499         Add new messages, service flags and service replies.
14500
14501 2003-01-26  Havoc Pennington  <hp@pobox.com>
14502
14503         * dbus/dbus-message-builder.c: implement, completely untested.
14504
14505         * test/data/*: add data to be used in testing.
14506         ".message" files are our simple loadable text format.
14507         ".message-raw" will be binary dumps of messages.
14508
14509         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14510
14511 2003-01-26  Havoc Pennington  <hp@pobox.com>
14512
14513         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14514
14515         * dbus/dbus-errors.c (dbus_result_to_string): add
14516         file errors
14517
14518         * dbus/dbus-message-builder.c: new file, will contain code to load
14519         up messages from files. Not implemented yet.
14520
14521 2003-01-26  Havoc Pennington  <hp@pobox.com>
14522
14523         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14524         the sender by setting to NULL
14525
14526 2003-01-26  Havoc Pennington  <hp@pobox.com>
14527
14528         The unit tests pass, but otherwise untested.  If it breaks, the
14529         tests should have been better. ;-)
14530
14531         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14532         the connection.
14533
14534         * dbus/dbus-message.c: redo everything so we maintain
14535         message->header as the only copy of the various fields.
14536         This avoids the possibility of out-of-memory in some cases,
14537         for example dbus_message_lock() can't run out of memory anymore,
14538         and avoids extra copying. Figured I may as well go ahead and do
14539         this since it was busted for dbus_message_lock to not return
14540         failure on OOM, and dbus_message_write_header was totally
14541         unchecked for OOM. Also fixed some random other bugs.
14542
14543         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14544         that strings are nul-terminated. Also, end_pos can be equal
14545         to string length just not greater than, I think.
14546         (_dbus_marshal_set_int32): new function
14547         (_dbus_marshal_set_uint32): new function
14548         (_dbus_marshal_set_string): new function
14549
14550         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14551         a warning, init timeout_list to NULL
14552         (dbus_connection_send_message): don't use uninitialized variable
14553         "serial"
14554
14555         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14556
14557 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14558
14559         * bus/driver.c: (bus_driver_handle_hello),
14560         (bus_driver_send_welcome_message):
14561         Plug leaks
14562
14563 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14564
14565         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14566         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14567         (dbus_connection_unref):
14568         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14569         * dbus/dbus-message.c: (dbus_message_unref),
14570         Plug memory leaks.
14571
14572         (dbus_message_get_fields):
14573         Remove debugging printout.
14574
14575         (_dbus_message_loader_return_buffer):
14576         Don't store the header string.
14577
14578         (_dbus_message_test):
14579         Plug leaks.
14580
14581 2003-01-26  Richard Hult  <rhult@codefactory.se>
14582
14583         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14584         the file descriptor list, since it can change under us.
14585
14586 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14587
14588         * glib/dbus-gmain.c: (dbus_connection_prepare),
14589         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14590         (remove_watch), (dbus_connection_hookup_with_g_main):
14591         Rewrite the glib handling to use its own GSource instead of a
14592         GIOChannel so we can catch messages put in the queue while waiting
14593         for a reply.
14594
14595 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14596
14597         * bus/Makefile.am:
14598         * bus/connection.c: (connection_disconnect_handler),
14599         (connection_watch_callback), (bus_connection_setup):
14600         * bus/dispatch.c: (send_one_message),
14601         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14602         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14603         * bus/dispatch.h:
14604         * bus/driver.c: (bus_driver_send_service_deleted),
14605         (bus_driver_send_service_created), (bus_driver_handle_hello),
14606         (bus_driver_send_welcome_message),
14607         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14608         (bus_driver_handle_message):
14609         * bus/driver.h:
14610         Refactor code, put the message dispatching in its own file. Use
14611         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14612         is disconnected.
14613
14614 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14615
14616         * dbus/dbus-internals.h:
14617         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14618
14619         * dbus/dbus-message.c: (dbus_message_get_sender):
14620         * dbus/dbus-message.h:
14621         Implement dbus_message_get_sender.
14622
14623         * dbus/dbus-protocol.h:
14624         Add message and service defines.
14625
14626 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14627
14628         * dbus/dbus-connection.c: (dbus_connection_send_message):
14629         * dbus/dbus-message-internal.h:
14630         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14631         (dbus_message_write_header):
14632         Remove _dbus_messag_unlock and don't set the client serial on a
14633         message if one already exists.
14634
14635 2003-01-24  Havoc Pennington  <hp@pobox.com>
14636
14637         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14638         list_pool
14639
14640         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14641         on OOM
14642
14643 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14644
14645         * dbus/dbus-list.c: (alloc_link), (free_link):
14646         Use a memory pool for the links.
14647
14648 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14649
14650         * bus/connection.c: (bus_connection_foreach):
14651         * bus/connection.h:
14652         Add new bus_connection_foreach function.
14653
14654         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14655         Add function that broadcasts a message to all clients.
14656
14657         (bus_driver_send_service_created), (bus_driver_handle_hello),
14658         (bus_driver_send_welcome_message),
14659         (bus_driver_handle_list_services), (bus_driver_message_handler):
14660         Implement functions that take care of listing services, and notifying
14661         clients when new services are created.
14662
14663         * bus/services.c: (bus_services_list):
14664         * bus/services.h:
14665         Add new function that returns an array of strings with the currently
14666         registered services.
14667
14668         * glib/dbus-glib.h:
14669         * glib/dbus-gmain.c:
14670         Update copyright year.
14671
14672 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14673
14674         * dbus/dbus-connection.c: (dbus_connection_send_message):
14675         Unlock the message in case it was sent earlier.
14676
14677         (dbus_connection_send_message_with_reply_and_block):
14678         Remove the reply message from the list.
14679
14680         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14681         Set array_len and new_pos correctly.
14682
14683         (_dbus_marshal_test):
14684         Remove debug output.
14685
14686         * dbus/dbus-message-internal.h:
14687         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14688         New function that returns the reply serial.
14689
14690         (_dbus_message_unlock):
14691         New function that unlocks a message and resets its header.
14692
14693         (dbus_message_append_string_array),
14694         (dbus_message_get_fields_valist),
14695         (dbus_message_iter_get_field_type),
14696         (dbus_message_iter_get_string_array),
14697         (dbus_message_get_fields),
14698         (dbus_message_append_fields_valist):
14699         Handle string arrays.
14700
14701         (dbus_message_set_sender):
14702         Make this function public since the bus daemon needs it.
14703
14704         (decode_header_data):
14705         Set the reply serial to -1 initially.
14706
14707         * dbus/dbus-message.h:
14708         Add dbus_message_set_sender.
14709
14710 2003-01-24  Havoc Pennington  <hp@pobox.com>
14711
14712         * doc/dbus-specification.sgml: add some stuff
14713
14714 2003-01-22  Havoc Pennington  <hp@pobox.com>
14715
14716         * doc/dbus-specification.sgml: Start to document the protocol.
14717
14718 2003-01-22  Havoc Pennington  <hp@pobox.com>
14719
14720         * dbus/dbus-connection.c
14721         (dbus_connection_send_message_with_reply_and_block): add some @todo
14722
14723         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14724
14725 2003-01-21  Havoc Pennington  <hp@pobox.com>
14726
14727         (patch untested because can't compile)
14728
14729         * bus/driver.c (create_unique_client_name): make this function
14730         never recycle client names. Also, caller should initialize
14731         the DBusString.
14732
14733         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14734
14735 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14736
14737         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14738         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14739         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14740         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14741         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14742         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14743         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14744         * dbus/dbus-marshal.h:
14745         * dbus/dbus-protocol.h:
14746         Add support for marshalling and demarshalling integer, double
14747         and string arrays.
14748
14749 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14750
14751         * bus/Makefile.am:
14752         Add driver.[ch]
14753
14754         * bus/connection.c: (connection_disconnect_handler):
14755         Remove the connection from the bus driver's list.
14756
14757         (connection_watch_callback): Dispatch messages.
14758
14759         (free_connection_data): Free connection name.
14760
14761         (bus_connection_setup): Add connection to the bus driver's list.
14762         (bus_connection_remove_owned_service):
14763         (bus_connection_set_name), (bus_connection_get_name):
14764         Add functions for setting and getting the connection's name.
14765
14766         * bus/connection.h:
14767         Add function headers.
14768
14769         * bus/driver.c: (create_unique_client_name),
14770         (bus_driver_handle_hello_message),
14771         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14772         (bus_driver_add_connection), (bus_driver_remove_connection):
14773         * bus/driver.h:
14774         * bus/main.c:
14775         * bus/services.c: (bus_service_free):
14776         * bus/services.h:
14777         New file that handles communication and registreation with the bus
14778         itself.
14779
14780 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14781
14782         * dbus/dbus-connection.c: (dbus_connection_send_message):
14783         Add a new client_serial parameter.
14784
14785         (dbus_connection_send_message_with_reply):
14786         Remove a @todo since we've implemented the blocking function.
14787
14788         (dbus_connection_send_message_with_reply_and_block):
14789         New function that sends a message and waits for a reply and
14790         then returns the reply.
14791
14792         * dbus/dbus-connection.h:
14793         Add new functions.
14794
14795         * dbus/dbus-errors.c: (dbus_result_to_string):
14796         * dbus/dbus-errors.h:
14797         Add new DBUS_RESULT.
14798
14799         * dbus/dbus-message-internal.h:
14800         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14801         (_dbus_message_set_sender), (dbus_message_write_header),
14802         (dbus_message_new_reply), (decode_header_data),
14803         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14804         * dbus/dbus-message.h:
14805         Add new functions that set the reply serial and sender.
14806         Also marshal and demarshal them correctly and add test.
14807
14808         * dbus/dbus-protocol.h:
14809         Add new DBUS_MESSAGE_TYPE_SENDER.
14810
14811         * glib/dbus-glib.h:
14812         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14813         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14814         (dbus_connection_hookup_with_g_main):
14815         * glib/test-dbus-glib.c: (main):
14816         Rewrite to use GIOChannel and remove the GSource crack.
14817
14818         * test/echo-client.c: (main):
14819         * test/watch.c: (check_messages):
14820         Update for changed APIs
14821
14822 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14823
14824         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14825
14826         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14827         Create a DBusTimeoutList.
14828         (dbus_connection_set_timeout_functions): Add new function to
14829         set timeout callbacks
14830
14831         * dbus/dbus-connection.h: Add public DBusTimeout API.
14832
14833         * dbus/dbus-message.c: (dbus_message_get_service):
14834         * dbus/dbus-message.h:  New function.
14835
14836         * dbus/dbus-server.c: Fix small doc typo.
14837
14838         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14839
14840 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14841
14842         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14843         of the string, just as long as specified.
14844
14845 2003-01-19  Havoc Pennington  <hp@pobox.com>
14846
14847         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14848         new function
14849
14850         * dbus/dbus-server.c (dbus_server_set_max_connections)
14851         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14852         keep track of current number of connections, and add API for
14853         setting a max (but haven't implemented enforcing the max yet)
14854
14855 2003-01-18  Havoc Pennington  <hp@pobox.com>
14856
14857         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14858         reading/writing if read_watch != NULL or write_watch != NULL.
14859
14860         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14861         the message loader code to actually load message->header and
14862         message->body into the newly-created message.
14863
14864         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14865         in OOM case
14866
14867         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14868         (dbus_connection_get_max_message_size)
14869         (dbus_connection_set_max_live_messages_size)
14870         (dbus_connection_get_max_live_messages_size): implement some
14871         resource limitation functions
14872
14873         * dbus/dbus-resources.c: new file implementing some of the
14874         resource limits stuff
14875
14876         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14877         missing docs, add @todo to handle OOM etc.
14878
14879         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14880         docs
14881
14882 2003-01-18  Havoc Pennington  <hp@pobox.com>
14883
14884         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14885         connection if it hasn't been already.
14886
14887         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14888         replace with DisconnectFunction.
14889
14890 2003-01-18  Havoc Pennington  <hp@pobox.com>
14891
14892         Building --disable-verbose-mode --disable-asserts --disable-tests
14893         cuts the library from 112K to 45K or so
14894
14895         * configure.in: check for varargs macro support,
14896         add --enable-verbose-mode, --enable-asserts.
14897
14898         * dbus/dbus-internals.h (_dbus_assert): support
14899         DBUS_DISABLE_ASSERT
14900         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14901
14902 2003-01-18  Havoc Pennington  <hp@pobox.com>
14903
14904         * dbus/dbus-test.c: include config.h so that tests actually run
14905
14906         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14907         so the failure mode when that assumption fails will be plenty
14908         obvious.
14909
14910 2003-01-18  Havoc Pennington  <hp@pobox.com>
14911
14912         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14913
14914         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14915         the distribution
14916
14917         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14918         since we don't want to use those in make check
14919
14920 2003-01-15  Havoc Pennington  <hp@redhat.com>
14921
14922         Release 0.2
14923
14924         * NEWS: update
14925
14926 2003-01-15  Havoc Pennington  <hp@redhat.com>
14927
14928         * test/Makefile.am: fix so that test source code ends up in the
14929         distribution on make distcheck
14930
14931 2003-01-15  Havoc Pennington  <hp@redhat.com>
14932
14933         Release 0.1.
14934
14935         * NEWS: update
14936
14937 2003-01-15  Havoc Pennington  <hp@redhat.com>
14938
14939         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14940         fix build when --disable-tests
14941
14942         * Makefile.am (EXTRA_DIST): put HACKING in here
14943
14944         * HACKING: document procedure for making a tarball release.
14945
14946 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14947
14948         * bus/connection.c: (connection_error_handler),
14949         (bus_connection_setup):
14950         * bus/main.c: (main):
14951         Make sure that the DBusConnectionData struct is NULLed
14952         out to prevent a segfault.
14953
14954         * dbus/dbus-errors.c: (dbus_result_to_string):
14955         * dbus/dbus-errors.h:
14956         * dbus/dbus-message.c: (dbus_message_get_fields),
14957         (dbus_message_get_fields_valist), (_dbus_message_test):
14958         * dbus/dbus-message.h:
14959         Make dbus_message_get_fields return a result code so we can
14960         track invalid fields as well as oom.
14961
14962 2003-01-11  Havoc Pennington  <hp@pobox.com>
14963
14964         * configure.in: change --enable-test/--enable-ansi action-if-given
14965         to enable_foo=$enableval instead of enable_foo=yes
14966
14967 2003-01-08  Havoc Pennington  <hp@pobox.com>
14968
14969         * dbus/dbus-string.c (_dbus_string_align_length): new function
14970
14971         * dbus/dbus-test-main.c: move main() for test app here
14972         * dbus/dbus-test.c
14973         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14974         symbol to run tests, because dbus-test isn't in the main
14975         library
14976
14977         Code review nitpicks.
14978
14979         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14980         for people with narrow emacs ;-). Assert client_serial was filled
14981         in. Assert message->name != NULL.
14982         (dbus_message_append_fields): have "first_field_type" arg separate
14983         from va list, needed for C++ binding that also uses varargs IIRC
14984         and helps with type safety
14985         (dbus_message_new): add @todo about using DBusString to store
14986         service/name internally
14987         (dbus_message_new): don't leak ->service and ->name on OOM later
14988         in the function
14989         (dbus_message_unref): free the service name
14990         (dbus_message_get_fields): same change to varargs
14991         i.e. first_field_type
14992         (_dbus_message_loader_return_buffer): assert that the message data
14993         is aligned (if not it's a bug in our code). Put in verbose griping
14994         about why we set corrupted = TRUE.
14995         (decode_header_data): add FIXME that char* is evil.  Was going to
14996         add FIXME about evil locale-specific string.h strncmp, but just
14997         switched to wacky string-as-uint32 optimization. Move check for
14998         "no room for field name" above get_const_data_len() to avoid
14999         assertion failure in get_const_data_len if we have trailing 2
15000         bytes or the like. Check for service and name fields being
15001         provided twice. Don't leak service/name on error. Require field
15002         names to be aligned to 4 bytes.
15003
15004         * dbus/dbus-marshal.c: move byte swap stuff to header
15005         (_dbus_pack_int32): uscore-prefix
15006         (_dbus_unpack_int32): uscore-prefix
15007         (_dbus_unpack_uint32): export
15008         (_dbus_demarshal_string): add @todo complaining about use of
15009         memcpy()
15010         (_dbus_marshal_get_field_end_pos): add @todo about bad error
15011         handling allowing corrupt data to go unchecked
15012
15013 2003-01-08  Havoc Pennington  <hp@redhat.com>
15014
15015         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
15016         to the select() as needed for authentication. (should be using
15017         _dbus_poll() not select, but for another day)
15018
15019         * dbus/dbus.h: include dbus/dbus-protocol.h
15020
15021 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
15022
15023         * dbus/Makefile.am (dbusinclude_HEADERS): Install
15024         dbus-connection.h
15025
15026 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
15027
15028         * dbus/dbus-internals.c: (_dbus_type_to_string):
15029         New function that returns a string describing a type.
15030
15031         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
15032         * dbus/dbus-marshal.h:
15033         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
15034         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
15035         (dbus_message_iter_get_byte_array):
15036         * dbus/dbus-message.h:
15037         Add new convenience functions for appending and getting message fields.
15038         Also add demarshalling routines for byte arrays.
15039
15040 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15041
15042         * dbus/dbus-connection-internal.h:
15043         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
15044         (_dbus_connection_get_next_client_serial),
15045         (dbus_connection_send_message):
15046         * dbus/dbus-internals.h:
15047         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
15048         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
15049         (_dbus_marshal_uint32), (_dbus_demarshal_double),
15050         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
15051         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
15052         (_dbus_verbose_bytes), (_dbus_marshal_test):
15053         * dbus/dbus-marshal.h:
15054         * dbus/dbus-message-internal.h:
15055         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
15056         (dbus_message_write_header), (_dbus_message_lock),
15057         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
15058         (dbus_message_get_name), (dbus_message_append_int32),
15059         (dbus_message_append_uint32), (dbus_message_append_double),
15060         (dbus_message_append_string), (dbus_message_append_byte_array),
15061         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
15062         (dbus_message_iter_unref), (dbus_message_iter_has_next),
15063         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
15064         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
15065         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
15066         (decode_header_data), (_dbus_message_loader_return_buffer),
15067         (message_iter_test), (_dbus_message_test):
15068         * dbus/dbus-message.h:
15069         * dbus/dbus-protocol.h:
15070         * dbus/dbus-test.c: (main):
15071         * dbus/dbus-test.h:
15072         * glib/test-dbus-glib.c: (message_handler), (main):
15073         * test/echo-client.c: (main):
15074         * test/watch.c: (check_messages):
15075         Make messages sendable and receivable for real.
15076
15077 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15078
15079         * dbus/dbus-marshal.c: (_dbus_marshal_double),
15080         (_dbus_marshal_string), (_dbus_marshal_byte_array):
15081         * dbus/dbus-message.c: (dbus_message_append_int32),
15082         (dbus_message_append_uint32), (dbus_message_append_double),
15083         (dbus_message_append_string), (dbus_message_append_byte_array):
15084         Handle OOM restoration.
15085
15086 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15087
15088         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15089         (_dbus_demarshal_string), (_dbus_marshal_test):
15090         * dbus/dbus-marshal.h:
15091         * dbus/dbus-message.c: (dbus_message_get_name),
15092         Document these functions.
15093
15094         (dbus_message_append_int32), (dbus_message_append_uint32),
15095         (dbus_message_append_double), (dbus_message_append_string),
15096         (dbus_message_append_byte_array):
15097         * dbus/dbus-message.h:
15098         Add functions for adding message fields of different types.
15099
15100         * dbus/dbus-protocol.h:
15101         Add the different types.
15102
15103 2003-01-05  Havoc Pennington  <hp@pobox.com>
15104
15105         * bus/connection.c: implement routines for handling connections,
15106         first thing is keeping a list of owned services on each connection
15107         and setting up watches etc.
15108
15109         * bus/services.c: implement a mapping from service names to lists
15110         of connections
15111
15112         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
15113
15114         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
15115         to use static mutexes for global data
15116
15117         * dbus/dbus-connection.c (dbus_connection_set_data): add new
15118         collection of functions to set/get application-specific data
15119         on the DBusConnection.
15120
15121 2003-01-04  Havoc Pennington  <hp@pobox.com>
15122
15123         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
15124         (_dbus_poll): new function
15125
15126         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
15127         copied from GLib
15128
15129         * bus/loop.c: initial code for the daemon main loop
15130
15131 2003-01-04  Havoc Pennington  <hp@pobox.com>
15132
15133         * test/watch.c (error_handler): make it safe if the error handler
15134         is called multiple times (if we s/error handler/disconnect
15135         handler/ we should just guarantee it's called only once)
15136
15137         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
15138         error handler on disconnect (it's quite possible we should
15139         just change the error handler to a "disconnect handler," I'm
15140         not sure we have any other meaningful errors)
15141
15142         * configure.in: check for getpwnam_r
15143
15144         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
15145         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
15146         mechanism as in SASL spec, using socket credentials
15147
15148         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
15149         (_dbus_send_credentials_unix_socket): new function
15150
15151         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
15152         dbus_accept()
15153         (_dbus_write): only check errno if <0 returned
15154         (_dbus_write_two): ditto
15155
15156 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
15157
15158         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
15159         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
15160         (_dbus_marshal_test):
15161         * dbus/dbus-marshal.h:
15162         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
15163         to _dbus_marshal_utf8_string. Also fix some tests.
15164
15165 2002-12-28  Harri Porten  <porten@kde.org>
15166
15167         * configure.in: added check for C++ compiler and a very cheesy
15168         check for the Qt integration
15169
15170         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
15171
15172         * qt/Makefile.am: added
15173
15174         * qt/.cvsignore: added
15175
15176         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
15177         latter, added #ifdef QT_THREAD_SUPPORT guard.
15178
15179         * dbus/Makefile.am: added missing headers for make dist
15180
15181 2002-12-28  Kristian Rietveld  <kris@gtk.org>
15182
15183         * dbus/Makefile.am: fixup export-symbols-regex.
15184
15185 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15186
15187         * acinclude.m4: Add this file and put the
15188         PKG_CHECK_MODULE macro in it.
15189
15190 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15191
15192         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15193         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15194         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15195         (_dbus_marshal_test):
15196         Make the demarshalling routines align the pos argument.
15197         Add string marshalling tests and fix the obvious bugs
15198         discovered.
15199
15200 2002-12-26  Havoc Pennington  <hp@pobox.com>
15201
15202         * dbus/dbus-auth.c: fixes fixes fixes
15203
15204         * dbus/dbus-transport-unix.c: wire up support for
15205         encoding/decoding data on the wire
15206
15207         * dbus/dbus-auth.c (_dbus_auth_encode_data)
15208         (_dbus_auth_decode_data): append to target string
15209         instead of nuking it.
15210
15211 2002-12-26  Havoc Pennington  <hp@pobox.com>
15212
15213         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
15214         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
15215         doh
15216
15217         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
15218         avoid swap_bytes() overhead (ignoring possible assembly stuff for
15219         now). Main point is because I wanted unpack_uint32 to implement
15220         _dbus_verbose_bytes
15221         (_dbus_verbose_bytes): new function
15222
15223         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
15224
15225         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
15226         mechanism to handle a corrupt message stream
15227         (_dbus_message_loader_new): fix preallocation to only prealloc,
15228         not prelengthen
15229
15230         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
15231         (_dbus_string_test): enhance tests for copy/move and fix the
15232         functions
15233
15234         * dbus/dbus-transport-unix.c: Hold references in more places to
15235         avoid reentrancy problems
15236
15237         * dbus/dbus-transport.c: ditto
15238
15239         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
15240         leak reference count in no-message case
15241
15242         * test/watch.c (do_mainloop): handle adding/removing watches
15243         during iteration over the watches. Also, ref the connection/server
15244         stored on a watch, so we don't try to mangle a destroyed one.
15245
15246         * dbus/dbus-transport-unix.c (do_authentication): perform
15247         authentication
15248
15249         * dbus/dbus-auth.c (get_state): add a state
15250         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
15251         (_dbus_auth_get_unused_bytes): append the unused bytes
15252         to the passed in string, rather than prepend
15253
15254         * dbus/dbus-transport.c (_dbus_transport_init_base): create
15255         the auth conversation DBusAuth
15256
15257         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
15258         (_dbus_transport_new_for_domain_socket): when creating a
15259         transport, pass in whether it's a client-side or server-side
15260         transport so we know which DBusAuth to create
15261
15262 2002-12-03  Havoc Pennington  <hp@pobox.com>
15263
15264         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15265         _after_ finalizing the derived members
15266         (unix_connection_set): unref watch if we fail to add it
15267
15268         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15269         transport first, so that the connection owned by the
15270         transport will be valid as the transport finalizes.
15271
15272         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15273         if necessary, and remove watches from the connection.
15274
15275         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15276
15277 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15278
15279         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15280         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15281         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15282         (_dbus_marshal_test):
15283         * dbus/dbus-marshal.h:
15284         Add string marshal functions and have the demarshal functions
15285         return the new position.
15286
15287 2002-12-25  Havoc Pennington  <hp@pobox.com>
15288
15289         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15290         it is a simple protocol that just maps directly to SASL.
15291
15292         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15293         initial implementation, not actually used yet.
15294
15295         * dbus/dbus-string.c (_dbus_string_find): new function
15296         (_dbus_string_equal): new function
15297         (_dbus_string_base64_encode): new function
15298         (_dbus_string_base64_decode): new function
15299
15300 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15301
15302         * dbus/Makefile.am:
15303         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15304         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15305         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15306         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15307         * dbus/dbus-marshal.h:
15308         * dbus/dbus-protocol.h:
15309         * dbus/dbus-test.c: (main):
15310         * dbus/dbus-test.h:
15311         Add un-optimized marshalling/demarshalling routines.
15312
15313 2002-12-25  Harri Porten  <porten@kde.org>
15314
15315         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15316
15317 2002-12-24  Zack Rusin  <zack@kde.org>
15318
15319         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15320         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15321         main loop stuff
15322
15323 2002-12-24  Havoc Pennington  <hp@pobox.com>
15324
15325         * glib/dbus-gthread.c: fix include
15326
15327         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15328         I think glib API needs to change, though, as you don't
15329         want to use DBusMessageFunction, you want to use the
15330         DBusMessageHandler object. Probably
15331         dbus_connection_open_with_g_main_loop()
15332         and dbus_connection_setup_g_main_loop() or something like that
15333         (but think of better names...) that just create a connection
15334         that has watch/timeout functions etc. already set up.
15335
15336         * dbus/dbus-connection.c
15337         (dbus_connection_send_message_with_reply): new function just to
15338         show how the message handler helps us deal with replies.
15339
15340         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15341
15342         * dbus/dbus-string.c (_dbus_string_test): free a string that
15343         wasn't
15344
15345         * dbus/dbus-hash.c: use memory pools for the hash entries
15346         (rebuild_table): be more paranoid about overflow, and
15347         shrink table when we can
15348         (_dbus_hash_test): reduce number of sprintfs and write
15349         valid C89. Add tests for case where we grow and then
15350         shrink the hash table.
15351
15352         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15353
15354         * dbus/dbus-connection.c (dbus_connection_register_handler)
15355         (dbus_connection_unregister_handler): new functions
15356
15357         * dbus/dbus-message.c (dbus_message_get_name): new
15358
15359         * dbus/dbus-list.c: fix docs typo
15360
15361         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15362         an object representing a handler for messages.
15363
15364 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15365
15366         * glib/dbus-glib.h:
15367         * glib/dbus-gthread.c: (dbus_gthread_init):
15368         Don't use the gdbus prefix for public functions.
15369
15370 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15371
15372         * Makefile.am:
15373         * configure.in:
15374         Add GLib checks and fixup .pc files
15375
15376         * glib/Makefile.am:
15377         * glib/dbus-glib.h:
15378         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15379         (gdbus_connection_check), (gdbus_connection_dispatch),
15380         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15381         (dbus_connection_gsource_new):
15382         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15383         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15384         * glib/test-dbus-glib.c: (message_handler), (main):
15385         Add GLib support.
15386
15387 2002-12-15  Harri Porten  <porten@kde.org>
15388
15389         * autogen.sh: check for libtoolize before attempting to use it
15390
15391         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15392         struct.
15393
15394         * .cvsignore: ignore more stamp files
15395
15396         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15397
15398         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15399         without make install.
15400
15401 2002-12-15  Havoc Pennington  <hp@pobox.com>
15402
15403         * dbus/dbus-threads.c: add thread stubs that a higher library
15404         layer can fill in. e.g. the GLib wrapper might fill them in with
15405         GThread stuff. We still need to use this thread API to
15406         thread-safe-ize the library.
15407
15408 2002-12-12  Havoc Pennington  <hp@pobox.com>
15409
15410         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15411         below new interfaces and include fewer system headers.
15412
15413         * dbus/dbus-sysdeps.c (_dbus_read): new function
15414         (_dbus_write): new function
15415         (_dbus_write_two): new function
15416         (_dbus_connect_unix_socket): new function
15417         (_dbus_listen_unix_socket): new function
15418
15419         * dbus/dbus-message-internal.h: change interfaces to use
15420         DBusString
15421
15422 2002-12-11  Havoc Pennington  <hp@pobox.com>
15423
15424         * dbus/dbus-types.h: add dbus_unichar
15425
15426         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15427
15428         * dbus/dbus-connection.c (dbus_connection_send_message): return
15429         TRUE on success
15430
15431         * dbus/dbus-transport.c: include dbus-watch.h
15432
15433         * dbus/dbus-connection.c: include dbus-message-internal.h
15434
15435         * HACKING: add file with coding guidelines stuff.
15436
15437         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15438         handling here, for security purposes (as in vsftpd). Not actually
15439         using this class yet.
15440
15441         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15442         system/libc usage here, as in vsftpd, for ease of auditing (and
15443         should also simplify portability). Haven't actually moved all the
15444         system/libc usage into here yet.
15445
15446 2002-11-25  Havoc Pennington  <hp@pobox.com>
15447
15448         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15449         always print the first verbose message.
15450
15451 2002-11-24  Havoc Pennington  <hp@pobox.com>
15452
15453         * test/echo-client.c, test/echo-server.c: cheesy test
15454         clients.
15455
15456         * configure.in (AC_CHECK_FUNCS): check for writev
15457
15458         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15459         function
15460
15461         * dbus/dbus-list.c (_dbus_list_foreach): new function
15462
15463         * dbus/dbus-internals.c (_dbus_verbose): new function
15464
15465         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15466         representing a server that listens for connections.
15467
15468         * dbus/.cvsignore: create
15469
15470         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15471         public API for reporting errors
15472
15473         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15474         public object representing a connection that
15475         sends/receives messages. (Same object used for
15476         both client and server.)
15477
15478         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15479         Basic abstraction for different kinds of stream
15480         that we might read/write messages from.
15481
15482 2002-11-23  Havoc Pennington  <hp@pobox.com>
15483
15484         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15485         _DBUS_INT_MAX
15486
15487         * dbus/dbus-test.c (main): add list test, and include
15488         dbus-test.h as intended
15489
15490         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15491         (_dbus_hash_table_remove_int): return value indicates
15492         whether the entry existed to remove
15493
15494         * dbus/dbus-list.c: add linked list utility class,
15495         with docs and tests
15496
15497         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15498         array sometimes.
15499
15500 2002-11-23  Havoc Pennington  <hp@pobox.com>
15501
15502         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15503         DBUS_END_DECLS to nothing, that should fix this once and for all
15504
15505         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15506
15507         * dbus/dbus-message.c, dbus/dbus-hash.c:
15508         add some missing @brief
15509
15510 2002-11-23  Havoc Pennington  <hp@pobox.com>
15511
15512         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15513         to avoid confusing Doxygen
15514
15515         * dbus/dbus-hash.c: @} not }@
15516
15517         * dbus/dbus-message.c (struct DBusMessage): split out
15518         internals docs
15519
15520 2002-11-23  Havoc Pennington  <hp@pobox.com>
15521
15522         * configure.in: pile on more warning flags if using gcc
15523
15524         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15525         to document static functions
15526
15527         * configure.in: add summary to end of configure so it
15528         looks nice and attractive
15529
15530         * dbus/dbus-hash.c: finish implementation and write unit
15531         tests and docs
15532
15533         * configure.in: add --enable-tests to enable unit tests
15534
15535         * dbus/dbus-test.c: test program to run unit tests
15536         for all files in dbus/*, initially runs a test for
15537         dbus-hash.c
15538
15539         * dbus/dbus-internals.h: file to hold some internal utility stuff
15540
15541 2002-11-22  Havoc Pennington  <hp@redhat.com>
15542
15543         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15544         "ported" away from Tcl
15545
15546         * dbus/dbus-types.h: header for types such as dbus_bool_t
15547
15548 2002-11-22  Havoc Pennington  <hp@redhat.com>
15549
15550         * dbus/dbus.h: fixups for doc warnings
15551
15552         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15553         macros
15554         (QUIET): make it quiet so we can see warnings
15555
15556         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15557
15558 2002-11-22  Havoc Pennington  <hp@redhat.com>
15559
15560         * Makefile.am: include "Doxyfile" target in all-local
15561
15562         * configure.in: generate the Doxyfile
15563
15564         * Doxyfile.in: move Doxyfile here, so we can use
15565         configure to generate a Doxyfile with the right
15566         version number etc.
15567
15568 2002-11-22  Havoc Pennington  <hp@redhat.com>
15569
15570         * dbus/dbus-message.c: move inline docs into .c file
15571
15572         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15573         so all docs are under doc/
15574         (MAN_EXTENSION): generate man pages. Use extension
15575         ".3dbus" which matches ".3qt" on my system,
15576         I guess this is OK, I don't know really.
15577         (FILE_PATTERNS): look for .c files not .h, makes sense
15578         for plain C I think
15579
15580 2002-11-22  Havoc Pennington  <hp@pobox.com>
15581
15582         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15583         because any app can be a server, and any app can be a client,
15584         the bus is a special kind of server.
15585
15586 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15587
15588         * Doxyfile : adding. Still needs Makefile rules to be generated
15589         automatically (just run "doxygen" in the toplevel dir for now to
15590         generate docs)
15591
15592         * dbus/dbus-message.h : Adding sample docs (javadoc since
15593         resembles gtk-doc a little more)
15594
15595         * dbus/dbus.h : Adding sample docs
15596
15597 2002-11-21  Havoc Pennington  <hp@redhat.com>
15598
15599         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15600         so we can allow ourselves to include files directly,
15601         instead of having to use dbus.h
15602
15603         * dbus/dbus.h: fill in
15604
15605         * dbus/dbus-message.h: sketch out a sample header file.
15606         Include griping if you include it directly instead of
15607         via dbus.h
15608
15609         * dbus/dbus-macros.h: new file with macros for extern "C",
15610         TRUE/FALSE, NULL, etc.
15611
15612         * doc/file-boilerplate.c: put include guards in here
15613
15614 2002-11-21  Havoc Pennington  <hp@redhat.com>
15615
15616         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15617
15618         * COPYING: include the GPL as well, and license code
15619         under both AFL and GPL.
15620
15621 2002-11-21  Havoc Pennington  <hp@redhat.com>
15622
15623         * acconfig.h: get rid of this
15624
15625         * autogen.sh (run_configure): add --no-configure option
15626
15627         * configure.in: remove AC_ARG_PROGRAM to make
15628         autoconf complain less. add AC_PREREQ.
15629         add AC_DEFINE third arg.
15630
15631 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15632
15633         * doc/Makefile.am:
15634         Fix references so we can distcheck.
15635
15636 2002-11-21  Havoc Pennington  <hp@redhat.com>
15637
15638         * Initial module creation
15639