dbus/dbus-message-util.c, dbus/dbus-message.c, dbus/dbus-message.h:
[platform/upstream/dbus.git] / ChangeLog
1 2007-04-06 Simon McVittie <simon.mcvittie@collabora.co.uk>
2
3         * dbus/dbus-message-util.c, dbus/dbus-message.c,
4         dbus/dbus-message.h: Add API to convert a DBusMessage to/from a
5         byte array. Patch from Dafydd Harries <dafydd.harries@collabora.co.uk>,
6         approved by Havoc Pennington.
7
8 2007-04-03  Timo Hoenig  <thoenig@suse.de>
9
10         * dbus/dbus-address.c (dbus_parse_address): Do not accept zero-
11           length address.
12         * dbus/dbus-address.c (_dbus_address_test): Add test for zero-
13           length address.
14
15 2007-03-25 Ralf.Habacker  <ralf.habacker@freenet.de>
16
17         * cmake/dbus/CMakeLists.txt: debug postfix also for mingw.
18
19 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
20
21         * cmake/modules/FindExpat.cmake: fix package detection on win32.
22
23         * README.win: update install instructions. 
24
25 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
26
27         * dbus/dbus-sysdeps.h (_dbus_split_paths_and_append):
28         new prototyp
29         (_DBUS_PATH_SEPARATOR): new macro. 
30
31         * dbus/dbus-sysdeps.c (_dbus_split_paths_and_append): merged 
32         from dbus/dbus-sysdeps-unix.c and dbus/dbus-sysdeps-win.c. 
33
34 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
35
36         * bus/config-parser.c, bus/policy.c,  
37         bus/policy.h, bus/dbus-daemon.1.in,
38         bus/session.conf.in: added eavesdrop support 
39         for replies - patch by olli.salli at collabora.co.uk
40         approved by Havoc Pennington. 
41
42 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
43
44         * dbus\dbus-sysdeps-win-thread.c: renamed to 
45         dbus-sysdeps-thread-win.c, it is a platform depending file 
46         similar to dbus-sysdeps-pthread.c.
47
48 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
49
50         * cmake\doc\CMakeLists.txt: added prelimary xml doc 
51         support, needs cmake Find script.
52
53 2007-03-14 Ralf.Habacker  <ralf.habacker@freenet.de>
54
55         * cmake: add doxygen support
56
57 2007-03-14  Ralf.Habacker  <ralf.habacker@freenet.de>
58
59         * cmake/config.h.cmake: WINCE fixes, defined DBUS_UNIX.
60
61 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
62
63         * dbus/dbus-sysdeps-util-win.c (dbus_become_daemon): 
64         win32 compile fix. 
65
66 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
67
68         * dbus-win.patch: removed obsolate patches. 
69
70 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
71
72         * dbus/dbus-sysdeps-win.c: added zero byte sending 
73         and receiving after connection start up
74
75 2007-03-11  Havoc Pennington  <hp@redhat.com>
76
77         * tools/dbus-launch.c (do_close_stderr): fix C89 problem and
78         formatting problem
79
80         * Mostly fix the DBusPipe mess.
81         - put line break after function return types
82         - put space before parens
83         - do not pass structs around by value
84         - don't use dbus_strerror after calling supposedly cross-platform
85         api
86         - don't name pipe variables "fd"
87         - abstract special fd numbers like -1 and 1
88
89 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
90
91         * dbus/dbus-sysdeps-win.h, dbus/dbus-sysdeps-win.c, 
92         dbus/dbus-sysdeps-util-win.c: renamed functions 
93         _dbus_xxx_file() to _dbus_file_xxx() to reflect 
94         struct name DBusFile. 
95
96 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
97
98         * dbus/dbus-sysdeps-util-unix.c (_dbus_become_daemon):
99         fix _dbus_pid_fd check. 
100
101 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
102
103         * tools/dbus-print-message.c (print_message):
104         added printing of the reply serial to method returns and 
105         errors, so you can actually figure out the message/reply 
106         pairs - patch by olli.salli at collabora.co.uk.
107
108 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
109
110         * dbus-win.patch: removed committed patches. 
111
112 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
113
114         * bus/bus.c, bus/bus.h, bus/main.c, bus/test.c,
115         dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-util-unix.c,
116         dbus/dbus-sysdeps-util-win.c, dbus/dbus-sysdeps-win.c,
117         dbus/dbus-sysdeps.h: renamed _dbus_xxx_pipe to _dbus_pipe_xxx,
118         completed _dbus_pipe support. 
119
120 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
121
122         * dbus/dbus-sysdeps.h (_dbus_listen_tcp_socket):
123         changed type or port to pointer, because the port is given back.
124
125         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
126         implemented returning tcp port. Skipping port parameter
127         and non integer port values in config <listen> statement
128         needs more effort.
129
130         * dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-win.c
131         (_dbus_listen_tcp_socket): return the real used tcp port.
132
133         * bus/dbus-daemon.1.in: added <listen> tcp examples
134
135 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
136
137         * cmake/config.h.cmake: win32 msvc bug fix
138
139 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
140
141         * cmake/config.h.cmake: fixed DBUS_WINxx defines,
142         using _WINCE does not work.
143
144 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
145
146         * dbus-win.patch: removed _dbus_write_pipe() patch, it is now 
147         committed.
148
149 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
150
151         * bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h:
152         rename pipe related write() function calls to _dbus_write_pipe().
153
154 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
155
156         * dbus-win.patch: added bus/config-loader-libexpat.c patch, 
157         uses DBUS_WIN for alls win32 related #ifdefs, 
158         some minor cleanups
159
160 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
161
162         * dbus-win.patch: updated patch for bus/dispatch.c.
163
164 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
165
166         * dbus-win.patch: dbus-connection.c (dbus_connection_get_unix_user,
167         dbus_connection_get_unix_process_id): Let return them valid user id's, 
168         otherwise bus-test fails. How to replace on win32 ?.
169         
170         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir):
171         fix memory leak.
172
173 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
174
175         * dbus/dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error):
176         use dbus friendly error name.
177         (fill_win_user_info_homedir): print user name in error case too.
178
179 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
180
181         * cmake/ConfigureChecks.cmake: fixed socketpair check
182
183 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
184
185         * bus/dispatch.c: disabled segfault test on win32 for now
186
187 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
188
189         * configure.in, cmake/ConfigureChecks.cmake: added check 
190         for setrlimit. 
191         * test/test-segfault.c: only include setrlimit stuff only 
192         when available.  
193
194 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
195
196         * test/test-segfault.c: unix compile fix.
197         * dbus-win.patch: removed obsolate patches.
198
199 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
200
201         * bus/activation.c: removed obsolate include header.
202         * test/test-segfault.c: win32 compile fix, rlimit 
203         isn't available on win32.
204         * dbus-win.patch: removed some more patches, they
205         are applied or obsolate 
206
207 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
208
209         * bus-win.patch: fixes unix listen problems, dbus-test 
210         now runs.
211
212 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
213
214         * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
215         cmake/CMakeLists.txt: win32 compile fix
216
217 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
218
219         * dbus-win.patch, README.win: added available win32 
220         patches from windbus project (http://sf.net/projects/windbus)
221
222 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
223
224         * bus/activation.c: (bus_activation_activate_service):
225         fixed call to _dbus_spawn_async_with_babysitter().
226
227 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
228
229         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
230         added environment pointer as function parameter, used on win32.
231
232         * test/spawn-test.c: fixed call to above mentioned function.
233
234 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
235
236         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
237         added configure check for unistd.h.
238
239 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
240
241         * test/Makefile.am: fixed test data copy problem in 
242         out of source build, when sources came from svn or cvs. 
243
244 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
245
246         * dbus/*-win.*,bus/*-win.*: added win32 platform related
247         files. These files are only added to the cmake build system.  
248         The missing dbus-win.patch file will be added later. 
249
250 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
251
252         * cmake: new directory, contains cmake build support.
253         See http://www.cmake.org for more informations.
254         Currently only unix will be buildable because some 
255         win32 required files are still missing. 
256
257 2007-03-03  Thiago Macieira  <thiago@kde.org>
258
259         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
260         output and add it to the DBusError message we return.
261
262         * tools/dbus-launch.1:
263         * tools/dbus-launch.c: Add option --close-stderr to, well,
264         close stderr before starting dbus-daemon.
265
266 2007-01-31  Havoc Pennington  <hp@redhat.com>
267
268         * bus/dbus-daemon.1.in: write a section in the man page on running
269         a test daemon for debugging purposes
270
271 2007-01-26  Havoc Pennington  <hp@redhat.com>
272
273         * bus/session.conf.in: override all the default limits with much
274         higher limits on the session bus, there is no reason the session
275         bus should have low limits
276
277         * bus/config-parser.c (bus_config_parser_new): increase default
278         limits so they are less likely to be hit; in particular the max
279         replies per connection was way too low
280
281 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
282
283         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
284         a pointer to the tutorial maintained as part of dbus-python
285
286 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
287
288         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
289         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
290         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
291
292 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
293
294         * tools/dbus-monitor.c: gettimeofday() is not available 
295         on windows so we have to provide our own. It's taken from 
296         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
297
298 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
299
300         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
301         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
302         is in dbus-sysdeps-win.c (not in this patch).
303
304         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
305         with InterlockedInc/Decrement. 
306         - Patches from Christian Ehrlicher
307         
308 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
309
310         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
311
312 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
313
314         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
315         fix mispaced const statement. - Patch from Peter Kümmel
316
317 2006-12-19  Ray Strode  <rstrode@redhat.com>
318
319         * bus/bus.c (process_config_every_time):
320         don't overwrite existing bus context activation object
321         until after we've checked that the new activation is
322         valid.
323
324         * bus/main.c 
325         (signal_handler), (handle_reload_watch):
326         don't call exit() on failure, instead make do and keep
327         going.
328         (close_reload_pipe): new function to turn off
329         hangup-causes-config-reload behavior if an unexpected
330         error occurs
331
332 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
333
334         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
335         correctness fix. - Patch from Christian Ehrlicher
336
337 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
338
339         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
340         we should also use it. - Patch from Christian Ehrlicher
341
342 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
343   
344         * dbus-sysdeps-util.c: added win32 related tests
345
346 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
347
348         * dbus/dbus-string.c (_dbus_string_pop_line),
349         bus/desktop-file.c (parse_section_start,
350         parse_comment_or_blank,parse_key_value,): uses
351         _dbus_string_find_eol() to support platform independent eol style.
352
353 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
354
355         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
356         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
357               _dbus_string_find_eol().
358         Approved by: Havoc Pennington.
359
360 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
361
362         * configure.in: Added switch to disable user_database caching.
363
364         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
365         be able disable user_dabase caching.
366
367 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
368
369         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
370         struct. It is unnecessary we have a global one already. Also remove 
371         bus_context_get_user_database function, it is no longer needed.
372         Flush the global database on reload.
373
374         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
375         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
376
377         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
378         Add _dbus_user_database_flush_system. 
379         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
380         Small unrelated change in _dbus_is_a_number: change 
381         _dbus_string_parse_int to _dbus_string_parse_uint. 
382
383         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
384         _dbus_groups_from_uid.
385
386         * bus/policy.c, bus/policy.h: Change call to 
387         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
388         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
389         needs it.
390
391 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
392
393         * bus/signal.c: Fix match_rule_equal errata
394         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
395         <kimmo.hamalainen@nokia.com>)
396
397 2006-11-19  Thiago Macieira  <thiago@kde.org>
398
399         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
400         _dbus_pthread_condvar_wait,
401         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
402         pthread_self() after coming back from a conditional variable
403         wait as well as in one codepath where it was forgotten.
404         Approved by: Havoc Pennington.
405
406 2006-11-17  Havoc Pennington  <hp@redhat.com>
407
408         * update-dbus-docs.sh: allow setting fd.org username via env
409         variable. Make it run autogen with --enable-xml-docs=yes
410         --enable-doxygen-docs=yes so configure will fail if the required
411         tools are missing.
412
413 2006-11-17  Havoc Pennington  <hp@redhat.com>
414
415         * doc/dbus-faq.xml: minor FAQ tweaks
416
417 2006-11-14  Havoc Pennington  <hp@redhat.com>
418         
419         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
420         dbus_get_local_machine_id() to its own file, no substantive
421         changes. There are a couple other things we might want to add that
422         are "misc" so moving out of dbus-connection.[hc] which is big
423         enough already.
424         
425 2006-11-14  Havoc Pennington  <hp@redhat.com>
426
427         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
428         UUID had the timestamp last, but the implementation had it first;
429         move it to last since I think it's a tiny bit nicer (easier to
430         compare at a glance, faster to sort, less code), and will not
431         cause any practical compatibility problems. Also, always convert
432         the timestamp to big endian.
433
434         * doc/dbus-specification.xml: Clean up the docs on the UUID.
435
436         * tools/dbus-uuidgen.1: more prominently say it is not suitable
437         as a replacement for regular uuidgen/RFC4122.
438
439 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
440
441         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
442         the correct value so we don't assert when initalizing recursive threads
443
444         * test/name-test/test-thread-init.c: call dbus_threads_init_default
445         instead of _dbus_threads_init_debug since it is more of a real world
446         test
447
448 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
449
450         * Released 1.0.0
451
452 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
453
454         * AUTHORS: added Peter and Tor of windows porting fame
455
456 2006-11-08  Havoc Pennington  <hp@redhat.com>
457
458         * doc/dbus-specification.xml: add a note about protocol stability
459
460         * doc/TODO: Remove "important for 1.0" section, replace with
461         "important for 1.2" section
462         
463 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
464
465         * README: remove some of the out of date flags
466
467         * doc/TODO: Remove todo items which are done
468
469 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
470
471         * tools/dbus-monitor.c: Handle sigint so we flush stdout
472         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
473
474 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
475
476         * tools/dbus-monitor.1: update the manpage for dbus-monitor
477         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
478
479 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
480
481         * AUTHORS: Update with all people listed in the ChangeLog
482
483 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
484
485         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
486         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
487
488 2006-11-07  Havoc Pennington  <hp@redhat.com>
489
490         * HACKING: Update release instructions to include stuff about
491         stable releases, branching, etc. May not be totally correct,
492         please fix if needed, but keep instructions up-to-date so we do
493         each stable release consistently in the future.
494
495 2006-11-07  Havoc Pennington  <hp@redhat.com>
496
497         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
498         documentation updates. Bump faq/spec versions (not to 1.0; I don't
499         think the spec will be "finished"/1.0 when we ship the 1.0 library).
500
501 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
502
503         * bus/bus.c: Missed patch - pass in the context to the directory watch
504
505 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
506
507         * Released D-Bus 1.0 RC 3(0.95)
508
509 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
510
511         * bus/activation.c (bus_activation_new): don't fail if we can not read
512         the directory as it may not exist
513
514 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
515
516         * bus/config-parser.c (service_dirs_find_dir): use 
517         _dbus_list_get_next_link so we don't get stuck in an infinite loop
518         (start_busconfig_child): move processing of standard_session_servicedirs
519         tags here because they have no content
520         (bus_config_parser_content): check we don't have content in 
521         standard_session_servicedirs tag
522
523 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
524
525         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
526         Packagers need to own this directory
527
528 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
529
530         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
531         <standard_session_servicedirs> tag with a <sevicedir> tag that
532         points to the test service directory
533
534 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
535
536         * configure.in: Add a check for DIR *dirp->dd_fd
537
538         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
539         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
540         of both Solaris and Irix
541
542 2006-11-01  Havoc Pennington  <hp@redhat.com>
543
544         * bus/dbus-daemon.1.in: document standard_session_servicedirs
545
546 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
547
548         * configure.in: expose DBUS_DATADIR
549         
550         * bus/config-parser.c: add the standard_session_servicedirs element
551         to the parser
552         (bus_config_parser_content): process the standard_session_servicedirs
553         element by getting the standard directories from sysdeps and merging
554         them into the service directory list
555         (test_default_session_servicedirs): make sure we get what we expect
556
557         * bus/session.conf.in: replace the servicedir tag with the 
558         standard_session_servicedirs tag
559
560         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
561         dbus-sysdeps.h to avoid circular header dependencies
562
563         * dbus/dbus-sysdeps.h: add the typedef of DBusList
564
565         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
566         which takes a string of directories delimited by colons, parses them 
567         out, appends a suffix and puts them in a list ignoring empty elements
568         (_dbus_get_standard_session_servicedirs): returns the standard 
569         directories for a session bus to look for service activation files
570         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
571         DBUS_DATADIR directories
572
573         * test/data/valid-config-files/many-rules.conf: add the 
574         standard_session_servicedirs tag to the valid config file tests
575
576 2006-10-30  Havoc Pennington  <hp@redhat.com>
577
578         * tools/dbus-launch.1, doc/TODO: capture intent to change the
579         command line options of dbus-launch a bit post 1.0
580
581 2006-10-27  Havoc Pennington  <hp@redhat.com>
582         
583         * dbus/dbus-connection.c (dbus_connection_open_private): document
584         how to choose shared vs. private connections
585
586 2006-10-27  Havoc Pennington  <hp@redhat.com>
587
588         * dbus/dbus-test.c: enclose more of the file in the
589         DBUS_BUILD_TESTS check.
590
591         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
592         DBUS_DISABLE_ASSERT case.
593
594         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
595         that it only works on the server side
596
597         * dbus/dbus-bus.c: add a global lock covering the BusData we
598         attach to each connection
599         (internal_bus_get): lock our access to the BusData
600         (dbus_bus_register): lock the entire registration process
601         with _DBUS_LOCK(bus_datas). If we get the lock and 
602         registration is already complete, silently return (vs. previous
603         behavior of aborting).
604         (dbus_bus_set_unique_name): lock the BusData
605         (dbus_bus_get_unique_name): lock the BusData
606
607 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
608
609         * bus/config-parser.c (service_dirs_find_dir, 
610         service_dirs_append_unique_or_free, 
611         service_dirs_append_link_unique_or_free): New static methods
612         for only appending unique service directory names into
613         the service directory list
614         (merge_included, bus_config_parser_content): Only add unique
615         service directory names into the list
616
617 2006-10-27  Havoc Pennington  <hp@redhat.com>
618
619         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
620         variables volatile, suggested by Thiago. Document struct fields.
621         (PTHREAD_CHECK): remove pthread error checking if assertions are
622         disabled, should reduce the no-assertions case to the bare
623         minimum code.
624
625 2006-10-26  Havoc Pennington  <hp@redhat.com>
626         
627         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
628         to be recursive
629         (_dbus_pthread_mutex_unlock): make it recursive
630         (_dbus_pthread_condvar_wait): save/restore the recursion count
631         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
632
633 2006-10-26  Havoc Pennington  <hp@redhat.com>
634
635         * doc/dbus-specification.xml: clarify the UUID text slightly
636
637         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
638         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
639         in preparation for being able to extend them for e.g. recursive
640         mutexes.
641
642 2006-10-26  Havoc Pennington  <hp@redhat.com>
643
644         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
645         condition variables relate to recursive mutexes.
646         
647         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
648         dbus/dbus-threads.c: Split the platforms-specific thread 
649         implementations into their own files.
650         
651         * dbus/dbus-sysdeps-pthread.c
652         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
653         was backward. Not that anything uses it.
654
655 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
656
657         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
658         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
659         needs to be cleaned up more.
660
661         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
662         up the CREDS issue.
663
664 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
665
666         * configure.in, dbus-1.pc.in: Check to see if thread methods 
667         are in glibc or libpthread and add -lpthread to the link stage 
668         if it is the latter
669
670 2006-10-26  Thiago Macieira  <thiago@kde.org>
671
672         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
673         bug 8780: the connection lock is only required while recording
674         the shared connection, so protect only that code
675         section. Don't require connection_lookup_shared to return a
676         locked connection.
677
678 2006-10-26  Thiago Macieira  <thiago@kde.org>
679
680         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
681         check if get_machine_uuid() returns NULL before proceeding any
682         further: we can't init the X atoms or create a session file
683         name if there is no machine ID.
684         This solves a crash reported by some users if
685         --exit-with-session was used without --autolaunch=<machine-id>
686
687 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
688
689         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
690         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
691
692         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
693         before we run dbus-launch
694
695         * configure.in: define TEST_BUS_BINARY to be the full path to 
696         dbus-daemon in the build root 
697
698 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
699
700         * dbus/Makefile.am:
701         * tools/Makefile.am:
702         * toos/dbus-uuidgen.1:
703                 Move the machine-id file to /var/lib/dbus 
704
705 2006-10-24  David Zeuthen  <davidz@redhat.com>
706
707         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
708         _dbus_assert (thread_init_generation != _dbus_current_generation)
709         not _dbus_assert (thread_init_generation == _dbus_current_generation)
710
711 2006-10-24  Thiago Macieira  <thiago@kde.org>
712
713         * dbus/dbus-sysdeps.h:
714         * dbus/dbus-sysdeps-unix.c: Add function
715         _dbus_make_file_world_readable that chmods a file to 0644.
716
717         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
718         Avoid writing to the static "argv" array, thereby avoiding a
719         COW on the child process.
720
721         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
722         call _dbus_make_file_world_readable on the created file.
723
724 2006-10-23  David Zeuthen  <davidz@redhat.com>
725
726         * dbus/dbus-memory.c: Use atomic variable to protect
727         n_blocks_outstanding otherwise OOM will be reported using SMP on
728         some arches
729         
730         * bus/dispatch.c: Add missing end of line characters
731
732         * bus/desktop-file.c (parse_section_start, parse_key_value) 
733         (bus_desktop_file_load): Propertly handle OOM
734
735         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
736         thread_init_generation equals _dbus_current_generation, not 0
737
738 2006-10-22  Havoc Pennington  <hp@redhat.com>
739
740         * dbus/dbus-connection-internal.h: move prototype of
741         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
742         it isn't in a public header and doesn't end up in the DBusBus
743         group in Doxygen
744
745 2006-10-21  Havoc Pennington  <hp@redhat.com>
746
747         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
748         the tarball if packagers want to run it
749
750         * cleanup-man-pages.sh: Add a script which munges all the internal
751         API man pages out of the Doxygen output. This reduces the size of
752         the installed man pages from 7 to 2 megs, and avoids
753         namespace-polluting pages. Right now (like Doxygen) this script
754         isn't in the build, it's something packagers can do manually.
755
756 2006-10-21  Havoc Pennington  <hp@redhat.com>
757
758         * dbus/dbus-connection.h: don't include the watch/timeout
759         functions in connection section
760
761 2006-10-21  Havoc Pennington  <hp@redhat.com>
762
763         * Documentation! Whee! Doxygen now 100% silent. If you make it
764         angry again, you will be punished.
765         
766 2006-10-21  Havoc Pennington  <hp@redhat.com>
767
768         * More documentation - all public API now documented according to
769         Doxygen
770
771 2006-10-21  Havoc Pennington  <hp@redhat.com>
772
773         * Document a bunch of undocumented stuff
774         
775 2006-10-21  Havoc Pennington  <hp@redhat.com>
776
777         * Clean up Doxygen group markers for public API so Doxygen finds
778         everything (not comprehensively fixed for private API).
779         Means all remaining Doxygen warnings are just about missing docs
780         and thus pretty simple to resolve.
781         
782 2006-10-21  Havoc Pennington  <hp@redhat.com>
783         
784         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
785
786         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
787         as DBUS_GNUC_DEPRECATED
788
789 2006-10-21  Havoc Pennington  <hp@redhat.com>
790
791         * Move all private API into the private Doxygen group sections of
792         the files, so they don't show up in the public API docs
793         
794 2006-10-21  Havoc Pennington  <hp@redhat.com>
795
796         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
797         dbus_message_iter_get_array_len().
798
799         * throughout: documentation improvements.
800
801 2006-10-20  Havoc Pennington  <hp@redhat.com>
802
803         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
804         matter, and the message-loader-breaker thing since nobody is going
805         to do it.  Add an item to 1.0 about supporting recursive locks
806         in dbus_threads_init_default() though, since it should be easy.
807
808         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
809         Fix this in the !dispatch case to avoid busy-looping after
810         disconnection
811
812         * More misc docs improvements
813
814 2006-10-19  Havoc Pennington  <hp@redhat.com>
815
816         * more Doxygen-related fixes (lots of moving things from the
817         public to internal section in dbus-connection.c)
818
819 2006-10-19  Havoc Pennington  <hp@redhat.com>
820
821         * Fix a pile of Doxygen warnings and missing docs
822
823 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
824
825         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
826         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
827         instead of a void *.  kqueue uses this to get the context's loop
828         while the other modules ignore the parameter.  This allows us to
829         avoid platform conditionals
830
831         * bus/bus.c (process_config_postinit): Pass in the context to the 
832         watch
833
834 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
835
836         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
837         when starting the system bus
838
839 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
840
841         * configure.in: More fixups for cross compile (Patch from 
842         Marco Pracucci <development at pracucci dot com>)
843
844 2006-10-17  Havoc Pennington  <hp@redhat.com>
845
846         * tools/dbus-send.c (main): don't close shared connection, fix
847         from Timo Hoenig
848
849 2006-10-17  Havoc Pennington  <hp@redhat.com>
850
851         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
852
853         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
854         since realistically it doesn't look like we'll be changing it
855         anymore.
856
857 2006-10-17  Havoc Pennington  <hp@redhat.com>
858
859         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
860         be used for return_if_fail type warnings; prefixes the pid, and
861         fatal by default.
862
863 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
864
865         * configure.in: Released 1.0 RC 2(0.94)
866         Add check for -fPIC and enable it if available
867
868 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
869
870         * doc/TODO: Remove the check TODO item
871
872 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
873
874         * dbus-transport-socket.c (exchange_credentials):
875         Print out more detailed errors if reading or sending
876         credentials fail (Patch from Julio M. Merino Vidal 
877         <jmmv at NetBSD dot org>)
878
879 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
880
881         * configure.in: when checking for posix getpwnam_r assume true
882         for cross compiles
883
884 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
885
886         * configure.in: Check for gethostbyname first before we check for it
887         in libnsl.  On gnu systems it is implemeneted 
888
889 2006-10-13  Havoc Pennington  <hp@redhat.com>
890
891         * dbus/dbus-connection.c
892         (dbus_connection_send_with_reply_and_block): fix to handle closed
893         connections, from Tambet Ingo bug #8631
894
895 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
896
897         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
898
899 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
900
901         * test/name-test/Makefile.am: don't link against both libdbus and
902         libdbus-convenience
903
904 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
905
906         * configure.in: check for dirfd even if it is a macro
907         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
908
909 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
910
911         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
912         avoid using dirfd on systems that don't have dirfd 
913         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
914
915 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
916
917         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
918         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
919
920         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
921         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
922         macro because _dbus_abort calls it
923
924         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
925         works
926
927 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
928
929         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
930         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
931
932 2006-10-02  Thiago Macieira  <thiago@kde.org>
933
934         * tools/dbus-launch.c (main): make it complain and abort
935         execution in case an unknown option is given. Also, process
936         the '--' argument as the end of arguments.
937
938 2006-10-01  Havoc Pennington  <hp@redhat.com>
939
940         * tools/dbus-launch.c (print_variables): if no syntax is given,
941         don't print something that's sort-of-half-sh-syntax, just print
942         a plain key-value pairs thing.
943
944         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
945         the local machine representation (but still have the hostname in
946         the display). Remove the hostname from the display if it is
947         localhost. Change session files to be named
948         ~/.dbus/session-bus/machine-display. Change X atoms to be
949         underscore-prefixed so nobody whines about ICCCM compliance.
950         Otherwise name them the same as the env variables.
951         Change session file format to include key-value pairs and an
952         explanatory comment. Keys are the same as the env variables.
953         (set_address_in_x11): X property format can't depend on
954         sizeof(pid_t) on a particular machine, fix to always be 32 bits
955
956         * tools/dbus-launch.c: make --autolaunch take a machine id
957         argument. If --autolaunch is used with a program to run, complain
958         for now (but add a FIXME). Also, don't look for existing bus if 
959         there's a program to run (but add a FIXME).
960
961         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
962         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
963         just to get this, and avoids duplicating uuid-reading code).
964
965         * tools/dbus-launch.1: clarify various things
966         
967 2006-10-01  Havoc Pennington  <hp@redhat.com>
968
969         * test/test-service.c (path_message_func): remove broken extra
970         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
971
972         * test/test-shell-service.c (path_message_func): same fix
973         
974         * dbus/dbus-connection.c
975         (_dbus_connection_get_dispatch_status_unlocked): break up the
976         function a little for clarity and fix the notification of
977         dbus-bus.c to not require dispatch to be complete
978
979         * dbus/dbus-connection.c (dbus_connection_unref): improve the
980         warning when you try to finalize an open connection.
981         
982 2006-10-01  Havoc Pennington  <hp@redhat.com>
983
984         * dbus/dbus-bus.c
985         (internal_bus_get): only weak ref the connection; this means 
986         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
987         called safely in any context
988         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
989         unref
990
991         * dbus/dbus-connection.c
992         (_dbus_connection_get_dispatch_status_unlocked): move
993         _dbus_bus_notify_shared_connection_disconnected_unlocked here
994         when queuing Disconnected instead of when the Disconnected message
995         arrives, so dbus_bus_get() won't return closed connections.
996         
997 2006-10-01  Havoc Pennington  <hp@redhat.com>
998
999         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
1000         Add a hack to make DBusNewConnectionFunction work right.
1001
1002         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
1003         the hack here. Also, fix the todo about refcount leak.
1004         
1005         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1006         and use the hack here
1007         
1008         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
1009         "shareable" flag; this was completely broken, since it meant 
1010         dbus_connection_open() returned a connection of unknown
1011         shared-ness. Now, we always hold a ref on anything opened 
1012         as shareable.
1013
1014         Move the call to notify dbus-bus.c into
1015         connection_forget_shared_unlocked, so libdbus consistently forgets
1016         all its knowledge of a connection at once. This exposed numerous
1017         places where things were totally broken if we dropped a ref inside
1018         get_dispatch_status_unlocked where
1019         connection_forget_shared_unlocked was previously, so move
1020         connection_forget_shared_unlocked into
1021         _dbus_connection_update_dispatch_status_and_unlock. Also move the
1022         exit_on_disconnect here.
1023
1024         (shared_connections_shutdown): this assumed weak refs to the
1025         shared connections; since we have strong refs now, the assertion 
1026         was failing and stuff was left in the hash. Fix it to close
1027         still-open shared connections.
1028         
1029         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
1030         debug pipe connections
1031         
1032         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
1033         dbus-bus.c if the closed connection is in fact shared
1034         (_dbus_connection_close_possibly_shared): rename from 
1035         _dbus_connection_close_internal
1036         (dbus_connection_close, dbus_connection_open,
1037         dbus_connection_open_private): Improve docs to explain the deal
1038         with when you should close or unref or both
1039
1040         * dbus/dbus-bus.c
1041         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
1042         from _dbus_bus_check_connection_and_unref_unlocked and modify to
1043         loop over all connections
1044
1045         * test/test-utils.c (test_connection_shutdown): don't try to close
1046         shared connections.
1047
1048         * test/name-test/test-threads-init.c (main): fix warnings in here
1049
1050         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
1051         env variable to cause blocking waiting for gdb; drop
1052         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
1053         unconditionally.
1054
1055         * configure.in: add -export-dynamic to libtool flags if assertions enabled
1056         so _dbus_print_backtrace works.
1057
1058         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
1059         instead of _dbus_verbose to print the backtrace, and diagnose lack 
1060         of -rdynamic/-export-dynamic
1061         
1062 2006-09-30  Havoc Pennington  <hp@redhat.com>
1063
1064         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
1065         (internal_bus_get): fix screwy code formatting. whoever committed
1066         that was not paying attention!
1067
1068 2006-09-30  Havoc Pennington  <hp@redhat.com>
1069
1070         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
1071         reflect addition of interfaces.
1072
1073         * doc/dbus-specification.xml: describe a new
1074         org.freedesktop.DBus.Peer.GetMachineId method
1075
1076         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
1077         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
1078         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
1079         at end of skip_white
1080         (_dbus_string_chop_white): new function
1081
1082         * bus/connection.c (bus_connections_setup_connection): call
1083         dbus_connection_set_route_peer_messages.
1084
1085         * dbus/dbus-connection.c
1086         (_dbus_connection_peer_filter_unlocked_no_update): modify to
1087         support a GetMachineId method.
1088
1089         Also, support a new flag to let the bus pass peer methods through
1090         to apps on the bus, which can be set with
1091         dbus_connection_set_route_peer_messages.
1092
1093         Finally, handle and return an error for anything unknown on the
1094         Peer interface, which will allow us to extend the Peer interface
1095         in the future without fear that we're now intercepting something
1096         apps were wanting to see.
1097         
1098         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
1099         dbus/dbus-uuidgen.c
1100
1101         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
1102         binary here, since most of the code is already in libdbus
1103
1104         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
1105         uuid from the system config file
1106
1107         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
1108         (_dbus_read_uuid_file_without_creating) 
1109         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
1110         uuid-related functions, partly factored out from dbus-server.c
1111
1112         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
1113         DBUS_ERROR_FILE_EXISTS instead of EEXIST
1114
1115         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
1116
1117         * tools/dbus-cleanup-sockets.1: explain what the point of this
1118         thing is a bit more
1119
1120         * autogen.sh (run_configure): add --config-cache to default
1121         configure args
1122
1123         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
1124         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
1125
1126         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
1127         don't try to save address, fixes crash in make check
1128         
1129 2006-09-30  Thiago Macieira  <thiago@kde.org>
1130
1131         * configure.in: add DBUS_BINDIR as a #define to C source code.
1132
1133         * tools/dbus-launch.c
1134         * tools/dbus-launch.h
1135         * tools/dbus-launch-x11.c:
1136         * tools/dbus-launch.1: Add the --autolaunch option to
1137         dbus-launch, which makes it scan for an existing session
1138         started with --autolaunch. With that option, it also creates
1139         an X11 window and saves the bus address and PID to it.
1140
1141         * dbus/dbus-sysdeps.h:
1142         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
1143         a function that runs "dbus-launch --autolaunch" to retrieve
1144         the running D-Bus session address (or start one if none was running)
1145
1146         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
1147         address protocol, which tries to get the running session from
1148         dbus-launch.
1149
1150         * dbus/dbus-bus.c:
1151         * dbus/dbus-internals.h: Make "autolaunch:" be the default
1152         D-Bus session bus address.
1153
1154         * dbus/dbus-connection.c: Fix horrible typo in error message.
1155
1156 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
1157
1158         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
1159
1160 2006-09-17  Havoc Pennington  <hp@redhat.com>
1161
1162         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1163         fix so that if unix_user_function is set on windows, we still
1164         do the default check that the auth identity matches the bus identity
1165
1166 2006-09-16  Havoc Pennington  <hp@redhat.com>
1167
1168         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
1169         to _dbus_transport_open_platform_specific,
1170         _dbus_transport_open_socket,
1171         and _dbus_transport_open_debug_pipe
1172
1173         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
1174
1175 2006-09-16  Havoc Pennington  <hp@redhat.com>
1176
1177         Attempt auditing public API to remove all cases where a Unix
1178         function returns weird emulated goo to Windows. This probably 
1179         breaks the bus daemon on Windows, to fix it again we may 
1180         need to stop processing unix-specific config options on Windows,
1181         and may need to add Windows-specific public API or config options.
1182         
1183         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
1184         to reflect added interfaces; should not break soname.
1185         
1186         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
1187         not invoke unix user function on Windows. Kind of a hacky fix, but 
1188         we don't want a "unix uid" leaking out on Windows.
1189
1190         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
1191         to get the socket fd on Windows or UNIX
1192         (dbus_connection_get_unix_fd): make this always fail on Windows
1193
1194 2006-09-16  Havoc Pennington  <hp@redhat.com>
1195
1196         * dbus/dbus-server.c (dbus_server_listen): change how this works
1197         to be able to delegate to a set of handlers that can succeed,
1198         fail, or choose not to handle. Allows us to have 
1199         dbus_server_listen_platform_specific.
1200
1201         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
1202         factor out the tcp socket stuff to be used on windows, leaving
1203         unix domain socket only in dbus-socket-unix.c
1204
1205         * dbus/dbus-transport-socket.c
1206         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
1207         stuff to be used on windows, leaving unix domain socket only 
1208         in dbus-transport-unix.c
1209
1210         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
1211         temporary hack to be sure this fails on windows
1212         (dbus_connection_get_unix_process_id): ditto
1213
1214 2006-09-16  Havoc Pennington  <hp@redhat.com>
1215
1216         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1217         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1218         _dbus_open_socket so the domain/type/protocol from system headers
1219         are not required. This is kind of pointless though unless we move
1220         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1221         sysdeps-unix.c, which would mean adding a wrapper around
1222         bind/listen/etc.
1223         Also, add DBusError to the socket-opening functions so they 
1224         don't require use of errno.
1225
1226 2006-09-16  Havoc Pennington  <hp@redhat.com>
1227
1228         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1229         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1230
1231         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1232         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1233         functions specifically for sockets only, and move generic 
1234         read/write/open/close into unix-specific code.
1235
1236 2006-09-14  Havoc Pennington  <hp@redhat.com>
1237
1238         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1239         complaint about accessing revents when poll returns 0, from Julian Seward.
1240
1241 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1242
1243         * Released 1.0 RC 1 (0.93) 
1244
1245 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1246
1247         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1248         use _dbus_close instead of close
1249
1250 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1251
1252         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1253         credentials.  Fixes "external" authentication under e.g. NetBSD
1254         which does not support any other socket credentials mechanism.
1255         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1256
1257 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1258
1259         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1260         dbus_threads_init and be used by the dbus mutex functions to
1261         avoid deadlocks.
1262
1263         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1264
1265 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1266
1267         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1268         use threadsafe readdir_r instead of readdir
1269
1270 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1271
1272         * dbus-threads.c (dbus_threads_init_default): New method for
1273         initializing the internal thread implementation (Patch from
1274         Alexander Larsson <alexl at redhat dot com>)
1275
1276 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1277
1278         * remove a bunch of todo items from the 1.0 list
1279
1280 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1281
1282         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1283         key not found
1284
1285 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1286
1287         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1288         complex debugging code
1289
1290         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1291         between the test suite ifdefs
1292         (_dbus_verbose_bytes): return if verbosity is not enabled 
1293
1294 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1295
1296         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1297         remove DBusMark
1298
1299 2006-09-10  Havoc Pennington  <hp@redhat.com>
1300
1301        patch mostly by Peter Kümmel, bug #8211
1302         
1303         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1304         unix-specific stuff in dbus-sysdeps.c
1305
1306         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1307         and move unix-specific stuff to dbus-sysdeps-unix.c
1308
1309         * configure.in: check HAVE_ERRNO_H
1310         
1311 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1312
1313         * bus/test-main.c (main): Initialize threading during tests
1314
1315         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1316         Unlock connection on error
1317         (generate_local_error_message): static method for generating
1318         an error message when we don't have a message to reply to
1319         (_dbus_connection_block_pending_call): Send a disconnect error
1320         instead of just a timeout (NULL) when the bus gets disconnected
1321         while blocking for a reply.
1322         
1323 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1324
1325         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1326         filters (Patch from Kimmo Hämäläinen 
1327         <kimmo dot hamalainen at nokia dot com>)
1328
1329 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1330
1331         * dbus/dbus-connection-internal.h: Add prototype for 
1332         _dbus_connection_test_get_locks to remove warning
1333
1334 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1335
1336         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1337         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1338         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1339
1340 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1341
1342         * Clean up close calls to use _dbus_close (Patch from 
1343         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1344
1345 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1346
1347         * doc/TODO:
1348         - Remove pending call locking todo item
1349         - dbus_connection_open now holds hard ref.  Remove todo item
1350         - do proper locking on _dbus_bus_check_connection_and_unref
1351           and handle DBUS_BUS_STARTER. Remove todo item
1352         - Warn on closing of a shared connection.  Remove todo item
1353
1354         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1355         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1356         so we don't get the warning when closing shared connections
1357
1358         * test/test-service.c, test/test-shell-service.c: Applications
1359         don't close shared connections themselves so we unref instead of
1360         close
1361
1362         * test/test-utils.c (test_connection_shutdown): Close the connection
1363
1364         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1365         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1366         method on a locked connection.  
1367         Make sure we call _dbus_connection_unref_unlocked instead of 
1368         dbus_connection_unref also.
1369         Handle DBUS_BUS_STARTER correctly
1370
1371         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1372         Mark as shared and hard ref the connection
1373         (connection_forget_shared_unlocked): Remove the hard ref from the 
1374         connection
1375         (_dbus_connection_close_internal_and_unlock):  New internal function
1376         which takes a locked connection and unlocks it after closing it
1377         (_dbus_connection_close_internal): New internal function which acts
1378         like the origonal dbus_connection_close method by grabbing a connection
1379         lock and calling _dbus_connection_close_internal_and_unlock
1380         (dbus_connection_close): Public close method, warns when the app
1381         trys to close a shared connection
1382
1383 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1384
1385         * bus/driver.c:
1386         (bus_driver_generate_introspect_string): New method for populating
1387         a DBusString with the introspect data
1388         (bus_driver_handle_introspect): Move introspect generation code to 
1389         bus_driver_generate_introspect_string
1390
1391         * bus/main.c:
1392         (introspect): New function which prints out the intropect data and
1393         exits
1394         (main): Add a --introspect switch
1395
1396 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1397
1398         * doc/TODO: Removed dtd publishing item.  
1399         It seems the dtd has already been added at
1400         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1401
1402 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1403
1404         * doc/TODO, various source files: Audited todo's and FIXME's and
1405         prepended the ones we should be looking at with 1.0.  Those
1406         prepended with 1.0? need clerification or might not be needed
1407         for 1.0
1408
1409 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1410
1411         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1412         NULL in the public API (Patch from Kimmo Hämäläinen 
1413         <kimmo dot hamalainen at nokia dot com>)
1414
1415 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1416
1417         * configure.in: Fix for OS-X compile time endian issues (patch from
1418         Benjamin Reed <ranger at befunk dot com>)
1419
1420 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1421
1422         * configure.in: Check for no-common compiler flag (OS-X fix from
1423         Benjamin Reed <ranger at befunk dot com>)
1424
1425 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1426
1427         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1428         <fcrozat at mandriva dot com>)
1429
1430 2006-08-29  Havoc Pennington  <hp@redhat.com>
1431
1432         * test/test-service.c (path_message_func): fix lack of return value
1433
1434         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1435         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1436         any more sense than on anything else in this file.
1437         (_dbus_get_tmpdir): add const to return value, and keep the
1438         results of the various getenv around in a static variable.
1439
1440 2006-08-29  Havoc Pennington  <hp@redhat.com>
1441
1442         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1443         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1444
1445 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1446
1447         * test/Makefile.am: change find to use syntax that works with non
1448         gnu versions of find
1449
1450 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1451
1452         * dbus/dbus-transport.c: fix invalid deref when checking if
1453         a vtable method exists (Patch from Christian Ehrlicher 
1454         <ch dot ehrlicher at gmx dot de>)
1455
1456 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1457
1458         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1459         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1460         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1461         <bernard at brenda-arkle dot demon dot co dot uk>)
1462
1463 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1464
1465         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1466         default case
1467
1468 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1469
1470         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1471         it works on any system providing this interface, not only FreeBSD.
1472         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1473
1474 2006-08-20  Havoc Pennington  <hp@redhat.com>
1475
1476         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1477         the docs
1478
1479 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1480
1481         * Released 0.92 
1482
1483 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1484
1485         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1486         to reflect the init late change
1487
1488         * bus/bus.c (bus_context_new): Check user before we fork so we can
1489         print out an error message a user will be able to see
1490
1491 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1492
1493         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1494
1495         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1496         Add two more global locks for use on windows platforms.  These are
1497         unused on non-windows platforms but are not ifdefed out to avoid
1498         potential bugs (i.e. the few bytes lost does not warrent the extra
1499         maintanence and complexity that having seperate sets of locks would
1500         cause)
1501
1502 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1503
1504         * bus/services.c (bus_registry_acquire_service): Return an error
1505         when an application tries to register the org.freedesktop.DBus Bus Name
1506
1507         * bus/services.c (bus_registry_release_service): Return an error
1508         when an application tries to release the org.freedesktop.DBus Bus Name
1509
1510 2006-08-17  Alp Toker  <alp@atoker.com>
1511
1512         * doc/dbus-specification.xml: Fix some minor typos.
1513
1514 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1515
1516         * configure.in: use $with_init_scripts instead of $operating_system
1517         to determine where to store the pid since the init scripts manipulate 
1518         the pid file (patch from Marcelo Ricardo Leitner 
1519         <marcelo dot leitner at terra dot com dot br>.  
1520
1521 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1522
1523         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1524         static DBusList *uninitialized_condvar_list to support new late 
1525         initialization threading model.  In this model threads can be initialized
1526         even after the D-Bus API has been used but still needs to be initialized 
1527         before the second thread has been started.  Mutexes and condvar addresses
1528         are stored in the two static lists and are replaced with actuall locks
1529         when threads are initalized.
1530         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1531         the location into the static list
1532         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1533         from the static list and freeing the mutex
1534         (_dbus_condvar_new_at_location): New method for creating a conditional 
1535         variable and placing the location into the static list
1536         (_dbus_condvar_free_at_location): New method for removing a conditional
1537         variable location from the static list and freeing the conditional variable 
1538         (init_uninitialized_locks): Atomic method which goes through the static 
1539         lists of mutex and condvar location and updates them with actuall locks
1540         (init_global_locks): changed to init_locks
1541         
1542         * dbus/dbus-connection.c:
1543         (_dbus_connection_test_get_locks): New method for tests to check connections
1544         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1545         condvar API
1546         (dbus_connection_allocate_data_slot): Pass in the global lock address
1547         to _dbus_data_slot_allocator_alloc
1548
1549         * dbus/dbus-dataslot.c:
1550         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1551         instead of the mutex itself
1552
1553         * dbus/dbus-message.c:
1554         (dbus_message_allocate_data_slot): Pass in the global lock address
1555         to _dbus_data_slot_allocator_alloc
1556
1557         * dbus/dbus-pending-call.c:
1558         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1559         to _dbus_data_slot_allocator_alloc
1560
1561         * dbus/dbus-server.c:
1562         (_dbus_server_init_base): Use the new at_location mutex API
1563         (dbus_server_allocate_data_slot): Pass in the global lock address
1564         to _dbus_data_slot_allocator_alloc
1565
1566         * test/name-test/test-threads-init.c: New test case for late thread
1567         initialization
1568
1569 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1570
1571         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1572         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1573         causes compile problems when asserts are turned off
1574         Keeping _dbus_warn for printing out the message so even if
1575         asserts are turned off the user gets the messages that something is 
1576         wrong 
1577
1578 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1579
1580         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1581
1582         * bus/services.c (bus_service_list_queued_owners):
1583         Add a pointer cast to fix compiler warning
1584
1585         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1586         return a NULL instead of FALSE since the return type
1587         is not expecting a boolean
1588
1589         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1590         Remove unused variable
1591
1592         * dbus/dbus-marshal-recursive-util.c (node_new):
1593         return a NULL instead of FALSE since the return type
1594         is not expecting a boolean
1595
1596         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1597         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1598         because we are expecting a pointer not a boolean
1599
1600         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1601         add void as the parameter so some compilers
1602         don't complain
1603
1604         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1605           _dbus_transport_new_for_tcp_socket):
1606         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1607         because we are expecting a pointer not a boolean
1608
1609         * test/shell-test.c (test_command_line):
1610         cast the second argument to _dbus_list_append to avoid compiler
1611         warnings
1612
1613         * test/test-names.c (main): remove unused variable
1614
1615         * test/test-service.c (check_hello_from_self_reply):
1616         Initialize echo_message and echo_reply to NULL
1617         
1618         * test/test-shell-service.c (handle_echo):
1619         Remove unused variable and cast the third parameter passed to
1620         dbus_connection_get_object_path_data to avoid compiler warrnings
1621
1622         * test/name-test/test-names.c (clear_message_queue):
1623         Remove unused function
1624
1625         * test/name-test/test-pending-call-dispatch.c:
1626         Fix format string in printf
1627
1628
1629 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1630
1631         * dbus/dbus-bus.c:
1632         * test/name-test/test-names.c:
1633         Remove test method dbus_bus_connection_get_unique_name because 
1634         we already have public method dbus_bus_get_unique_name that 
1635         does the exact same thing
1636
1637 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1638
1639         * dbus/dbus-signature.c:
1640         fix typos in Julio's previous patch which cause make check to fail
1641
1642 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1643
1644         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1645         In any case it was wrong since this is a test checking to see if
1646         address parsing is correct.  There was no need to get the true
1647         tmp directory.  
1648
1649 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1650
1651         * dbus/dbus-macros.h: Revert the addition of stddef.h
1652         as we should not be adding it to library headers 
1653
1654 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1655
1656         * dbus/dbus-signature.c:
1657         Fix the unit tests so that they work if assertions are not enabled.
1658         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1659
1660 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1661
1662         * tools/run-with-tmp-session-bus.sh:
1663         * test/name-test/run-test.sh:
1664         Remove bashisms (patch from Julio M. Merino Vidal
1665         <jmmv at NetBSD dot org>)
1666
1667 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1668
1669         * configure.in: add a version (>= 2.6.0) check for libxml2
1670
1671 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1672
1673         * configure.in: make sure the compiler supports -Wfloat-equal
1674         
1675         * bus/dir-watch-dnotify.c: move functional code after 
1676         variable declerations (C99 fix)  (patches from Jens Granseuer
1677         <jensgr at gmx dot net>
1678
1679 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1680
1681         * dbus/dbus-macros.h:
1682         add #include <stddef.h> so that Sun compilers don't complain about
1683         the defining NULL
1684
1685 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1686
1687         * dbus/dbus-sysdeps.c:
1688         * dbus/dbus-address.c:
1689         * bus/activation.c:
1690         * test/shell-test.c:
1691         don't hardcode tmp directory (patch from Dave Meikle 
1692         <dmk at davemeikle dot co dot uk>)
1693
1694 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1695
1696         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1697         Change an assert to a detailed warning and abort.  
1698         When allocator->lock != mutex it indicates that the user has failed
1699         to initalize threads before using the D-Bus library.  This warning
1700         helps the user identify the issue and fix their app.
1701
1702 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1703
1704         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1705         with cleanups of bugs found from Coverity reports:
1706
1707         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1708         close the file on error to avoid a leak
1709
1710         * bus/expirelist.c (bus_expire_list_test):
1711         Check for NULL on dbus_new0
1712
1713         * bus/activation.c (update_directory):
1714         remove dead code
1715
1716         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1717         Fix some leaks
1718
1719         * bus/bus.c (process_config_every_time):
1720         Fixed a leak
1721
1722         * bus/desktop-file.c (parse_key_value):
1723         Fixed leak
1724
1725         * bus/selinux.c (bus_selinux_id_table_insert):
1726         Fixed leak
1727
1728 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1729
1730         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1731         remove dead code
1732
1733 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1734
1735         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1736         #!/bin/bash
1737
1738 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1739
1740         * Doxyfile.in: fix the INPUT line so we can generate docs 
1741         when sourcedir != builddir (patch from Cygwin Ports maintainer
1742         <yselkowitz at users dot sourceforge dot net>
1743
1744 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1745
1746         * dbus/dbus-sysdeps.h:
1747         * dbus/dbus-sysdeps.c: 
1748         * dbus/dbus-string.c: 
1749         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1750         GLib's function which does the same thing
1751
1752         * configure.in:
1753         * bus/Makefile.am:
1754         * bus/dir-watch-default.c:
1755         * bus/dir-watch-dnotify.c:
1756         * bus/dir-watch-kqueue.c:
1757         Add kqueue directory watching for freebsd and split the directory
1758         watching code into seperate files per method/arch
1759         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1760
1761 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1762
1763         * configure.in:
1764         * tools/Makefile.am:
1765         * tools/dbus-launch.c:
1766         * bus/Makefile.am:
1767         allow --with-dbus-daemondir switch to be used to make the
1768         daemon install to a seperate bindir like /usr/libexec
1769         (patch from Brian Cameron <brian dot cameron at sun dot com)
1770
1771 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1772
1773         * bus/Makefile.am (install-data-hook): removed the slash after 
1774         $(DESTDIR) so we don't get the double slash which does not work
1775         in windows (patch from Andras Porjesz 
1776         <andras dot porjesz at siemens dot com>)
1777
1778 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1779
1780         * dbus/dbus-sysdeps.h:
1781         * dbus/dbus-sysdeps.c: 
1782           add _dbus_printf_length (patch from Peter Kümmel 
1783           <syntheticpp at gmx dot net>)
1784
1785 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1786
1787         * dbus/dbus-internals.c: unistd.h is not used 
1788         (_dbus_verbose_real): only enable verbose printing 
1789         if DBUS_VERBOSE environment var is set to '1'
1790         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1791
1792 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1793
1794         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1795         so we still compile on older gcc (patch from Frederic Peters 
1796         <fpeters at 0d dot be>
1797
1798 2006-08-04  Havoc Pennington  <hp@redhat.com>
1799
1800         * configure.in: add -Wdeclaration-after-statement
1801
1802         * dbus/dbus-connection.c: change all the pending call stuff to
1803         reflect the fact that pending call operations use the connection
1804         lock
1805
1806         * dbus/dbus-pending-call.c: add locking here
1807
1808         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1809         field const consistent with how message field is done
1810
1811 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1812
1813         * s/D-BUS/D-Bus/g
1814
1815 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1816
1817         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1818         <in7y118 at public.uni-hamburg dot de> - fix invalid
1819         read/write reported by valgrind
1820
1821 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1822
1823         * Released 0.91
1824
1825 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1826
1827         * dbus/dbus-connection.c:
1828         (_dbus_connection_attach_pending_call_unlocked):
1829         (connection_timeout_and_complete_all_pending_calls_unlocked):
1830         Make sure we set timeout_added on pending calls to FALSE when
1831         we remove the timeout from the connection
1832
1833 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1834
1835         * Removed some extra bindings stuff lingering around (thanks timo)
1836         * dbus-pendingcall.c (_dbus_pending_call_new): 
1837         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1838         when we tried to take a lock on an already locked connection
1839
1840 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1841
1842         * Released 0.90
1843
1844 2006-07-17  Havoc Pennington  <hp@redhat.com>
1845
1846         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1847         ints, reported by Owen Taylor
1848
1849 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1850
1851         * doc/TODO:
1852         * dbus/dbus-bus.c:
1853         * dbus-errors.c:
1854         * dbus/dbus-marshal-validate.c:
1855           Removed TODO items which were fixed or are no longer relevent
1856
1857 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1858
1859         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1860         Remove stray files from the stripped bindings
1861
1862 2006-07-16  Havoc Pennington  <hp@redhat.com>
1863
1864         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1865         Improve the error message on reply timeout
1866
1867 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1868
1869         * Remove all bindings
1870
1871 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1872
1873         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1874         and set pending_reply out arg to NULL is connection is disconnected
1875         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1876         static method for cleaning up pending calls on disconnect
1877         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1878         calls queued timeouts on disconnect 
1879
1880          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1881         Remove 
1882
1883 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1884
1885         * bus/activation.[ch] (bus_activation_list_services): new function to 
1886         get the list of services that can be activated
1887
1888         * bus/dispatch.c: test coverage for the new bus method
1889         ListActivatableNames
1890
1891         * bus/driver.c: new bus method ListActivatableNames to get the list of
1892         services that can be activated
1893
1894         * doc/dbus-specification.xml: ListActivatableNames method documentation
1895
1896 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1897         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1898         source files
1899
1900 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1901         * dbus/dbus-message-factory.c:
1902         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1903
1904 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1905         * dbus/dbus-connection-internal.h:
1906         * dbus/dbus-connection.c:
1907         * file dbus/dbus-pending-call.c:
1908         * dbus/dbus-pending-call.h:
1909         Make DBusPendingCall an opaque type even to D-Bus internals
1910
1911 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1912
1913         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1914         connection_close
1915
1916         * dbus/dbus-connection.c: include dbus-bus.h
1917         (_dbus_connection_read_write_dispatch): make static
1918
1919 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1920
1921         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1922         function
1923         (dbus_connection_dispatch): On disconnect unref any shared connections
1924
1925         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1926         for cleaning up shared connections on disconnect
1927         (internal_bus_get): get a hard refrence to shared connections when
1928         they are created
1929         
1930         * doc/TODO: Remove items which are no longer relevent or have been fixed
1931         Split 1.0 todo items with a 0.90 freeze todo list
1932  
1933 2006-06-14  Ross Burton  <ross@openedhand.com>
1934
1935         * glib/dbus-gobject.c:
1936         Free a leaking GArray (surely not!) in dbus_g_method_return.
1937
1938 2006-06-14  Ross Burton  <ross@openedhand.com>
1939
1940         * tools/Makefile.am:
1941         * tools/dbus-monitor.c:
1942         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1943         Habacker).
1944         
1945 2006-06-14  Ross Burton  <ross@openedhand.com>
1946
1947         * tools/dbus-print-message.c:
1948         Also print the object path when outputting signals or method calls.
1949
1950 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1951
1952         * qt/src/Makefile.am: install the qdbus.h header.
1953         This allows people to actually use the installed code.
1954
1955 2006-06-12  Ross Burton  <ross@openedhand.com>
1956
1957         * glib/dbus-gproxy.c:
1958         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1959
1960 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1961
1962         * Released 0.62
1963
1964 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1965
1966         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1967         break pedantic builds. Closes bug 6043 (patch approved by
1968         Havoc back in February).
1969
1970 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1971
1972         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1973         that took a QDBusMessage parameter.
1974         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1975         * qt/tools/dbus.cpp: Don't use automatic call because we might
1976         be calling an async method: request a reply.
1977
1978 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1979
1980         * test/qt/*: Update the testcases, including testing the new
1981         functionality of sending null QByteArray and QString over the
1982         bus. Add new headertest test and restore the old
1983         qdbusxmlparser test.
1984
1985 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1986
1987         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1988         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1989
1990         * qt/examples/Makefile.am:
1991         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1992         form.
1993
1994         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1995         QByteArray() (nulls) over the bus.
1996         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1997         the one that has the signature suffix stripped.
1998         * qt/src/qdbusreply.h: Make some methods const.
1999
2000 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
2001
2002         Patch from Timo Hoenig <thoenig@suse.de>.
2003
2004         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
2005         required during build to EXTRA_DIST.
2006         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
2007         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
2008         * configure.in: Fix "make dist", take care that the Makefile for
2009         qt/dbus is being generated.
2010
2011 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2012
2013         * bus/bus.c: Fix eavesdropping on method calls
2014
2015 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2016
2017         * configure.in:
2018         * dbus/dbus-userdb-util.c:
2019         Add Solaris console owner patch from Artem Kachitchkine
2020
2021 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
2022
2023         * qt/Makfile.am:
2024         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
2025         reorganisation. Thanks to Timo Hoenig for pointing this out.
2026
2027 2006-06-06  Robert McQueen  <robot101@debian.org>
2028
2029         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
2030           call to dbus_g_type_get_struct.
2031
2032 2006-06-06  Robert McQueen  <robot101@debian.org>
2033
2034         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
2035           pointers were put into a GPtrArray-based specialised collection, and
2036           then freed along with the array. GValues which you add into
2037           collections or maps which have the NOCOPY flag set are assumed to not
2038           belong to the caller, so rather than the existing pointer-stealing
2039           semantics, they are copied instead. Given that the main consumers of
2040           this abstraction are the bindings themselves, I don't think this is
2041           too bad, but others should watch their choice of take vs set_static.
2042
2043 2006-06-06  Robert McQueen  <robot101@debian.org>
2044
2045         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
2046           of g_slist_prepend not being used. Fixed copying of slist-based
2047           specialised collections, then wrote a test case and found that it was
2048           all broken. Went on to fix iterating and appending too. Good thing
2049           nobody uses this code yet.
2050
2051 2006-06-06  Robert McQueen  <robot101@debian.org>
2052
2053         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
2054           the iterators use gvalue_take_ptrarray_value (the GValues themselves
2055           are discarded without unsetting, so it makes no difference whether
2056           we take or set_static). Remove cases for G_TYPE_POINTER because
2057           there really is nothing useful we can do with them in our
2058           specialised types - we *need* boxed copy/free functions at the very
2059           least.
2060
2061 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
2062
2063         * qt/dbus: Add directory. I had forgotten to add this
2064         yesterday after the move...
2065
2066         * qt/examples/Makefile.am:
2067         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
2068
2069         * qt/tools/Makefile.am:
2070         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
2071         Added feature to get and set properties.
2072         Added validation of service, object path and interface names.
2073
2074         * qt/tools/dbusidl2cpp.cpp: Two new features:
2075         1) Allow specifying both the header and the source file names,
2076         by separating them with a colon.
2077         2) Don't write an interface output if the -p switch wasn't
2078         given, but the -a was.
2079
2080         * qt/src/*: Fix usage of Iterators and ConstIterators.
2081         Fix shadowing of variables by other variables (-Wshadow).
2082         Fix keyword-cleanliness in headers.
2083         Fix ASCII-cast (QLatin1String, QLatin1Char).
2084         Fix validation of member names.
2085         Add extra checking of introspection data during XML parsing.
2086         Various bug fixes.
2087
2088 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2089
2090         * dbus/Makefile.am:
2091         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
2092         qt/dbus/qdbus.h now.
2093
2094 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2095
2096         * configure.in: Make --disable-qt actually do
2097           something. Patch inspired by Zack Rusin.
2098
2099 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2100
2101         * qt/: Update to Subversion r548032.
2102         This includes a big reorganisation of the files inside the
2103         subdir.
2104
2105 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
2106
2107         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
2108         clear:  
2109         "Failed to connect to socket <host>:<port> <error>" instead of
2110         "Failed to connect to socket <host>: <error>:<port>"
2111
2112         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
2113         for a tcp transport. 
2114
2115 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2116
2117         * qt/*: Update the QtDBus bindings up to revision 546310 in
2118         Subversion.
2119         This adds the dbuscpp2xml tool, that parses a C++ header and
2120         outputs a D-BUS Introspection XML.
2121
2122 2006-05-21  Havoc Pennington  <hp@redhat.com>
2123
2124         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
2125         is not NULL when it shouldn't be. Also a couple of possible fixes
2126         for #4637 though I don't understand why the bug happens, to be
2127         honest... also the object constructor has an assert name != NULL
2128         and the name is only currently NULL for peer-to-peer proxies that 
2129         I don't think anyone uses? So it should be asserting.
2130         Anyway, for now at least see if we get an earlier assertion failure.
2131
2132         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
2133         apparently broken code to be sure the tests fail and someone 
2134         will fix them...
2135
2136 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
2137
2138         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
2139         and arrays when they had a single element: has_next returns
2140         false, even before you read the element. So, instead, check
2141         the array length.
2142
2143 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2144
2145         * qt/qdbusmessage.cpp:
2146         * qt/qdbustypehelper_p.h:
2147         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
2148         the list is a const-reference
2149
2150 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
2151
2152         * Adding old doc patch that never got applied
2153         
2154         * dbus/bus.c (dbus_bus_add_match): Add documentation
2155
2156         * doc/dbus-specification.xml: Add documentation for the match rules
2157           and the AddMatch and RemoveMatch methods
2158
2159 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
2160
2161         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2162         call (r535506)
2163
2164         * qt/dbusidl2cpp.cpp:
2165         * qt/qdbusabstractadaptor.cpp:
2166         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
2167         sibling of the QDBusAbstractAdaptor objects instead of the
2168         parent. (r535848)
2169
2170         * qt/dbusidl2cpp.cpp:
2171         * qt/qdbusabstractinterface.cpp:
2172         * qt/qdbusabstractinterface.h:
2173         * qt/qdbusabstractinterface_p.h:
2174         * qt/qdbusinterface.cpp: Make properties in interfaces
2175         actually work. The code that was generated would not compile,
2176         due to moc calls to functions that did not exist. They now
2177         shall. (r536571)
2178
2179 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
2180
2181         * Makefile.am:
2182         * configure.in:
2183         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
2184         Thanks to Brad Hards for providing the patch
2185
2186 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2187
2188         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2189         call. (r535506)
2190
2191 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2192
2193         * qt/examples/dbus.cpp: Enhance error messages and use
2194         QDBusInterfacePtr.
2195
2196 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2197
2198         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
2199         and disable the copy operators. (r533772, r534746)
2200
2201         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
2202
2203         * qt/qdbusabstractinterface.cpp:
2204         * qt/qdbusabstractinterface.h: Change the default call mode to
2205         not use the event loop. Add convenience call() methods that
2206         take a CallMode parameter. (r534042)
2207
2208         * qt/qdbusconnection.h: Change the default call mode to not
2209         use the event loop. (r534042)
2210
2211         * qt/qdbusinterface.cpp:
2212         * qt/qdbusinterface.h: Add a method to tell us if the
2213         interface is valid (since we don't return a null pointer
2214         anymore) (r534099)
2215
2216         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2217         (r534101)
2218
2219         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2220         function in two so taht we get the chance to introspect
2221         without having a QDBusMessage (r534102)
2222
2223         * qt/qdbusbus.h:
2224         * qt/qdbusconnection.cpp:
2225         * qt/qdbusconnection_p.h:
2226         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2227         avoid a round-trip to the server when attempting to introspect
2228         one of our own objects. Also make sure the filter functions
2229         match the empty interface as well. (r534108)
2230         Don't keep the connection names. Instead, trust the unique
2231         connection name (r534111)
2232         Remove event loop usage (r534112)
2233
2234 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2235
2236         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2237         Brad Hards.
2238
2239 2006-04-28  Robert McQueen  <robot101@debian.org>
2240
2241         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2242         any order, making it easier for people who inherit from this
2243         object.
2244
2245 2006-04-28  Robert McQueen  <robot101@debian.org>
2246
2247         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2248         of memory from within pointer arrays and lists. Fixes bug #6300.
2249
2250 2006-04-28  Robert McQueen  <robot101@debian.org>
2251
2252         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2253         generating struct signatures. Fixes bug #6083.
2254
2255 2006-04-28  Robert McQueen  <robot101@debian.org>
2256
2257         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2258         to qdbusconnection_p.moc.
2259
2260 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2261
2262         * README, INSTALL: Doc fixes
2263         Patch from Brad Hards <bradh at frogmouth.net>
2264
2265 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2266
2267         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2268         the dynamic meta object. No need to guess which interface to
2269         call.
2270
2271 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2272
2273         * qt/qdbusconnection_p.h:
2274         * qt/qdbusmetaobject.cpp:
2275         * qt/qdbusmetaobject_p.h:
2276         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2277         for the dynamic meta object. No need to guess which
2278         interface to call.
2279         * qt/qdbusabstractinterface_p.h:
2280         * qt/qdbusconnection.cpp:
2281         * qt/qdbusintegrator.cpp:
2282         * qt/qdbusinterface.cpp:
2283         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2284         Add a QDBusRef that looks and behaves like DCOPRef.
2285
2286 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2287
2288         * dbus/dbus-connection.c: Interfaces are optional in method
2289         calls, so don't give up if the interface parameter is NULL.
2290         Patch reviewed by Havoc Pennington.
2291
2292 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2293
2294         * qt/qdbusreply.h: Add default constructor and operator=
2295           (r532625)
2296         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2297           in public headers (r532952)
2298         * qt/qdbusabstractinterface.cpp:
2299         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2300           make it the default (r532951)
2301
2302 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2303
2304         * dbus/dbus-connection.c: Fix asserts
2305         Patch from Tim Moloney <t.moloney at verizon.net>
2306
2307 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2308
2309         * mono/Connection.cs, mono/Message.cs: Check Target type
2310         Patch from Aaron Bockover (abockover at novell.com)
2311
2312 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2313
2314         * INSTALL: fine-tune the requirements for the Qt4 binding.
2315
2316 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2317
2318         * tools/dbus-print-message.c: Added support for printing of all 
2319           remaining data types. Fixed logic for indentation of compound
2320           data types.
2321         
2322 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2323
2324         * INSTALL: fill out content of file providing DBus specific
2325           build installations, followed by generic Auto* INSTALL file
2326           content
2327         
2328 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2329
2330         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2331           Patch by Stefan Eilers. (r529537)
2332
2333 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2334
2335         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2336           contents (r528208)
2337
2338 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2339
2340         * qt/Makefile.am: fix the dependency for
2341           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2342           not in qdbusconnection.cpp.
2343           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2344           spotting this.
2345
2346 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2347
2348         * qt/examples/listnames.cpp:
2349         * qt/examples/Makefile.am: Three ways to list the names on the
2350           bus.
2351
2352 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2353
2354         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2355           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2356
2357 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2358
2359         Merge from Subversion:
2360         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2361           something that exists (r526315)
2362         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2363           slots/signals (r526316)
2364         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2365           also return an unknown-method error if the parameters don't
2366           match for org.freedesktop.DBus.Properties. (r526842)
2367         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2368         * qt/qdbusintegrator.cpp: Restore the proper order of
2369           delivery: don't make method returns be delivered on priority
2370           (r528150)
2371
2372 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2373
2374         * configure.in qt/Makefile.am: add qt/examples
2375         * qt/examples: Add QtDBus example programs:
2376           - hello: Hello, World
2377           - ping: Simple method-calling program
2378           - pong: Simple object-exporting program (not using adaptors)
2379           - complexping: Interactive method-calling program 
2380                 (also gets and sets properties).
2381           - complexpong: Sample program exporting methods, signals and
2382                 properties, using adaptors.
2383           - dbus: Simple implementation of a generic method-calling
2384                 program, similar to 'dbus-send', but with semantics
2385                 similar to 'dcop'.
2386           - chat: Simplistic chat program, implemented using signals
2387                 and the system bus. Looks like IRC.
2388
2389 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2390
2391         * configure.in: Detect QtGui (necessary for one of the
2392           example programs). Note: this increases the minimum required
2393           version of Qt to 4.1.3.
2394
2395 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2396
2397         * test/qt/*: Sync with KDE Subversion revision 523647.
2398         Update the testcases to the new API. Remove testcases for
2399         classes that are no longer public or have been removed.
2400
2401 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2402
2403         * qt/*: 
2404         * dbus/qdbus.h: Sync with KDE Subversion revision
2405         523647. Hopefully, this will be the last of the
2406         source-incompatible changes. Documentation has been improved;
2407         support for QList<basic-types> has been added; QDBusObject is
2408         gone; QDBus(Abstract)Interface is now a QObject with
2409         auto-generated meta-object; QDBusIntrospection is marked
2410         private, since QMetaObject can be used now; lots of bugfixes.
2411
2412 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2413
2414         Patch from Milosz Derezynski <internalerror at gmail.com>
2415         
2416         * configure.in:
2417         Output the service directory in the configure summary
2418
2419         * dbus-1.pc.in:
2420         Add session_bus_services_dir
2421
2422 2006-03-10  Ross Burton  <ross@openedhand.com>
2423
2424         * tools/dbus-print-message.c:
2425         Add support for object paths and signatures.
2426
2427 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2428
2429         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2430         config reload.
2431         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2432         information caches
2433         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2434         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2435         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2436         * dbus/dbus-userdb.h: Add function to flush all user/group information
2437         caches.
2438
2439 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2440
2441         * qt/dbusidl2cpp.cpp:
2442         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2443         for dcopidl2cpp, found in the KDE installations (or the more
2444         modern kalyptus): generate Qt4 C++ code for the input XML
2445         introspection. Currently no IDL parsing.
2446
2447 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2448
2449         * test/qt/*: Update the self-tests.
2450
2451 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2452
2453         * qt/*: 
2454         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2455         represents the first feature-complete version of the Qt4
2456         bindings since I took ove maintainership.
2457
2458 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2459
2460         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2461         dir. This is C++, so we can't use the DBus ones.
2462
2463 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2464
2465         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2466         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2467
2468 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2469
2470         * dbus/dbus-connection.c: 
2471         (_dbus_connection_block_pending_call):
2472         Check to see if our data has already been read off the connection
2473         by another blocking pending call before we block in poll.
2474         (check_for_reply_and_update_dispatch_unlocked):
2475         Code taken from _dbus_connection_block_pending_call - checks for
2476         an already read reply and updates the dispatch if there is one.
2477
2478         * test/name-test/test-pending-call-dispatch.c:
2479         New test for making sure we don't get stuck polling a 
2480         dbus connection which has no data on the socket when
2481         blocking out of order on two or more pending calls.
2482
2483 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2484
2485         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2486         make/automake don't detect that we're talking about the same
2487         .lo file if I specify the full path to the source files.
2488
2489 2006-02-26  Havoc Pennington  <hp@redhat.com>
2490
2491         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2492
2493         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2494         session bus variable is unset, suggest "man dbus-launch" and "man
2495         dbus-daemon" to figure out how to fix the problem
2496
2497 2006-02-25  Havoc Pennington  <hp@redhat.com>
2498
2499         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2500         should make this thing use the new glib options parser
2501
2502 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2503
2504         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2505         .lo files taking moc sources.
2506
2507 2006-02-25  Havoc Pennington  <hp@redhat.com>
2508
2509         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2510         and install it as a public header
2511
2512 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2513
2514         * Released 0.61
2515
2516 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2517         
2518         * proxies.py: Fix the callchain
2519
2520 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2521         
2522         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2523
2524         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2525         dbus/dbus-sysdeps.c
2526
2527         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2528         call _dbus_group_info_free_allocated which causes infinite loop,
2529         correctly call _dbus_group_info_free
2530
2531 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2532
2533         * qt/qdbusinterface_p.h:
2534         * qt/qdbusinterface.cpp: Use the standard
2535         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2536         calls instead of creating one for us.
2537
2538         * qt/qdbusconnection_p.h:
2539         * qt/qdbusintegrator.cpp: Remove debugging code.
2540
2541         * qt/qdbusintegrator.cpp:
2542         * qt/qdbusmessage.cpp:
2543         * qt/qdbusmessage_p.h:
2544         * qt/qdbusmessage.h: Change the behaviour of automatic
2545         reply-sending: now a reply is always sent, unless the caller
2546         didn't request one or if the user slot has already sent one.
2547
2548 2006-02-16  Robert McQueen  <robot101@debian.org>
2549
2550         * configure.in: Patch from Debian packages by Sjoerd Simons
2551         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2552         arguments so it's possible to build both bindings in the
2553         same tree.
2554
2555         * qt/Makefile.am: Fix truncated value so that make dist works.
2556
2557 2006-02-16  Robert McQueen  <robot101@debian.org>
2558
2559         * acinclude.m4, configure.in: Patch from Brad Hards
2560         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2561         improving quoting, re-ordering a few checks, and a few other
2562         aesthetic tidy-ups.
2563
2564 2006-02-16  Robert McQueen  <robot101@debian.org>
2565
2566         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2567         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2568         assertion that the next element to read from the iter is fixed in
2569         size. This is not the case when you are at the end of the iter,
2570         because the next element type is INVALID.
2571
2572         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2573         a bogus assert which means that you may not initialise a 0-length
2574         string unless you provide a non-NULL pointer. This prevented
2575         you from marshalling messages containing zero-length arrays in
2576         some cases.
2577
2578         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2579         from Rob to correct bogus asserts when trying to demarshal an
2580         array and get_fixed_array got you 0 elements. Append nothing to
2581         the GArray in this case.
2582
2583         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2584         an empty array via the glib bindings. Without all of the above
2585         patches, this new test fails.
2586
2587 2006-02-16  Robert McQueen  <robot101@debian.org>
2588
2589         * glib/dbus-gmain.c: Make the previous commit compile.
2590
2591         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2592         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2593         specify sender_keyword="foo", path_keyword="bar" when adding
2594         a signal listener, so that you can bind to signals generically
2595         but still do something useful in your callback.
2596
2597         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2598         chars so that they're not cast to chars and made negative. Thanks
2599         to Jakub Stachowski for reporting this and testing the fix.
2600
2601 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2602
2603         * dbus/dbus-glib.h:
2604         * glib/dbus-gmain.h:
2605         (dbus_g_connection_open): new method for openning
2606         a connection to an arbitrary address in the glib bindings
2607
2608         * ChangeLog: checkin last entry which doesn't seem to be commited
2609
2610 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2611
2612         * tools/dbus-launch.c: Fixed sh syntax output
2613
2614 2006-02-13  Robert McQueen  <robot101@debian.org>
2615
2616         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2617         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2618         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2619         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2620         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2621         missing piece of the glib bindings jigsaw puzzle. This modifies
2622         the existing specialised types to have N type parameters (rather
2623         than the current 1 or 2 for arrays and dictionaries respectively).
2624         You can then use this to get a glib type to represent any arbitrary
2625         D-Bus struct type using dbus_g_type_get_struct. The only
2626         implementation of these types is with GValueArrays as before,
2627         but it's now possible to store these in arrays, emit them in
2628         signals, etc.
2629
2630 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2631
2632         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2633         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2634         <thiago.macieira at trolltech.com>
2635
2636 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2637
2638         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2639         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2640
2641 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2642
2643         * bus/connection.c (bus_connections_expect_reply): Make
2644         pending reply limit not common to all connections (Bug #5416)
2645         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2646
2647 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2648
2649         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2650
2651 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2652
2653         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2654         patch from Doug Goldstein <cardoe at gentoo.org>
2655
2656 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2657
2658         * mono/Arguments.cs: Fix a magic number in the mono bindings
2659         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2660
2661 2006-01-27  Robert McQueen  <robot101@debian.org>
2662
2663         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2664         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2665         when generating the client-side methods, instead of overloading
2666         CSymbol which broke everything horribly. My apologies.
2667
2668 2006-01-27  Robert McQueen  <robot101@debian.org>
2669
2670         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2671         by me and Rob Taylor to add a simple_free function to D-Bus map
2672         and collection types, which allows those types which can be freed
2673         with a GDestroyNotify (such as GHashTables and GArrays, but not
2674         GPtrArrays) to be stored as the values in hashtables.
2675
2676         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2677         Patch by Rob Taylor to add nested dicts to the glib tests to check
2678         the above code works, and appears not to leak when called repeatedly.
2679
2680 2006-01-27  Robert McQueen  <robot101@debian.org>
2681
2682         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2683         to free a D-Bus allocated string with dbus_free () instead of
2684         g_free ().
2685
2686 2006-01-27  Iain Holmes  <iain@openedhand.com>
2687
2688         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2689         method from being called multiple times.
2690
2691 2006-01-19  Robert McQueen  <robot101@debian.org>
2692
2693         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2694         <rob.taylor@collabora.co.uk> to add support for generating bindings
2695         to arrays that are represented as GPtrArrays rather than GArrays (ie
2696         size-variable things, such as strings, objects, structs, etc).
2697
2698 2006-01-05  Robert McQueen  <robot101@debian.org>
2699
2700         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2701         <ricardo.kekki@movial.fi> to make it possible to inherit from
2702         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2703         a private part, and moving the setting of the DBusGProxyManager into a
2704         connection property, allowing proper GObject construction.
2705
2706 2006-01-05  Robert McQueen  <robot101@debian.org>
2707
2708         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2709         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2710         annotations when generating glib client bindings.
2711
2712 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2713
2714         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2715
2716         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2717
2718 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2719
2720         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2721
2722 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2723
2724         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2725
2726 2005-12-19  Ross Burton  <ross@openedhand.com>
2727
2728         * doc/dbus-tutorial.xml:
2729         Document the Glib client-side bindings, and list all possible annotations.
2730
2731 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2732
2733         * dbus/bus.c (dbus_bus_release_name): Add documentation
2734
2735 2005-12-06  Robert McQueen  <robot101@debian.org>
2736
2737         * python/service.py: s/sucessful/successful/ so we're allocating to
2738         and reading from the same variable. Oops.
2739
2740 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2741
2742         * Released 0.60
2743
2744 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2745
2746         * test/qt/Makefile.am: build from srcdir
2747
2748         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2749         Note - this code is wrong and needs to be fixed by the Qt binding
2750         developers.  The flags should be treated as bitfields and not enums.
2751
2752         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2753
2754 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2755
2756         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2757           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2758           in production code
2759
2760 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2761
2762         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2763         method for getting messages off the bus in the absence of a
2764         mainloop.  This method is much like 
2765         dbus_connection_read_write_dispatch except it does not dispatch
2766         the messages to a registered filter function.  Instead it
2767         allows a developer to process messages by directly popping
2768         them off the bus.
2769
2770 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2771
2772         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2773         the parser to continue instead of returning error
2774         (bus_desktop_file_load): Do not free parser data when
2775         parse_section_start or parse_key_value fails because it was 
2776         already freed by parser_free (patch from Carlos Garcia Campos  
2777         <carlosgc at gnome.org>)
2778
2779 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2780
2781         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2782         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2783         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2784         test/test-segfault.c, test/test-utils.c,
2785         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2786         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2787         Various cleanup of dead code and compiler warnings (patch from
2788         Kjartan Maraas <kmaraas at gnome.org>) 
2789
2790 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2791
2792         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2793         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2794
2795 2005-11-27  Robert McQueen  <robot101@debian.org>
2796
2797         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2798         part of the preceding one. Oops. Merge patch by Johan Hedberg
2799         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2800         on big-endian platforms.
2801
2802         * test/python/test-client.py: Add some 16-bit integers to the test
2803         values.
2804
2805 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2806
2807         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2808         method return message for property getters
2809
2810 2005-11-27  Robert McQueen  <robot101@debian.org>
2811
2812         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2813         with type v of an instance of dbus.Variant(foo, type='x') caused
2814         it to be boxed twice before sending over the bus.
2815
2816         * python/dbus_bindings.pyx, python/service.py,
2817         test/python/test-client.py: Update the constants for the new
2818         request_name flags, and update comments/test cases now that queueing
2819         is the default action.
2820
2821 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2822
2823         * configure.in:
2824         - Change version to 0.60 for impending release
2825         - upped the sonames because of ABI and API breakage
2826
2827 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2828
2829         * configure.in: Add test/name-test/Makefile to the generated
2830         Makefile list
2831
2832         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2833         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2834         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2835         not to queue an ower if it can't be the primary owner
2836
2837         * bus/bus.h: Add new internal BusOwner struct
2838
2839         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2840         to bus_registry_ensure and don't set the prohibit_replacement flag
2841         since they are now set per BusOwner and not per name.
2842         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2843         that returns the list of connections in a name's connection queue
2844         
2845         * bus/services.c (struct BusService): remove prohibit_replacement field
2846         (struct BusOwner): new struct for keeping track of queued connections
2847         and their associated flags for the queue
2848         (struct BusRegistry): add a BusOwner memory pool
2849         (bus_registry_new): initialize the BusOwner memory pool
2850         (bus_registry_unref): free the BusOwner memory pool
2851         (_bus_service_find_owner_link): new internal method for
2852         searching the queue for a specific connection
2853         (bus_owner_set_flags): new method for adding setting the flags on a
2854         bus owner
2855         (bus_owner_new): new method that creates a BusOwner object from the
2856         pool and sets its flags
2857         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2858         (bus_registry_ensure): Add the flags parameter
2859         (bus_registry_acquire_service): Switch from using raw connections to
2860         using the BusOwner struct
2861         Add new state machine for dealing with the new set of flags
2862         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2863         cancel_ownership, free_ownership_cancel_data, 
2864         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2865         restore_ownership, free_ownership_restore_data, 
2866         add_restore_ownership_to_transaction): Switch to using BusOwner 
2867         instead of raw connections
2868         (bus_service_add_owner): Add flags parameter
2869         Switch to using BusOwner instead of raw connections
2870         Add state machine for dealing with the new set of flags
2871         (bus_service_swap_owner): Swaps the first and second owners in the
2872         queue.  Used to make sure proper signals are sent when a service looses 
2873         or gains primary ownership.  We never insert an owner at the top of the
2874         queue.  Instead we insert it in the second position and then swap.
2875         (bus_service_remove_owner): Remove the owner from the queue sending
2876         out the NameLost and NameOwnerChanged signals if the we were the 
2877         primary owner
2878         (bus_service_get_primary_owners_connection): New method that extracts
2879         the connection from the primary owner
2880         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2881         connection
2882         (bus_service_get_allow_replacement): Changed from the old 
2883         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2884         primary owner and returns if it can be replaced or not
2885         (bus_service_set_prohibit_replacement): removed
2886         (bus_service_has_owner): returns TRUE if and owner with
2887         the specified connection exists in the queue
2888         
2889         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2890         method that only compiles if tests are enabled.  Allows us to get the 
2891         unique name of a connection so we can check it against the queue when
2892         doing regression tests
2893
2894         * bus/activation.c (bus_activation_send_pending_auto_activate),
2895         bus/dispatch.c (bus_dispatch),  
2896         bus/driver.c (bus_driver_handle_get_service_owner, 
2897         bus_driver_handle_get_connection_unix_user, 
2898         bus_driver_handle_get_connection_unix_process_id,
2899         bus_driver_handle_get_connection_selinux_security_context),
2900         bus/signals.c (connection_is_primary_owner): 
2901         use bus_service_get_primary_owners_connection instead of
2902         bus_service_get_primary_owner
2903
2904         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2905         _dbus_listen_unix_socket): Calculate the length of the socket
2906         path and use that instead of using a fixed length which was
2907         causing socket names to contain many trailing Nul bytes.
2908
2909         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2910         (dbus_g_method_get_sender): New method for extracting the sender 
2911         from a DBusGMethodInvocation
2912         (dbus_g_method_return_get_reply): changed name to 
2913         dbus_g_method_get_reply
2914         (dbus_g_method_return_send_reply): changed name to
2915         dbus_g_method_send reply
2916
2917         * doc/dbus-specification.xml: New docs that describe how the new
2918         queueing system works and talks about the changes to the how
2919         we specify socket names
2920
2921         * glib/examples/example-service.c, 
2922         glib/examples/example-signal-emitter.c,
2923         glib/examples/statemachine/statemachine-server.c:
2924         Changed the RequestName flags to the new system
2925
2926         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2927         regression test suite for testing various states of the new
2928         queueing system
2929         
2930 2005-11-15  Robert McQueen  <robot101@debian.org>
2931
2932         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2933         Taylor to add two methods, dbus_g_method_return_get_reply and
2934         dbus_g_method_return_send_reply, to allow you to get the reply
2935         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2936         and send it. The GLib bindings can't marshal a return value of
2937         something like a(s) if the array is empty - ultimately they should be
2938         made to heed the signature of the out arguments as the Python bindings
2939         now can, but this is a workable interim solution which might have
2940         other applications.
2941
2942 2005-11-15  Robert McQueen  <robot101@debian.org>
2943
2944         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2945         method to org.freedesktop.DBus to release a bus name or give up
2946         waiting in the queue for it.
2947
2948         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2949         dbus_bus_release_name method to send the ReleaseName method calls.
2950         Add constants for the return values to dbus/dbus-shared.h.
2951
2952         * doc/dbus-specification.xml: Document the new ReleaseName method
2953         in the specification.
2954
2955         * python/dbus_bindings.pyx: Add a low-level python binding for the
2956         release name method.
2957
2958         * python/exceptions.py, python/service.py: Make freeing BusName
2959         objects release the name. Add a NameExistsException, and fix a
2960         bug with creating UnknownMethodException.
2961
2962         * test/python/test-client.py: Add tests for freeing BusName
2963         objects causing names to be released.
2964
2965 2005-11-14  Robert McQueen  <robot101@debian.org>
2966
2967         * python/service.py: Include the traceback in the error reply when we
2968         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2969
2970 2005-11-14  David Zeuthen  <davidz@redhat.com>
2971
2972         Patch from Timo Hoenig <thoenig@suse.de>.
2973
2974         * bus/bus.c: I've recently investigated why the automatic reload
2975         of configuration files does not work as expected.
2976
2977         Currently, reloading configuration files does only work when
2978         running dbus-daemon with --nodaemon.  If we are running as daemon
2979         we're hitting a dnotify bug once we fork the process.
2980
2981         We're initializing the dnotify fds before calling fork().  Once
2982         the child process forked it does still have the fds (and they
2983         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2984         getting SIGIO as changes are made to the configuration files.
2985
2986         The attached patch moves the initialization of the dnotify fds to
2987         process_config_postinit().  This is safe for all current code
2988         paths and solves the dnotify disfunction.  If we're running
2989         dbus-daemon as daemon the fds for dnotify are now being
2990         initialized after fork() for the child process.
2991
2992         * configure.in: The current configure.in check for dnotify probes
2993         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2994         match for 'xlinux', too. Additionally I have adapted the configure
2995         option's style to match with the others.
2996
2997 2005-11-14  Robert McQueen  <robot101@debian.org>
2998
2999         * python/decorators.py, python/service.py: Add a new argument to the
3000         dbus.service.method decorator called sender_keyword, which if set,
3001         specifies the name of an argument which will be provided the bus
3002         name of the method caller.
3003
3004         * test/python/test-client.py, test/python/test-service.py: Add a
3005         method and test to check the sender_keyword functionality.
3006
3007 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
3008
3009         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
3010         empty reply so blocking calls don't block forever (Patch from Sjoerd 
3011         Simons <sjoerd at luon.net>)
3012
3013         * AUTHORS: Add Robert McQueen for his work on the Python
3014         Bindings and other parts of D-Bus
3015
3016 2005-11-07  Robert McQueen  <robot101@debian.org>
3017
3018         * python/decorators.py: Change emit_signal function to use the
3019         signature annotation of the signal when marhsalling the arguments from
3020         the service. Fix a bug where the code checking signature length
3021         against argument length referenced the wrong variable.
3022
3023         * python/introspect_parser.py: Avoid adding the type signature of
3024         signal arguments to any methods which occur after them in the
3025         introspection data (!) by making the parser a little more careful
3026         about its current state.
3027
3028         * python/service.py: Remove debug prints from last commit (again :D).
3029
3030         * test/python/test-client.py, test/python/test-service.py: Add test
3031         signals with signature decorators to test the strict marshalling code
3032         gives errors at the right time. Could do with checking the signals
3033         actually get emitted too, given that the test does nothing with
3034         signals at the moment...
3035
3036 2005-11-07  Robert McQueen  <robot101@debian.org>
3037
3038         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
3039         instances to stop madness of creating new instances representing
3040         the same bus connection all the time, rendering any tracking of
3041         match rules and bus names quite meaningless. Caught a bug where
3042         the private argument to SessionBus() and friends was being passed
3043         in as use_default_mainloop by mistake. Still some problems with
3044         multiple dbus_binding.Connection instances representing the same
3045         low-level connection (eg when you use both SessionBus() and
3046         StarterBus() in same process), but it's a lot better now than it
3047         was.
3048
3049         * python/dbus_bindings.pyx: Add constants with the return values
3050         for bus_request_name().
3051
3052         * python/service.py: Store bus name instances in a per-dbus.Bus cache
3053         and retrieve the same instances for the same name, so deletion can be
3054         done with refcounting. Also now throws some kind of error if you
3055         don't actually get the name you requested, unlike previously...
3056
3057         * test/python/test-client.py: Add tests for instance caching of buses
3058         and bus name objects.
3059
3060 2005-11-04  Robert McQueen  <robot101@debian.org>
3061
3062         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
3063         marshalling of boolean values. Add some booleans to the values in
3064         the test client.
3065
3066         * python/decorators.py, python/service.py: Add an 'async_callbacks'
3067         argument to the dbus.service.method decorator, which allows you to
3068         name arguments to take two callback functions for replying with
3069         return values or an exception.
3070
3071         * test/python/test-client.py, test/python/test-service.py: Add test
3072         case using asynchronous method reply functions, both return values and
3073         errors, and from within both the function itself and from a mainloop
3074         callback.
3075
3076         * python/decorators.py, python/service.py: Perform checking that the
3077         number of method/signal arguments matches the number of types in the
3078         signature at class loading time, not when you first introspect the
3079         class.
3080
3081         * python/service.py: Remove debug print left by the last commit.
3082
3083 2005-11-03  Robert McQueen  <robot101@debian.org>
3084
3085         * python/service.py: Heavy refactoring of method invocation, with
3086         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
3087         in favour of a new _message_cb that uses seperate functions for
3088         looking up the method to call, marshalling the return values, and
3089         sending exceptions as errors, and is easier to follow as a
3090         consequence.  Fixes some corner cases about returning things that
3091         don't match your declared out_signature, allows exceptions to define
3092         _dbus_error_name and have it be sent over the bus as the error name,
3093         and paves the way for cool stuff like heeding the message no reply
3094         flag, asynchronous method implementations, informing the method of the
3095         sender, and including backtraces in the error messages.
3096
3097         * test/python/test-client.py: Catch and print exceptions thrown in the
3098         async callback tests, rather than passing them to the low-level
3099         bindings to be ignored in a noisy and frustrating manner.
3100
3101 2005-11-03  Robert McQueen  <robot101@debian.org>
3102
3103         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
3104         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
3105         tweak others to be consistent.
3106
3107         * test/python/test-client.py: Tweak output of testInheritance.
3108
3109 2005-10-29  Robert McQueen  <robot101@debian.org>
3110
3111         * python/service.py: Major changes to allow multiple inheritance
3112         from classes that define D-Bus interfaces:
3113         
3114          1. Create a new Interface class which is the parent class of
3115             Object, and make the ObjectType metaclass into InterfaceType.
3116         
3117          2. Patch written with Rob Taylor to replace use of method_vtable
3118             with code that walks the class's __MRO__ (method resolution order)
3119             to behave like Python does when invoking methods and allow
3120             overriding as you'd expect. Code is quite tricky because
3121             we have to find two methods, the one to invoke which has the
3122             right name and isn't decorated with the /wrong/ interface,
3123             and the one to pick up the signatures from which is decorated
3124             with the right interface.
3125         
3126             The same caveats apply as to normal multiple inheritance -
3127             this has undefined behaviour if you try and inherit from two
3128             classes that define a method with the same name but are
3129             decorated with different interfaces. You should decorate
3130             your overriding method with the interface you want.
3131         
3132          3. Replace grungy introspection XML generation code in the metaclass
3133             with dictionaries that cope correctly with multiple inheritance
3134             and the overriding of methods. This also uses the signature
3135             decorations to provide correct introspection data, including
3136             the debut appearance of the types of your return values. :D
3137
3138         * test/python/test-client.py, test/python/test-service.py: Add a test
3139         case to try invoking an method that overrides one inherited from a
3140         D-Bus interface class.
3141
3142 2005-10-29  Robert McQueen  <robot101@debian.org>
3143
3144         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
3145         Add checking for the end of struct character when marshalling a
3146         struct in MessageIter.append_strict.
3147
3148         * python/examples/example-service.py,
3149         python/examples/gconf-proxy-service.py,
3150         python/examples/gconf-proxy-service2.py: Update to use gobject
3151         mainloop directly rather than appearing to depend on gtk.
3152
3153         * python/test/test-client.py, python/test/test-server.py: Remove
3154         obsolete and broken test scripts for old bindings. We have up to date
3155         and working tests in test/python/.
3156
3157 2005-10-29  Robert McQueen  <robot101@debian.org>
3158
3159         * python/decorators.py: Add optional arguments to the method and
3160         signal decorators to allow you to specify the signature of arguments
3161         and return values. Preserve the doc strings of signal functions in the
3162         decorated version, for pydoc and friends.
3163
3164         * python/dbus_bindings.pyx, python/proxies.py: Replace the
3165         parse_signature_block function with an iterable dbus.Signature()
3166         type. Fix a bug in MessageIter.append_strict where you could append
3167         anything by claiming it was a string.
3168
3169         * python/service.py: Use the out_signature decoration on methods to
3170         marshal return values, meaning you no longer require dbus.Array()
3171         or dbus.Dictionary() to indicate the type when returning empty
3172         arrays or dictionaries. Fix a bug where exceptions which are defined
3173         in __main__ are not turned into error replies.
3174
3175         * test/python/test-client.py, test/python/test-service.py: Add test
3176         for correct marshalling of return values according to out_signature.
3177         Fix a bug in the async call test where the error_handler is missing a
3178         self argument.
3179
3180 2005-10-29  Robert McQueen  <robot101@debian.org>
3181
3182         * glib/Makefile.am, glib/examples/Makefile.am,
3183         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
3184         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
3185
3186         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
3187
3188         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
3189         from Ubuntu by Daniel Silverstone to allow specifying match rules on
3190         the command line.
3191
3192 2005-10-27  Ross Burton  <ross@openedhand.com>
3193
3194         * dbus/dbus-marshal-header.c:
3195         Remove dead code.
3196
3197         * glib/dbus-gobject.c:
3198         Stop compiler warning.
3199
3200 2005-10-25  Ross Burton  <ross@openedhand.com>
3201
3202         * dbus/dbus-auth.c:
3203         * dbus/dbus-server-unix.c:
3204         * dbus/dbus-transport-unix.c:
3205         * glib/dbus-gmain.c:
3206         * glib/dbus-gobject.c:
3207         Add some const keywords.
3208
3209 2005-10-25  Ross Burton  <ross@openedhand.com>
3210
3211         * doc/dbus-specification.xml:
3212         Document the NoReply annotation.
3213
3214         * glib/dbus-binding-tool-glib.h:
3215         * glib/dbus-binding-tool-glib.c:
3216         Respect the NoReply annotation.
3217
3218 2005-10-24  Robert McQueen <robot101@debian.org>
3219
3220         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3221         derive from unicode instead of str, and encode/decode UTF-8 when
3222         marshalling/unmarshalling bus messages
3223
3224         * python/introspect_parser.py: encode introspection data as UTF-8
3225         before passing the buffer into libxml2
3226
3227         * test/python/test-client.py: add unicode test strings
3228
3229         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3230         ignore generated python test files
3231
3232 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3233
3234         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3235         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3236         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3237
3238         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3239         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3240         when constructing struct signatures
3241
3242         * python/_dbus.py (Bus): handle private connections using the
3243         private keyword in the constructor. defaults to private=False
3244         (Bus::close): new method to close a connection to the bus
3245
3246         * python/dbus_bindings.pyx (Connection::close): renamed method
3247         was previously called disconnect
3248         (bus_get): now supports getting a private connection
3249
3250         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3251         keyword is set to True.  if it is, execute the method without waiting
3252         for a reply
3253         (ProxyObject::_introspect_execute_queue): new method for executing
3254         all the pending methods that were waiting for the introspect to
3255         finish.  this is called when introspect either succeeds or fails
3256         (ProxyObject::_introspect_error_handler): call queued methods
3257
3258 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3259
3260         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3261         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3262
3263         * python/service.py (Object::_message_cb): handle exceptions correctly
3264         by sending them over the wire to the calling app.  This makes sure
3265         the client returns immediately instead of waiting the 15 seconds to
3266         timeout.
3267
3268         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3269         Add a test to benchmark how long it takes to introspect a service and 
3270         call a method which returns a large element (pretty fast)
3271
3272         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3273         method which pushes a lot of data
3274
3275 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3276
3277         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3278         reclaim memory outside of the loop and use del istead of just setting
3279         the key to None
3280
3281 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3282
3283         * python/service.py (ObjectType::_reflect_on_signal): Always close
3284         signal tag even when there are no arguments
3285
3286 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3287
3288         * configure.in: Set mono, mono-docs and Qt3 to default
3289         to no instead of auto when building.  These bindings do not
3290         have full time maintainers and will not be supported for the
3291         1.0 release.
3292
3293 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3294
3295         patches from Michael Krivoruchko <misha at sun.com>: 
3296         
3297         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3298         _dbus_connection_message_sent, 
3299         _dbus_connection_send_preallocated_unlocked_no_update, 
3300         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3301         is NULL when calling _dbus_verbose
3302
3303         * configure.in: check for functions getpeerucred and getpeereid
3304
3305         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3306         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3307         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3308         Patch was only tested on Solaris 10 x86 so it might be issues
3309         with other platforms (i.e. BSDs and MacOSX)
3310         
3311
3312 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3313
3314         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3315         instead of marshal basic so we can handle recursive types in a variant
3316
3317         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3318         in variants
3319
3320         * test/glib/test-service-glib.c, test-service-glib.xml
3321         (my_object_echo_variant [EchoVariant], 
3322         my_object_process_variant_of_array_of_ints123
3323         [ProcessVariantOfArrayOfInts123]): 
3324         Add two test methods
3325
3326         * python/introspect_parser.py: New module for parsing introspect
3327         data.
3328
3329         * python/dbus_bindings.pyx:
3330         (various places): when throwing errors fix to use errormsg instead 
3331         of message local variable because Pyrex can get confused with other 
3332         message variables (initial patch by Robert McQueen 
3333         <robert.mcqueen at collabora.co.uk>)
3334         (MessageIter::parse_signature_block): new method for getting the next
3335         block in a signiture.
3336         (MessageIter::append_strict): new method for appending values strictly
3337         using the passed in signature instead of guessing at the type
3338         (MessageItter:: append_dict, append_struct, append_array): use 
3339         signatures to marshal children if the signature is available
3340         
3341         * python/exceptions.py (IntrospectionParserException): new exception
3342
3343         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3344         introspected signatures if available, else we fall back to the
3345         old way of doing things.
3346         (ProxyObject::_introspect_reply_handler ): parse introspection data
3347         
3348         * python/service.py (ObjectType::_reflect_on_method): Properly
3349         terminate <method> if there are no args in the reflection data
3350
3351         * test/python/test-client.py: add tests for talking with the GLib
3352         test server.  This gives us better coverage for introspection since
3353         python to python will always generate arguments as variants.  It also
3354         allows us to test the robustness of the GLib bindings and interlanguage
3355         communications.
3356
3357         
3358 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3359
3360         * bus/driver.c (bus_driver_handle_introspect): Add signals
3361         to the introspect data. (patch from Daniel P. Berrange 
3362         <dan at berrange.com>)
3363
3364         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3365         
3366         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3367         _dbus_connection_run_builtin_filters): Changed these to
3368         be unlock_no_update functions and call 
3369         _dbus_connection_send_unlocked_no_update instead of
3370         dbus_connection_send to avoid locking errors.
3371         
3372         * doc/TODO: Removed the make Ping test TODO
3373         
3374 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3375
3376         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3377         We now copy the message from a DBusError and then free 
3378         the error object befor throwing the error
3379
3380         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3381         DBusBindingOutputMode enum which was causing a warning.
3382         #include <time.h> so using time_t is explicitly defined
3383
3384 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3385
3386         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3387         - dbus/dbus-bus.c
3388         (internal_bus_get): new method that take over the heavy lifting
3389         of dbus_bus_get and adds the ability to get a private connection
3390         to the bus
3391         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3392         interface as in previous versions
3393         (dbus_bus_get_private): new method that is a wrapper to 
3394         internal_bus_get to get a private connection to the bus
3395
3396         - dbus/dbus-bus.h
3397         (dbus_bus_get_private): add as a public libdbus interface
3398
3399         - dbus-1.pc.in: output system_bus_default_address and 
3400         sysconfdir variables so apps can use them when compiling
3401
3402 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3403         * dbus/qt: New Qt bindings
3404
3405 2005-09-12  Waldo Bastian  <bastian@kde.org>
3406
3407         * dbus/dbus-marshal-validate.c,
3408         doc/dbus-specification.xml, test/Makefile.am,
3409         test/test-names.c: allow hyphens in bus names.
3410
3411 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3412
3413         * test/data/auth/fallback.auth-script: we don't
3414         retry the EXTERNAL method when we know its going
3415         to fail anymore.
3416
3417 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3418
3419         * dbus/dbus-connection-internal.h: rename
3420         (add|remove|toggle)_(watch|timeout) to unlocked()
3421         
3422         * dbus/dbus-connection.c: ditto.
3423         
3424         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3425         Update some callers for the renaming.
3426
3427 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3428
3429         * dbus/dbus-auth.c: (record_mechanisms): don't
3430         retry the first auth mechanism because we know
3431         we're just going to get rejected again.
3432         
3433         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3434         Fix thinko ... and what a nasty little bugger to
3435         track down you were ...
3436
3437         * dbus/dbus-connection.c:
3438         (_dbus_connection_add_watch),
3439         (_dbus_connection_remove_watch): add note about
3440         these needing the connection to be locked.
3441         (_dbus_connection_get_dispatch_status_unlocked):
3442         set status to DATA_REMAINS when we queue the
3443         disconnected message.
3444         
3445         * bus/dispatch.c:
3446         (bus_dispatch): fix warning.
3447         (check_existent_service_no_auto_start):
3448         Expect ChildSignaled error too.
3449         (check_existent_hello_from_self): fix another
3450         couple of warnings.
3451         
3452 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3453
3454         Patches from James Willcox <snorp@snorp.net>
3455
3456         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3457
3458         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3459         support array "out" parameters.
3460
3461         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3462         for 16-bit int support.
3463
3464 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3465
3466         * Released 0.50
3467
3468         * Patch from Steve Grubb:
3469         - bus/activation.c (bus_activation_service_reload_test): clean up
3470         some indentation
3471         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3472         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3473         buffer overflows in the test suite.  This is non critical because
3474         it can not be exploited and this code is only run when doing a 
3475         make check.
3476
3477         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3478         - configure.in: Don't check and link against kdecore, only qt headers
3479         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3480         - gcj/org/freedesktop/dbus/Makefile.am:
3481         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3482         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3483         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3484         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3485         - tools/Makefile.am: Add platform extentions to binaries 
3486         (i.e. .exe on windows)
3487
3488         * configure.in: 
3489         - Make it so if no suitable version of python is found we only 
3490         disable building python instead of exiting the configure script
3491         - Require version 2.4 of glib for glib bindings
3492         - Up version to 0.50
3493
3494         * python/__init__.py: Sync version with libdbus to (0,50,0)
3495         
3496 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3497
3498         * dbus/dbus-object-tree.c (find_subtree_recurse):
3499         a couple of optimizations (bug #710):
3500         - do a binary search in the tree
3501         - insert a new child at the right place directly, no need for
3502           qsort anymore
3503         - do the "double alloc" thing when allocating children
3504
3505 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3506
3507         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3508
3509         * python/dbus_bindings.pyx: Memory management foo
3510         (global): remove hacky _user_data_references global list
3511         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3512         tuples. Unref user_data
3513         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3514         (Connection::__del__): Remove and replace with __dealloc__ method
3515         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3516         to keep tuple from being deallocated instead of the global var hack
3517         (Connection::register_object_path): Stuff user_data into a tuple.
3518         Use Py_INCREF to keep tuple from being deallocated instead of the 
3519         global var hack
3520         (Connection::register_fallback): Stuff user_data into a tuple.
3521         Use Py_INCREF to keep tuple from being deallocated instead of the 
3522         global var hack
3523         (GIL_safe_pending_call_notification): Don't unref the message
3524         because it gets unreffed when going out of scope.  Py_XDECREF
3525         the user_data
3526         (PendingCall::__del__): Remove and replace with __dealloc__ method
3527         (PendingCall::set_notify): ref the pending call because we will
3528         need it to stick around for when the notify callback gets called
3529         (Message::__del__): Remove and replace with __dealloc__ method
3530
3531         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3532         gthreads_init to match up with the dbus call
3533
3534         * python/glib.py (init_threads): Changed to threads_init to match
3535         up with gobject.threads_init().  init_threads is kept for backwards
3536         compat but will most likely be deprecated in the future
3537
3538         * test/python/test-client.py: 
3539         - revamp to use Python's unittest functionality
3540         - add async call tests
3541         - setup threads in glib and dbus so we make sure locks are working
3542         
3543 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3544
3545         * python/dbus_bindings.pyx 
3546         (_pending_call_notification, cunregister_function_handler, 
3547         cmessage_function_handler): All callback functions have been rearranged 
3548         to workaround a bug in Pyrex when working with the GIL which is Python's 
3549         global lock when dealing with threads.  They have been split into
3550         a wrapper function (which assumes the name of the old function) and
3551         a _GIL_safe_<function name> function which contains the functionality
3552         of the old function.  This ensures that Pyrex does not write code
3553         the lock is released.
3554         
3555
3556 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3557
3558         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3559         GIL global lock when calling back into Python
3560
3561 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3562
3563         * Release 0.36.2
3564
3565         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3566
3567         * bus/policy.c (bus_policy_allow_user): change default "user is
3568         allowed" to be "user has same uid as the bus itself"; any
3569         allow/deny rules will override.
3570
3571         * bus/session.conf.in: don't allow all users, since now by default
3572         the user that ran the bus can connect.
3573
3574 2005-08-26  Colin Walters  <walters@verbum.org>
3575
3576         * tools/dbus-print-message.c (print_message): Flush stdout
3577         after printing a message, so that redirecting to a file, then
3578         hitting Ctrl-C works.
3579
3580 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3581
3582         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3583         (EmptyMessage): new class that subclasses Message.  This is a workaround
3584         to a Pyrex bug that fails to call __del__ when the Message object goes out
3585         of scope.  For some reason subclassing Message fixes this bug
3586         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3587         - s/Message(_create=0)/EmptyMessage everywhere else
3588         
3589         * test/python/test-{server|client}.py: add the python/.libs directory
3590         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3591         get picked up from the system
3592
3593 2005-08-25  Colin Walters  <walters@verbum.org>
3594
3595         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3596         to Ryan Lortie for the suggestion.
3597
3598 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3599
3600         * test/python: Add python regression test
3601
3602         * configure.in: Add test/python/Makefile
3603
3604         * test/Makefile.am: Add the python directory to SUBDIRS
3605
3606 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3607
3608         * Release 0.36.1
3609
3610         * python/_dbus.py: 
3611         (Interface::connect_to_signal): propigate keywords for match on args
3612         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3613
3614         * python/proxies.py (ProxyObject::connect_to_signal):
3615         propigate keywords for match on args
3616
3617         * Makefile.am: point everything to pyexecdir since python borks
3618         on multilib
3619
3620 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3621
3622         * Release 0.36
3623
3624 2005-08-23  Colin Walters  <walters@verbum.org>
3625
3626         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3627
3628 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3629
3630         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3631         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3632         of defining DBusConnection ourselves.
3633
3634 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3635
3636         * python/dbus.pth: New path file to fix up problems when installing
3637         c libraries to lib64 and python files to lib.
3638
3639         * python/Makefile.am: install dbus.pth in the correct spot
3640
3641 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3642         * ChangeLog: clean up my last entry a bit
3643
3644         * doc/introspect.xsl: New stylesheet for converting introspection data
3645         into browser renderable xhtml. Contributed by Lennart Poettering.
3646
3647         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3648         Poettering.
3649
3650         * doc/dbus-tutorial.xml: 
3651         - Add Colin Walter to the Authors section for authoring the GLib
3652         section
3653         - Add descriptions of the new signature and type functionality
3654         in the Python complex type mapping section
3655         - Add a sidenote on the new args matching functionality in 
3656         the Python bindings
3657         - Fixed up some of the examples to use the gobject.MainLoop
3658         instead of gtk.main
3659         
3660         * python/_dbus.py:
3661         (Bus::_create_args_dict): New. Converts a hash of arg matches
3662         to a more useable format
3663         (Bus::add_signal_receiver): add a **keywords parameter for catching
3664         arg match parameters
3665         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3666         arg match parameters
3667         
3668         * python/matchrules.py:
3669         (MatchTree::exec_matches): Check for arg matches
3670         (SignalMatchRule::add_args_match): New method
3671         (SignalMatchRule::execute): Added args_list parameter as an optimization
3672         so we don't have to marshal the args more than once
3673         (SignalMatchRule::match_args_from_list): New method that checks to see
3674         if the rule's arg matches match an argument list.  Only arguments
3675         set in the rule are checked.
3676         (SignalMatchRule::match_args_from_rule): New method that checks to see
3677         if the rule's arg matches match another rule's.  All args have to match
3678         in order for this method to return true.  If either rule has more args
3679         then it is not a match.
3680         (SignalMatchRule::is_match): Add args match
3681         (SignalMatchRule::repr): Add args to the final output if they exist
3682
3683 2005-08-17  Ross Burton  <ross@burtonini.com>
3684
3685         * glib/dbus-gproxy.c:
3686         (dbus_g_proxy_call_no_reply): unref the message once sent.
3687         (dbus_g_proxy_call): protect against NULL proxy.
3688
3689 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3690
3691         * python/__init__.py: Version updated (0, 43, 0)
3692         
3693         * python/dbus_bindings.pyx: 
3694         - Fixed type objects to have self passed into __init__
3695         - Added the Variant type
3696         - Add the ability to specify types or signatures for Array, Variant 
3697         and Dictionary
3698         (Connection::send_with_reply_handlers): return a PendingCall object
3699         (_pending_call_notification): handle the case when an error is returned 
3700         without an error message in the body
3701         (MessageIter::get_boolean): return True or False instead of an integer
3702         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3703         and add checks for objects with embeded signatures or types (Array, 
3704         Variant and Dictionary)
3705         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3706         (MessageIter::append_dict): handle embeded types or signatures
3707         (MessageIter::append_array): handle embeded types or signatures
3708         (MessageIter::append_variant): new method
3709         
3710         * python/proxies.py:
3711         (DeferedMethod): New. Dummy executable object used when queuing calls 
3712         blocking on introspection data
3713         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3714         or shorter timeouts for method calls
3715         (ProxyObject): Add first pass at an introspection state machine
3716         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3717         introspection. 
3718         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3719         the usual mechanisms for sending messages.  This is to avoid a deadlock
3720         where the Intospect call would be queued waiting for the Introspect 
3721         call to finish ;-)
3722         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3723         when introspection returns with no error
3724         (ProxyObject::_introspect_error_handler): New.  This method is called 
3725         when introspection encounters an error
3726         (ProxyObject::__getattr__): Code to handle different introspection 
3727         states.  Queue async calls or block blocking calls if we are 
3728         introspecting.  Pass through as normal if we are not or are done with 
3729         introspecting.
3730         
3731         * python/service.py: Import signal and method from decorators.py
3732
3733         * python/types.py: Add Variant type
3734
3735 2005-08-16  Colin Walters  <walters@verbum.org>
3736
3737         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3738         DBusError message is NULL.
3739
3740 2005-08-09  Havoc Pennington  <hp@redhat.com>
3741
3742         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3743         malloc'd copy of the name parameter
3744
3745 2005-08-09  Havoc Pennington  <hp@redhat.com>
3746
3747         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3748         warning if the reply serial is set to 0
3749
3750 2005-08-04  Colin Walters  <walters@verbum.org>
3751
3752         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3753         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3754         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3755         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3756         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3757         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3758         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3759         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3760         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3761         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3762         
3763         Prefix name with _ to ensure they're not exported.  All callers
3764         updated.
3765
3766         * glib/dbus-gvalue.c (typecode_to_gtype)
3767         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3768         (signature_iter_to_g_type_dict)
3769         (signature_iter_to_g_type_array)
3770         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3771         (dbus_gtypes_from_arg_signature):
3772         Move to dbus-gsignature.c.
3773
3774         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3775         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3776         (dbus_binding_tool_output_glib_client): Ditto.
3777
3778         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3779         and dbus-gsignature.h
3780
3781         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3782         unused variable.
3783
3784 2005-08-03  Colin Walters  <walters@verbum.org>
3785
3786         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3787         catch any incompatible changes accidentally made.
3788
3789 2005-08-03  Havoc Pennington  <hp@redhat.com>
3790
3791         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3792         typo, from Julien Puydt
3793
3794         * bus/connection.c (bus_connection_disconnected): we were always
3795         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3796
3797 2005-08-01  Colin Walters  <walters@verbum.org>
3798
3799         Patch from Joe Markus Clarke:   
3800         
3801         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3802         use-after-free.
3803
3804 2005-08-01  Colin Walters  <walters@verbum.org>
3805         
3806         Patch from Joe Markus Clarke:   
3807         
3808         * tools/dbus-send.c (main): 
3809         
3810         Don't use C99 style initializers (bug #3933).
3811         
3812 2005-08-01  Colin Walters  <walters@verbum.org>
3813
3814         Patch from Joe Markus Clarke:   
3815
3816         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3817         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3818         * glib/dbus-gobject.c (write_interface):
3819
3820         Don't use C99 style initializers (bug #3933).
3821
3822 2005-07-31  Havoc Pennington  <hp@redhat.com>
3823
3824         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3825         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3826
3827 2005-07-30  Havoc Pennington  <hp@redhat.com>
3828
3829         * fix a bunch of Doxygen warnings and mistakes
3830
3831 2005-07-30  Havoc Pennington  <hp@redhat.com>
3832
3833         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3834         DBUS_BUILD_TESTS since it's now used in production code
3835
3836 2005-07-29  Havoc Pennington  <hp@redhat.com>
3837
3838         * test/glib/test-profile.c (write_junk): initialize the junk
3839         buffer so valgrind doesn't have a breakdown
3840
3841 2005-07-29  Havoc Pennington  <hp@redhat.com>
3842
3843         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3844         (match_rule_matches): remove unused arg
3845         (test_matching): add tests for match_rule_matches()
3846
3847         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3848         do arg0='foo' arg5='bar' in the match rules
3849         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3850
3851         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3852
3853 2005-07-29  Ross Burton  <ross@openedhand.com>
3854
3855         * dbus/dbus-connection.c:
3856         Don't create a DBusCondVar which is never used.
3857
3858 2005-07-27  Ross Burton  <ross@openedhand.com>
3859
3860         * dbus/dbus-message.c:
3861         Reduce the size of the maximum cached message to 10K.
3862
3863 2005-07-25  Ross Burton  <ross@openedhand.com>
3864
3865         * glib/dbus-gproxy.c:
3866         Remove matches when all proxies are unregistered.
3867
3868 2005-07-24  Colin Walters  <walters@verbum.org>
3869
3870         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3871         typedata; recursive arrays won't have it.
3872
3873         * test/glib/test-dbus-glib.c:
3874         * test/glib/test-service-glib.c:
3875         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3876         
3877 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3878
3879         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3880         proxies.py, service.py: Cleanup of code after running it through the
3881         pyflakes code checker mostly dealing with undefined names.  
3882         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3883
3884 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3885
3886         * NEWS: Update to 0.35.2
3887
3888 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3889
3890         * python/_dbus.py: Remove import of the dbus.services
3891         module as it no longer exists (patch from Dimitur Kirov)
3892
3893         * python/service.py (Object::__init__): Fixed typo
3894         s/name/bus_name (patch from Dimitur Kirov)
3895
3896         * python/examples/example-signal-emitter.py: import dbus.glib
3897         to get the main loop and use glib mainloop instead of gtk so
3898         X doesn't have to be running.
3899
3900         * python/examples/example-signal-recipient.py: import dbus.glib
3901         to get the main loop and use glib mainloop instead of gtk so
3902         X doesn't have to be running. Import the decorators module
3903         directly.
3904
3905         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3906         didn't pick up on but are needed to build
3907
3908         * configure.in: upped version to 0.35.2
3909
3910         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3911         added Colin Walters' SELinux API rename patch from head 
3912         s/unix sercurity context/selinux security context/
3913
3914 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3915
3916         * python/Makefile.am: dbus_binding.pxd.in should be included 
3917         in EXTRA_DIST not dbus_binding.pxd
3918         fix up $(srcdir) hopefully for the last time
3919
3920         * NEWS: Update to 0.35.1
3921
3922 2005-07-16  Colin Walters  <walters@verbum.org>
3923
3924         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3925         from bus_driver_handle_get_connection_unix_security_context.  Update for
3926         error usage.
3927         (message_handlers): Update for renames.
3928
3929         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3930         _dbus_string_init failure correctly.
3931         (bus_selinux_append_context): Convert SID to context.  Append it
3932         as a byte array.
3933         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3934         hasn't been called.
3935
3936         * bus/selinux.h: Update prototype.
3937
3938         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3939         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3940
3941 2005-07-15  Colin Walters  <walters@verbum.org>
3942
3943         * doc/TODO: Add note about convenience wrappers.
3944
3945 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3946
3947         * NEWS: Update to 0.35
3948
3949 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3950
3951         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3952         so distcheck doesn't fail
3953
3954         * glib/examples/Makefile.am: Add example-service.xml and 
3955         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3956
3957         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3958         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3959
3960         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3961         compiler looks in the right places during distcheck
3962
3963 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3964
3965         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3966         to fail
3967
3968 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3969
3970         * python/examples/example-service.py,
3971         python/examples/example-signal-emitter.py: Fixed up examples
3972         for API changes
3973
3974 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3975
3976         * python/__init__.py: Upped to version (0,42,0) because of
3977         the API change
3978
3979 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3980
3981         * ChangeLog: fix date in last entry
3982
3983         * configure.in, bus/system.conf.in: add the ability to configure 
3984         the system bus user at compiletime with the --with-dbus-user flag
3985         (patch from Kristof Vansant)
3986
3987 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3988
3989         * bus/dispatch.c, test/test-service.c: Add testcase
3990         for sending messages to oneself (TODO item).
3991
3992         * python/service.py (class Object): Swap ordering of bus_name 
3993         and object_path parameters to better support inheritance.
3994
3995         * doc/dbus-tutorial.xml: change Python docs to reflect change
3996         in parameter ordering and fix the inheritance section.
3997
3998         * doc/TODO: remove sending message to oneself TODO item
3999
4000 2005-07-15  Ross Burton  <ross@openedhand.com>
4001
4002         * glib/dbus-gproxy.c:
4003         Fix a leak when calling methods via the proxy.
4004
4005 2005-07-15  Colin Walters  <walters@verbum.org>
4006
4007         * bus/selinux.c (bus_selinux_append_context): Wrap in
4008         HAVE_SELINUX.
4009
4010 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4011
4012         * python/_dbus.py (Bus::remove_signal_receiver):
4013         don't add a callback to the match if none has been passed in
4014         
4015         * python/matchrules.py (SignalMatchTree::remove): if the rule
4016         being matched does not have a callback treat it as a wildcard
4017         fix matching logic
4018
4019         * doc/dbus-tutorial.xml: Add Python tutorial
4020
4021 2005-07-14  Colin Walters  <walters@verbum.org>
4022
4023         * bus/driver.c
4024         (bus_driver_handle_get_connection_unix_security_context): New function.
4025         (message_handlers): Add.
4026
4027         * bus/selinux.c (bus_selinux_append_context): New function; appends
4028         security context to message.
4029
4030         * bus/selinux.h: Prototype.
4031
4032         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
4033
4034 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4035
4036         * bus/activation.c: clean up all tabs to be 8 spaces 
4037         (bus_activation_activate_service): make sure we clean up
4038         if activation fails
4039
4040         * bus/dispatch.c: clean up all tabs to be 8 spaces 
4041         (check_shell_fail_service_auto_start): New function
4042         tests to make sure we get fail properly when trying to auto start a service
4043         with a faulty command line
4044         (check_shell_service_success_auto_start): New function tests to make sure
4045         auto started services get the arguments on the command line
4046
4047         * test/test-shell-service.c: Added service for testing auto-starting with 
4048         command line arguments
4049
4050         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
4051         test/data/valid-service-files/debug-shell-echo-success.service.in:
4052         Added service files for testing auto-starting with command line arguments
4053
4054         * */.cvsignore: added a bunch of generated files to various .cvsignore files
4055
4056 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
4057
4058         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
4059         
4060         * dbus/Makefile.am: added new files to build.
4061
4062         * bus/activation.c (bus_activation_activate_service): support
4063         activation commands with parameters.
4064
4065         * test/shell-test.c: added test program for the shell parsing
4066         code.
4067
4068 2005-07-13  David Zeuthen  <davidz@redhat.com>
4069
4070         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
4071         64 bit signed and unsigned parameters
4072
4073 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
4074
4075         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
4076
4077         * python/service.py (class Name): renamed BusName to make it clearer
4078         what the object is for (a name on the bus)
4079
4080         * python/examples/example-service.py,
4081         python/examples/example-signal-emitter.py: change the Name object to
4082         BusName
4083
4084 2005-07-12  Colin Walters  <walters@verbum.org>
4085
4086         Patch from Jim Gettys <Jim.Gettys@hp.com>.
4087
4088         * tools/dbus-launch.c: Include sys/select.h.
4089
4090 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
4091         * python/dbus_bindings.pyx.in: removed
4092
4093         * python/dbus_bindings.pyx: Added.
4094         - Fixed some memleaks (patch from 
4095         Sean Meiners <sean.meiners@linspireinc.com>)
4096         - Broke out the #include "dbus_h_wrapper.h" and put it in its
4097         own pxd file (Pyrex definition)
4098         - Broke out glib dependancies into its own pyx module
4099         
4100         * python/dbus_bindings.pdx: Added.
4101         - Defines C class Connection for exporting to other modules
4102
4103         * python/dbus_glib_bindings.pyx: Added.
4104         - New module to handle lowlevel dbus-glib mainloop integration
4105
4106         * python/glib.py: Added.
4107         - Registers the glib mainloop when you import this module
4108
4109         * python/services.py: Removed (renamed to service.py)
4110         
4111         * python/service.py: Added.
4112         - (class Server): renamed Name
4113
4114         * python/__init__.py: Bump ro version (0,41,0)
4115         -don't import the decorators or service module
4116         by default.  These now reside in the dbus.service namespace
4117
4118         * python/_dbus.py (Bus::__init__): Add code run the main loop 
4119         setup function on creation 
4120
4121         * python/examples/example-service.py,
4122         python/examples/example-signal-emitter.py: update examples
4123
4124         * python/examples/gconf-proxy-service.py,
4125         python/examples/gconf-proxy-service2.py: TODO fix these up
4126
4127         * doc/TODO: Addition
4128         - Added a Python Bindings 1.0 section
4129         - added "Add match on args or match on details to match rules"
4130
4131
4132 2005-07-12  Colin Walters  <walters@verbum.org>
4133
4134         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
4135         (statemachine-glue.h): 
4136         * glib/examples/Makefile.am (example-service-glue.h) 
4137         (example-signal-emitter-glue.h): 
4138         * glib/Makefile.am (dbus-glib-error-switch.h): 
4139         Add libtool --mode=execute so we use the built library instead
4140         of any installed one.
4141
4142 2005-07-11  Colin Walters  <walters@verbum.org>
4143
4144         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
4145         (dbus_g_value_types_init): Remove assertion.
4146         (dbus_g_value_get_g_type, dbus_g_value_open)
4147         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
4148         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
4149         functions related to DBusGValue.  Now we marshal/demarshal
4150         structures as GValueArray.
4151         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
4152         structures.
4153         (signature_iter_to_g_type_array): Don't call
4154         signature_iter_to_g_type_struct.
4155         (signature_iter_to_g_type_struct): Delete.
4156         (dbus_gvalue_to_signature): Delete.
4157         (dbus_gvalue_to_signature): New function with same name as other
4158         one; we can convert structures to signatures.
4159         (demarshal_valuearray): New function.
4160         (get_type_demarshaller): Use it.
4161         (demarshal_recurse): Delete.
4162         (marshal_proxy): New function.
4163         (marshal_map): Warn if we can't determine signature from type.
4164         (marshal_collection_ptrarray): Ditto.
4165         (marshal_collection_array): Ditto.
4166         (get_type_marshaller): Use marshal_valuearray.
4167         (marshal_recurse): Delete.
4168         (_dbus_gvalue_test): Add some tests.
4169
4170         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
4171         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
4172         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4173         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4174         (dbus_g_value_free): Remove prototypes.
4175
4176         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
4177         G_TYPE_VALUE_ARRAY.
4178
4179         * glib/examples/example-service.c:
4180         * glib/examples/example-client.c: Implement GetTuple.
4181
4182         * test/glib/test-dbus-glib.c:
4183         * test/glib/test-service-glib.c:
4184         * test/glib/test-service-glib.xml: Add structure tests.
4185
4186 2005-07-10  Colin Walters  <walters@verbum.org>
4187
4188         * doc/TODO: Knock off some GLib items with this patch.
4189
4190         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
4191         (_dbus_gvalue_signals_error): New functions.
4192
4193         * glib/dbus-gvalue-utils.h: Prototype them.
4194
4195         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
4196         and change to not output const/retval flags for input args.  All
4197         callers updated.
4198         (invoke_object_method): Refactor to handle return values.  Add
4199         some more comments in various places.  Remove debug g_print.
4200
4201         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
4202
4203         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
4204         Handle G_TYPE_NONE.
4205         (compute_gsignature): New function; refactored from code from
4206         compute_marshaller and compute_marshaller_name.  Enhance to
4207         handle return values and async ops more cleanly.  Update for
4208         async ops returning NONE instead of BOOLEAN.
4209         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
4210         and output appropriate string.
4211         (generate_glue): Handle return value annotation.  Also don't dump
4212         constness flag for input arguments.
4213
4214         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
4215         files shared between installed library and utilities.
4216         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4217         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4218         binding tool can access gtype utility functions.
4219
4220         * test/glib/test-service-glib.c: 
4221         * test/glib/test-service-glib.xml: 
4222         * test/glib/test-dbus-glib.c: Add some tests for return values.
4223
4224 2005-07-09  Colin Walters  <walters@verbum.org>
4225
4226         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4227         argument if available, not method.
4228
4229         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4230         (invoke_object_method): First, remove some redundant
4231         GValues (object_value, error_value) in favor of working on
4232         array directly.  Second, rework constness to be less buggy.
4233         Now we iterate directly over the argument metadata instead
4234         of parallel iterating over output signature and metadata.
4235
4236         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4237
4238         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4239         annotation on input args.
4240         
4241 2005-07-09  Colin Walters  <walters@verbum.org>
4242
4243         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4244         Define.
4245
4246         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4247         annotation.
4248
4249         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4250         (method_dir_signature_from_object_info): Handle arg_iterate change.
4251         (write_interface): Ditto.
4252         (lookup_object_info): Don't barf if format_version is > 0.
4253         (invoke_object_method): Handle arg constness.
4254
4255         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4256         (arg_info_new): Create.
4257         (arg_info_unref): Destroy.
4258         (arg_info_get_annotations, arg_info_get_annotation) 
4259         (arg_info_add_annotation): New functions.
4260
4261         * glib/dbus-gidl.h: Prototype them.
4262
4263         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4264         args, disallow them in properties.
4265         (parse_annotation): Handle arg annotations.
4266
4267         * test/glib/test-service-glib.xml: 
4268         * test/glib/test-service-glib.c: Update to make some methods
4269         const.
4270
4271 2005-07-08  Colin Walters  <walters@verbum.org>
4272
4273         * test/glib/test-service-glib.xml: 
4274         * test/glib/test-service-glib.c:
4275         * test/glib/test-dbus-glib.c: Test a{sv}.
4276
4277         * glib/examples/statemachine/statemachine.c:
4278         * glib/examples/statemachine/statemachine-server.c:
4279         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4280         add progress bar, etc.
4281
4282         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4283         needed anymore due to generic array/map marshalling.
4284         (dbus_g_value_types_init): Don't register basic arrays or the
4285         string/string hash.
4286         (dbus_gtype_from_signature_iter): Don't try to recurse into
4287         variants.
4288         (dbus_gtype_to_signature): Check collection/map before type
4289         metadata.
4290         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4291         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4292         generic map creation/append functions instead of hash table
4293         specifically.
4294         (get_type_demarshaller): Handle maps.
4295         (demarshal_collection): Dispatch on collection type to either
4296         demarshal_collection_ptrarray or demarshal_collection_array.
4297         (get_type_marshaller): Handle maps.
4298         (marshal_collection): Dispatch collection type to either
4299         marshal_collection_ptrarray or marshal_collection_array.
4300         (_dbus_gvalue_test): New test.
4301
4302         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4303         (hash_free_from_gtype): Use it to free GValues.
4304         (hashtable_append): New function.
4305         (ptrarray_append): Fix prototype.
4306         (slist_append): Ditto.
4307         (_dbus_gvalue_utils_test): Extend tests.
4308
4309         * glib/dbus-gtype-specialized.c
4310         (dbus_g_type_specialized_init_append): Renamed from
4311         dbus_g_type_specialized_collection_init_append.  Remove const from
4312         value, since we steal it.
4313         (dbus_g_type_specialized_map_append): New function.
4314
4315         * glib/dbus-gtype-specialized.h: Update prototypes.
4316         Add DBusGTypeSpecializedMapAppendFunc.
4317
4318         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4319         _dbus_gvalue_test.
4320         
4321         * glib/dbus-gtest.h: Prototype it.
4322
4323 2005-07-08  Ross Burton  <ross@openedhand.com>
4324
4325         * dbus/dbus-glib.h:
4326         Add DBysGAsyncData for the async bindings.
4327
4328         * glib/dbus-binding-tool-glib.c:
4329         Re-enable the async bindings.
4330
4331         * test/glib/test-dbus-glib.c:
4332         Add a test for the generated async bindings.
4333
4334 2005-07-08  Colin Walters  <walters@verbum.org>
4335
4336         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4337         connection concept.
4338         
4339 2005-07-08  Colin Walters  <walters@verbum.org>
4340         
4341         * tools/Makefile.am: Kill of print-introspect in favor of using
4342         dbus-send --print-reply=literal.
4343
4344         * test/glib/test-service-glib.xml: 
4345         * test/glib/test-service-glib.c (my_object_get_objs): New test
4346         for "ao".
4347
4348         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4349         (main): Test GetObjs.
4350
4351         * glib/examples/statemachine/Makefile.am:
4352         * glib/examples/statemachine/sm-marshal.list:
4353         * glib/examples/statemachine/statemachine-client.c:
4354         * glib/examples/statemachine/statemachine-server.c:
4355         * glib/examples/statemachine/statemachine-server.xml:
4356         * glib/examples/statemachine/statemachine.c:
4357         * glib/examples/statemachine/statemachine.h:
4358         * glib/examples/statemachine/statemachine.xml:
4359
4360         New example.
4361
4362         * glib/examples/example-service.c (main): Move invocation
4363         of dbus_g_object_type_install_info earlier, to emphasize it
4364         should only be done once.
4365
4366         * glib/examples/example-signal-emitter.c (main): Ditto.
4367
4368         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4369
4370         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4371         (dbus_gvalue_marshal): Update prototypes.
4372
4373         * glib/dbus-gvalue.c: Update all marshalling functions to take
4374         const GValue instead of GValue.
4375         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4376         types.
4377         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4378         change.
4379         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4380         Return a newly-allocated string.
4381         (demarshal_proxy, demarshal_object_path, demarshal_object)
4382         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4383         we get the wrong types from message.
4384         (get_type_demarshaller): New function, extracted from
4385         dbus_gvalue_demarshal.
4386         (demarshal_collection): New function, demarshals generic
4387         collection.
4388         (dbus_gvalue_demarshal): Just invoke result of
4389         get_type_demarshaller.  Throw error if we don't have one.
4390         (marshal_garray_basic): Abort on OOM.
4391         (get_type_marshaller): New function, extracted from
4392         dbus_gvalue_marshal.
4393         (collection_marshal_iterator, marshal_collection): New functions;
4394         implements generic marshalling for an iteratable specialized
4395         collection.
4396         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4397
4398         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4399         G_TYPE_STRING.
4400         (ptrarray_value_from_gvalue): Ditto.
4401         (ptrarray_append, ptrarray_free): New functions.
4402         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4403         (slist_append, slist_end_append, slist_free): New functions.
4404         (dbus_g_type_specialized_builtins_init): Add append fuctions
4405         for GPtrArray and GSList.  Register GSList.
4406         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4407
4408         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4409         New.
4410         (dbus_g_type_specialized_collection_init_append)
4411         (dbus_g_type_specialized_collection_append)
4412         (dbus_g_type_specialized_collection_end_append): Prototype.
4413         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4414         end_append_func.
4415
4416         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4417         (dbus_g_type_specialized_collection_append) 
4418         (dbus_g_type_specialized_collection_end_append): New functions.
4419         (dbus_g_type_map_value_iterate): Take const GValue.
4420         (dbus_g_type_collection_value_iterate): Ditto.
4421
4422         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4423         _dbus_gvalue_utils_test.
4424         
4425         * glib/dbus-gtest.h: Prototype it.
4426
4427         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4428         using uninitialized owner_list.
4429         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4430         public API.
4431         (dbus_g_proxy_end_call_internal): Update to use error set
4432         from dbus_gvalue_demarshal instead of setting it here.
4433         (dbus_g_proxy_begin_call): Move return_if_fail here.
4434
4435         * glib/dbus-gobject.c (write_interface): Update for
4436         dbus_gtype_to_signature returning new string.
4437
4438         * configure.in: Add glib/examples/statemachine.
4439
4440 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4441
4442         * configure.in: Add a configure option, --with-console-auth-dir
4443         
4444         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4445         new setting.  Patch from Kay Sievers.
4446
4447 2005-07-06  Colin Walters  <walters@verbum.org>
4448
4449         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4450         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4451         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4452         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4453         Delete in favor of dbus_g_proxy_begin_call and
4454         dbus_g_proxy_cancel_call.
4455         (DBusGProxyCall, DBusGProxyCallNotify): New.
4456         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4457         data, and destroy function.  This replaces
4458         dbus_g_pending_call_set_notify.
4459         (dbus_g_proxy_cancel_call): Prototype.
4460         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4461
4462         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4463         pending_calls map.
4464         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4465         internal proxy for calls to the bus. Remove
4466         pending_nameowner_calls, now the internal proxy keeps track.
4467         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4468         pending_nameowner_calls.
4469         (got_name_owner_cb): Update prototype, and use
4470         dbus_g_proxy_end_call.
4471         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4472         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4473         favor of using internal proxy.
4474         (dbus_g_proxy_manager_unregister): Update to use
4475         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4476         (dbus_g_proxy_init): Initialize pending calls map.
4477         (dbus_g_proxy_constructor): New.
4478         (dbus_g_proxy_class_init): Add get/set property functions,
4479         constructor, and add NAME, PATH, and INTERFACE properties.
4480         (cancel_pending_call): New function.
4481         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4482         cancel them.
4483         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4484         (GPendingNotifyClosure): New structure.
4485         (d_pending_call_notify, d_pending_call_free): Moved here from
4486         dbus-glib.c.
4487         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4488         ordering.
4489         (manager_begin_bus_call): New internal function for talking to
4490         internal bus proxy.
4491         (dbus_g_proxy_new): Construct object using GObjet properties.
4492         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4493         Create closure of same, and insert call into map of pending calls.
4494         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4495         call.  Look up pending call in current set.  Remove it when we've
4496         completed.
4497         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4498         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4499         and destroy function directly.
4500         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4501         (dbus_g_proxy_call): Invoke with NULL callback.
4502         (dbus_g_proxy_cancel_call): New function, replaces
4503         dbus_g_pending_call_cancel.
4504
4505         * glib/dbus-gparser.c (validate_signature): Fix call to
4506         dbus_set_g_error.
4507
4508         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4509         New quark for attaching metadata to GType.
4510         (info_hash): Delete.
4511         (lookup_object_info): Look up using quark.
4512         (dbus_g_object_type_install_info): Check that a type is classed,
4513         not that it's an object.  Also just install type data using quark
4514         instead of using global hash.
4515
4516         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4517         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4518         (GPendingNotifyClosure): Delete.
4519         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4520         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4521
4522         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4523         client method generation until we can fix it...
4524         
4525         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4526         (load_from_service_thread_func): Ditto.
4527
4528         * tools/dbus-names-model.c (struct NamesModel): Hold
4529         DBusGProxyCall.
4530         (have_names_notify): Update prototype, use
4531         dbus_g_proxy_cancel_call.
4532         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4533
4534         * tools/dbus-monitor.c (filter_func): Update for print_message
4535         API change.
4536
4537         * test/glib/test-dbus-glib.c: Add more tests for async
4538         invocations.  Update many begin_call/end_call pairs to just use
4539         dbus_g_proxy_call.
4540
4541         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4542         allows us to dump print-introspect.c.
4543
4544         * tools/dbus-print-message.h (print_message): Add literal argument
4545         to print_message which is intended to allow printing arguments without
4546         metadata like "string=".
4547
4548         * tools/dbus-print-message.c (print_iter): Add literal argument.
4549         (print_message): Allow printing string messages literally.
4550
4551 2005-07-05  Colin Walters  <walters@verbum.org>
4552
4553         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4554         Remove value refcount leak, original patch from Jorn Baayen
4555         <jorn@openedhand.com>.  Also remove useless extra value in favor
4556         of prepending to value array directly.
4557
4558 2005-07-02  Colin Walters  <walters@verbum.org>
4559
4560         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4561
4562 2005-07-01  Colin Walters  <walters@verbum.org>
4563
4564         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4565         
4566         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4567         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4568         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4569         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4570
4571 2005-06-30  Colin Walters  <walters@verbum.org>
4572
4573         * test/glib/test-dbus-glib.c:
4574         * test/glib/test-service-glib.c:
4575         * test/glib/test-service-glib.xml: Update tests for new error
4576         setting bits, also add async tests (patch from Ross Burton).
4577
4578         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4579         DBUS_GLIB_THREADS_LIBS.
4580
4581         * glib/dbus-gproxy.c (get_name_owner)
4582         (dbus_g_pending_call_end_valist): Ditto.
4583
4584         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4585         domain (GQuark) to DBusGErrorInfo.  
4586         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4587         quark in error_metadata.  Take message interface as default
4588         error message interface.
4589         (gerror_to_dbus_error_message): Pass message interface.
4590         (dbus_set_g_error): Resurrected.
4591         (dbus_g_error_info_free): New function.
4592         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4593         of _peek to actually create the object class if it hasn't been
4594         created yet.
4595         (dbus_g_error_domain_register): New function.
4596
4597         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4598
4599         * glib/dbus-gparser.c (validate_signature): Ditto.
4600
4601         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4602         (dbus_g_error_domain_register): Prototype.
4603
4604         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4605         Update tests.
4606
4607 2005-06-29  Colin Walters  <walters@verbum.org>
4608
4609         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4610         DBUS_TYPE_G_OBJECT_PATH.
4611
4612         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4613         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4614         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4615         (dbus_g_object_path_get_g_type): New function.
4616         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4617         to DBUS_TYPE_G_OBJECT_PATH by default.
4618         (demarshal_proxy): Remove unused name variable.
4619         (demarshal_object_path, marshal_object_path): New functions.
4620         (demarshal_proxy_array, marshal_proxy_array): Delete.
4621         
4622         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4623         DBUS_TYPE_G_OBJECT_PATH to char *.
4624         (dbus_g_type_get_lookup_function): Map builtin
4625         DBUS_TYPE_G_OBJECT_PATH.
4626
4627         * test/glib/test-dbus-glib.c
4628         * test/glib/test-service-glib.c (my_object_objpath): 
4629         Adapt tests to new object path marshalling.
4630
4631 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4632
4633         * configure.in: force check for Python >= 2.4
4634
4635 2005-06-29  Colin Walters  <walters@verbum.org>
4636         
4637         Patch from Ross Burton <ross@openedhand.com>
4638         
4639         * glib/dbus-gobject.c (invoke_object_method): Unset object
4640         value in all cases, not only in async case.
4641
4642 2005-06-29  Colin Walters  <walters@verbum.org>
4643
4644         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4645         name_call for keeping track of any outgoing GetNameOwner call.
4646         Also add for_owner and associated.
4647         (struct _DBusGProxyManager): Add owner_names, which is hash table
4648         that maps a base name to a list of names it owns (that we're
4649         interested in).  Add pending_nameowner_calls which is a list of
4650         all outstanding GetNameOwner; avoids us having to iterate over
4651         every proxy.  Add unassociated_proxies which keeps track of name
4652         proxies with no associated name owner.
4653         (dbus_g_proxy_manager_unref): Destroy owner_names.
4654         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4655         name refcounts.
4656         (find_name_in_info, name_owner_foreach)
4657         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4658         (dbus_g_proxy_manager_monitor_name_owner)
4659         (dbus_g_proxy_manager_unmonitor_name_owner)
4660         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4661         New functions; they manipulate the owner_names mapping.
4662         (got_name_owner_cb): New function.
4663         (get_name_owner): New function, extracted from
4664         dbus_g_proxy_new_for_name_owner.
4665         (dbus_g_proxy_manager_register): For now we need to keep track of
4666         all NameOwnerChanged.  Also if the proxy is for a name, if we
4667         don't already know the name owner, queue a new GetNameOwner
4668         request and add it to our list of unassociated proxies.  Otherwise
4669         inc the refcount.
4670         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4671         cancel any pending GetNameOwner call, etc.
4672         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4673         the owner_names mapping to look up the current names for the
4674         signal source, and dispatch to any proxies for that name.
4675         (dbus_g_proxy_new): Initialize new members.
4676         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4677         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4678         (dbus_g_pending_call_end_valist): New function, extracted from
4679         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4680         but want to use the GLib infrastructure.  Also note how many
4681         arguments in reply were over.
4682         (dbus_g_pending_call_end): New function, just call
4683         dbus_g_pending_call_end_valist.
4684         (dbus_g_proxy_end_call_internal): Just call
4685         dbus_g_pending_call_end_valist.
4686
4687         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4688         of builtin marshaller for STRING_STRING_STRING.
4689
4690         * test/glib/test-dbus-glib.c: 
4691         * test/glib/test-service-glib.c:
4692         * test/glib/test-service-glib.xml:
4693         Extend tests to cover name proxies, destruction of owner proxies,
4694         etc.
4695         
4696         * glib/examples/example-signal-recipient.c
4697         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4698         
4699         * tools/dbus-send.c (main): Print D-BUS error name in addition
4700         to message.
4701
4702 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4703
4704         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4705         cmessage_function_handler): Patch from 
4706         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4707         by using the Py_GILState_Ensure/Release to synchronize with the
4708         python runtime.
4709         
4710 2005-06-28  Ray Strode  <rstrode@redhat.com>
4711
4712         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4713         babysitter helper process on last unref, bug #2813.
4714
4715 2005-06-27  Colin Walters  <walters@verbum.org>
4716
4717         * test/glib/test-dbus-glib.c: 
4718         * test/glib/test-service-glib.c:
4719         * test/glib/test-service-glib.xml:
4720         Test hash table signal emitting.
4721
4722         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4723         types to their fundamental basis types, since this is what
4724         marshallers operate on.  Also add an entry for VOID__BOXED.
4725         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4726
4727 2005-06-26  Havoc Pennington  <hp@redhat.com>
4728
4729         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4730         from Don Park
4731
4732 2005-06-26  Colin Walters  <walters@verbum.org>
4733
4734         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4735         (dbus_g_error_set): New public function from its ashes; used by
4736         both service-side method implementation and GLib bindings
4737         internals.
4738         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4739         (_dbus_glib_test): Add some tests.
4740
4741         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4742
4743         * test/glib/test-service-glib.c (my_object_throw_error): Use
4744         dbus_g_error_set.
4745
4746         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4747         errors thrown by dbus_g_error_set.
4748
4749         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4750
4751         * glib/dbus-gparser.c (validate_signature): Ditto.
4752
4753         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4754         (dbus_g_proxy_end_call_internal): Ditto.
4755
4756         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4757         converts DBUS_ERROR_x to DBUS_GERROR_x.
4758         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4759
4760         * doc/TODO: Remove error TODO.
4761
4762         * doc/dbus-tutorial.xml: Update with documentation about error
4763         handling.
4764
4765         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4766         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4767         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4768
4769 2005-06-22  Colin Walters  <walters@verbum.org>
4770         
4771         Patch from Ross Burton <ross@openedhand.com>
4772
4773         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4774
4775 2005-06-20  Colin Walters  <walters@verbum.org>
4776
4777         * configure.in: Add glib/examples.
4778
4779         * glib/Makefile.am: Add examples/
4780
4781         * glib/examples/.cvsignore
4782         * glib/examples/Makefile.am
4783         * glib/examples/example-client.c
4784         * glib/examples/example-service.c
4785         * glib/examples/example-service.xml
4786         * glib/examples/example-signal-emitter.c
4787         * glib/examples/example-signal-emitter.xml
4788         * glib/examples/example-signal-recipient.c:
4789         New files; GLib binding examples, ported from
4790         python/examples.
4791
4792 2005-06-20  Colin Walters  <walters@verbum.org>
4793
4794         * dbus/dbus-glib.h: 
4795         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4796         dbus_g_proxy_call.
4797
4798         * glib/dbus-binding-tool-glib.c: 
4799         * doc/dbus-tutorial.xml: 
4800         * test/glib/test-dbus-glib.c: Update for rename.
4801         
4802 2005-06-20  Colin Walters  <walters@verbum.org>
4803
4804         Patch suggested by Ross Burton <ross@openedhand.com>
4805
4806         * glib/dbus-gobject.c (export_signals): Free signal name.
4807         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4808         memory leak.  Add a bit of documentation.
4809         (dbus_g_method_return_error): Free context, and note we do
4810         so.
4811
4812 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4813
4814         * dbus/dbus-glib.h:
4815         * glib/dbus-gobject.c:
4816         * glib/dbus-gproxy.c:
4817         * glib/dbus-gvalue.c: Predeclare structs as 
4818         typedef struct _Something Something instead of 
4819         typedef struct Something Something, so we can 
4820         redeclare the prototypes. Other GNOME libraries 
4821         do this already.
4822
4823 2005-06-17  Colin Walters  <walters@verbum.org>
4824
4825         * tools/dbus-names-model.c (have_names_notify): Fix call
4826         to dbus_g_proxy_end_call.
4827         
4828 2005-06-17  Colin Walters  <walters@verbum.org>
4829
4830         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4831         spew warnings if we get malformed remote signals.
4832
4833         * glib/dbus-gobject.c (propsig_iterate): New function.
4834         (lookup_object_info): New function, extracted from
4835         lookup_object_and_method.
4836         (introspect_properties, introspect_signals): Delete; these
4837         are merged into write_interface.
4838         (write_interface): Write out signals and properties here;
4839         dump the org.gtk.object stuff and use the interface given
4840         in the introspection data blob.  Also fix up property XML.
4841         (lookup_values): New function.
4842         (introspect_interfaces): Gather a mapping from interface to a
4843         list of its methods, signals, and properties, then write out
4844         each interface.
4845         (lookup_object_and_method): Use lookup_object_info.
4846         (struct DBusGSignalClosure): Add interface.
4847         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4848         we can just use the constant data.
4849         (dbus_g_signal_closure_finalize): Don't free signal name.
4850         (signal_emitter_marshaller): Use interface from signal closure.
4851         (export_signals): Only export signals mentioned in introspection
4852         blob.
4853         (dbus_g_connection_register_g_object): Warn if we have no
4854         introspection data for an object.
4855         (funcsig_equal): Remove unused variable.
4856         (dbus_g_object_register_marshaller): Take varargs instead of
4857         list.
4858         (dbus_g_object_register_marshaller_array): New function,
4859         extracted from old dbus_g_object_register_marshaller.
4860
4861         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4862         signals and property data.
4863         (write_quoted_string): New function, extracted from generate_glue.
4864         (generate_glue): Write signals and properties to introspection
4865         blob.
4866
4867         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4868         exported_signals and exported_properties.
4869         (dbus_g_object_register_marshaller): Update prototype.
4870         (dbus_g_object_register_marshaller_array): Prototype.
4871         
4872         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4873
4874         * test/glib/test-service-glib.c: Add new test signals and method
4875         to emit them.
4876
4877         * test/glib/test-service-glib.xml: Add some test signals.
4878
4879         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4880         and my-object-marshal.h
4881         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4882         my-object-marshal.c.
4883         (my-object-marshal.c, my-object-marshal.h): Implement.
4884
4885         * test/glib/.cvsignore: Update.
4886
4887         * doc/TODO: Remove two GLib TODO items fixed by this
4888         patch.
4889
4890 2005-06-16  Colin Walters  <walters@verbum.org>
4891
4892         * doc/TODO: Update for GLib bindings.
4893         
4894 2005-06-16  Colin Walters  <walters@verbum.org>
4895
4896         * glib/dbus-binding-tool-glib.c:
4897         * glib/dbus-gobject.c:
4898         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4899         from Ross Burton, for his GLib bindings work.
4900
4901 2005-06-16  Colin Walters  <walters@verbum.org>
4902
4903         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4904         to iterate instead of walking to G_TYPE_INVALID.
4905
4906         Patch based on a patch from Ryan Gammon.
4907
4908 2005-06-16  Colin Walters  <walters@verbum.org>
4909
4910         * bus/bus.c (bus_context_new): Set parser to NULL
4911         after we unref it (Patch from Chris Boscolo, #2174).
4912         
4913 2005-06-16  Colin Walters  <walters@verbum.org>
4914
4915         * python/dbus_bindings.pyx.in: Import size_t,
4916         __int64_t, __uint64_t, and __signed.
4917
4918         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4919         Define cmsg struct, output it.
4920         (_dbus_read_credentials_unix_socket):
4921         Use cmsg struct.
4922         
4923         Patch from Joe Markus Clarke for FreeBSD support.
4924         
4925 2005-06-16  Colin Walters  <walters@verbum.org>
4926
4927         * tools/dbus-send.c (append_array): Use strtok.
4928         (append_dict): New function.
4929         (type_from_name): New function, extracted from main.
4930         (main): Handle sending dicts.
4931
4932         * tools/dbus-print-message.c (print_iter): Print dict
4933         entries.
4934         
4935 2005-06-16  Colin Walters  <walters@verbum.org>
4936
4937         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4938         values as the empty string (#2948).
4939         
4940 2005-06-16  Colin Walters  <walters@verbum.org>
4941
4942         * dbus/Makefile.am:
4943         * mono/doc/Makefile.am:
4944         * test/glib/Makefile.am:
4945
4946         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4947
4948 2005-06-16  Colin Walters  <walters@verbum.org>
4949
4950         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4951         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4952
4953         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4954         Increment pointer after swapping fixed array.  Add assertion
4955         for array length.
4956                 
4957 2005-06-15  Colin Walters  <walters@verbum.org>
4958
4959         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4960         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4961         
4962 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4963
4964         * NEWS: Update to 0.34
4965
4966 2005-06-15  David Zeuthen  <davidz@redhat.com>
4967
4968         * configure.in (LT_CURRENT): Revert back to 1 as the library
4969         hasn't changed and we've certainly not committed to protocol
4970         stability yet.  All this does is to break ABI. See commit note
4971         from hp@redhat.com 2005-05-05 for details.
4972         
4973 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4974
4975         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4976         (_dbus_connection_run_builtin_filters): New method
4977         (dbus_connection_dispatch): Run the builtin filters which in turn
4978         runs the peer filter which handles Ping messages.
4979
4980         * doc/TODO: 
4981          - Ping isn't handled: This patch fixes it
4982          
4983          - Add a test case for the Ping message: added TODO item
4984
4985 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4986
4987         * dbus/dbus-message.c:
4988         (dbus_message_has_path): New method
4989         (dbus_message_has_interface): New method
4990         (dbus_message_has_member): New method
4991
4992         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4993         New method
4994
4995         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4996         the keyring directory is private to the user
4997
4998         * doc/TODO:
4999          - The convenience functions in dbus-bus.h should perhaps have
5000          the signatures that they would have if they were autogenerated
5001          stubs. e.g. the acquire service function. We should also evaluate
5002          which of these functions to include, in light of the fact that
5003          GLib/Qt native stubs will probably also exist.: Punted
5004
5005          - add dbus_message_has_path(), maybe has_member/interface:
5006          fixed in this patch
5007
5008          - in dbus-keyring.c, enforce that the keyring dir is not
5009          world readable/writable: Fixed in this patch
5010
5011 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5012
5013         * dbus/dbus-marshal-validate.h: Added a new validation
5014         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
5015         out of memory errors when validating signitures
5016
5017         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
5018         in places where we previously used DBUS_VALID and a FALSE return 
5019         value to indicate OOM
5020         
5021         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
5022         Use a stack to track the number of elements inside containers.  The 
5023         stack values are then used to validate that dict entries have only two
5024         elements within them.
5025         (validate_body_helper): check the reason for failure when validating
5026         varients
5027         
5028         * dbus/dbus-message.c (load_message): use 
5029         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
5030         DBUS_VALID and a FALSE return value to indicate OOM
5031
5032         * doc/TODO: remove "- validate dict entry number of fields" as this
5033         patch fixes it
5034
5035 2005-06-14  David Zeuthen  <davidz@redhat.com>
5036
5037         * bus/bus.c (process_config_every_time): Drop existing conf-dir
5038         watches (if applicable) and add new watches
5039
5040         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
5041         (main): Setup SIGIO signal handler if using D_NOTIFY
5042
5043         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
5044
5045         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
5046         (merge_included): Also merge conf_dirs list
5047         (bus_config_parser_unref): Clear conf_dirs list
5048         (include_dir): Add directory to conf_dirs list
5049         (bus_config_parser_get_conf_dirs): New function
5050
5051         * bus/dir-watch.[ch]: New files
5052
5053         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
5054
5055         * configure.in: Add checks for D_NOTIFY on Linux
5056
5057 2005-06-14  Colin Walters  <walters@verbum.org>
5058
5059         * glib/dbus-binding-tool-glib.c:
5060         * glib/dbus-gobject.c:
5061         * glib/dbus-gvalue.c: Fix indentation and brace style.
5062         
5063 2005-06-14  Ross Burton <ross@openedhand.com>.
5064
5065         * glib/dbus-glib.h: Make DBusGMethodInvocation
5066         a private structure.  Rearrange prototypes a bit.
5067         
5068         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
5069         documentation for first_arg_type.
5070         
5071         * glib/dbus-gobject.c: Move DBusGMethodInvocation
5072         here, add documentation.  Move dbus_g_method_return
5073         and dbus_g_method_return_error into public API
5074         section.
5075
5076 2005-06-14  Colin Walters  <walters@verbum.org>
5077
5078         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
5079         Add missing return statements, noticed by Ross Burton.
5080         
5081 2005-06-13  Ross Burton <ross@openedhand.com>.
5082
5083         * glib/dbus-gobject.c: Handle errors on message
5084         demarshalling by sending error message back.
5085         * glib/dbus-gvalue.c: Initialize return variables.
5086
5087 2005-06-13  Colin Walters  <walters@verbum.org>
5088
5089         * glib/Makefile.am: Fix thinko in last patch.
5090
5091 2005-06-13  Colin Walters  <walters@verbum.org>
5092
5093         * glib/Makefile.am: Move dbus-gtype-specialized.c
5094         and dbus-gtype-specialized.h into a _HEADERS variable,
5095         install them.
5096
5097 2005-06-12  Colin Walters  <walters@verbum.org>
5098
5099         Async signals and various bugfixes and testing by
5100         Ross Burton <ross@openedhand.com>.
5101
5102         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
5103         (dbus_gvalue_genmarshal_name_from_type)
5104         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
5105         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
5106         (dbus_g_value_types_init, dbus_gtype_from_signature)
5107         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
5108         (dbus_gtypes_from_arg_signature): New function prototypes.
5109         (dbus_gvalue_demarshal): Take context and error arguments.
5110         (dbus_gvalue_demarshal_variant): New function.
5111         (dbus_gvalue_demarshal_message): New function.
5112         (dbus_gvalue_store): Delete.
5113
5114         * glib/dbus-gvalue.c:
5115
5116         File has been almost entirely rewritten; now we special-case
5117         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
5118         hash tables correctly, etc.  Full support for recursive values
5119         is not yet complete.
5120
5121         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
5122         argument of signal to G_TYPE_POINTER since we now pass a
5123         structure.
5124         (lookup_g_marshaller): Delete in favor of
5125         _dbus_gobject_lookup_marshaller.
5126         (marshal_dbus_message_to_g_marshaller): Use
5127         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
5128         to handle remote signal callbacks.
5129         (dbus_g_proxy_new_from_proxy): New function; creates a new
5130         DBusGProxy by copying an existing one.
5131         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
5132         (dbus_g_proxy_get_path): New functions.
5133         (dbus_g_proxy_marshal_args_to_message): New function;
5134         factored out of existing code.
5135         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
5136         from a varargs array.
5137         (dbus_g_proxy_begin_call_internal): New function.
5138         (dbus_g_proxy_end_call_internal): New function.
5139         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
5140         as arguments; simply invoke dbus_g_proxy_begin_call_internal
5141         after collecting args into value array.
5142         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
5143         invoke dbus_g_proxy_end_call_internal.
5144         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
5145         end_call_internal.
5146         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
5147         types.
5148         (array_free_all): New function.
5149         (dbus_g_proxy_add_signal): Take GTypes.
5150
5151         * glib/dbus-gobject.h:
5152         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5153         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
5154         Prototype.
5155
5156         * glib/dbus-gobject.c: Add a global marshal_table hash which
5157         stores mappings from type signatures to marshallers.  Change lots
5158         of invocations of dbus_gtype_to_dbus_type to
5159         dbus_gtype_to_signature.
5160         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5161         (introspect_signals): Fix test for query.return_type.
5162         (set_object_property): Update invocation of dbus_gvalue_demarshal.
5163         (invoke_object_method): Many changes.  Handle asynchronous
5164         invocations.  Convert arguments with
5165         dbus_gvalue_demarshal_message.  Handle errors.  Use
5166         DBusSignatureIter instead of strlen on args. Handle all arguments
5167         generically.  Special-case variants.
5168         (dbus_g_method_return, dbus_g_method_return_error): New function.
5169         (DBusGSignalClosure): New structure, closes over signal
5170         information.
5171         (dbus_g_signal_closure_new): New function.
5172         (dbus_g_signal_closure_finalize): New function.
5173         (signal_emitter_marshaller): New function; is special marshaller
5174         which emits signals on bus.
5175         (export_signals): New function; introspects object signals and
5176         connects to them.
5177         (dbus_g_object_type_install_info): Take GType instead of
5178         GObjectClass.
5179         (dbus_g_connection_register_g_object): Invoke export_signals.
5180         (dbus_g_connection_lookup_g_object): New function.
5181         (DBusGFuncSignature) New structure; used for mapping type
5182         signatures to marshallers.
5183         (funcsig_hash): New function; hashes DBusGFuncSignature.
5184         (funcsig_equal): New function; compares DBusGFuncSignature.
5185         (_dbus_gobject_lookup_marshaller): New function.
5186         (dbus_g_object_register_marshaller): New function; used to
5187         register a marshaller at runtime for a particular signature.
5188
5189         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
5190
5191         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
5192         which notes a server method implementation should be
5193         asynchronous.
5194
5195         * glib/dbus-binding-tool-glib.c
5196         (dbus_binding_tool_output_glib_server): Call
5197         dbus_g_value_types_init.
5198         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
5199         variants specially.
5200         (dbus_g_type_get_lookup_function): Turn GType into an invocation
5201         of a lookup function.
5202         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
5203         (write_untyped_out_args): New method; write output arguments.
5204         (write_formal_declarations_for_direction): Function for
5205         writing prototypes.
5206         (write_formal_parameters_for_direction): Function for
5207         writing implementations.
5208         (write_typed_args_for_direction): Function for writing
5209         arguments prefixed with GTypes.
5210         (write_async_method_client): Write out async version
5211         of method.
5212
5213         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
5214         (dbus_g_type_get_marshal_name): Move mapping from GType
5215         to marshal name into here.
5216         (dbus_g_type_get_c_name): Move into here.
5217         (compute_marshaller): Convert signature to type with
5218         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5219         (compute_marshaller_name): Ditto.
5220         (compute_marshaller): Handle async signal annotations.
5221         (gather_marshallers): Return if we don't have a known
5222         prefix.
5223         (generate_glue): Collect introspection blob here, and
5224         write all of the blob at the end.  This allows an object
5225         with multiple interfaces to work.
5226         Mark async methods in introspection blob.
5227
5228         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5229         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5230         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5231
5232         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5233         avoids people accidentally using DBUS_TYPE_* which should
5234         not be necessary anymore.
5235         Do include dbus-gtype-specialized.h, which are utilities
5236         for GLib container types.
5237         Add various #defines for types such as
5238         DBUS_TYPE_G_BOOLEAN_ARRAY.
5239         (DBusGValueIterator, DBusGValue): Define, not fully used
5240         yet.
5241         (dbus_g_value_get_g_type): Type for recursive value.
5242         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5243         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5244         (dbus_g_value_free): Prototypes.
5245         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5246         (dbus_g_proxy_set_interface): Prototype.
5247         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5248         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5249         types.
5250         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5251         Accessors.
5252         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5253         doing async invocations.
5254         (dbus_g_method_return, dbus_g_method_return_error):
5255         Prototypes.
5256         * doc/dbus-tutorial.xml: Update GLib section.
5257         
5258         * tools/dbus-viewer.c (load_child_nodes): Update
5259         for new invocation type of dbus_g_proxy_end_call.
5260         (load_from_service_thread_func): Ditto.
5261
5262         * tools/print-introspect.c (main): Ditto.
5263
5264         * tools/dbus-names-model.c (have_names_notify)
5265         (names_model_reload, names_model_set_connection)
5266         Use GTypes.
5267
5268         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5269         needed since Python bindings use GLib bindings.
5270
5271         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5272         Add --prefix argument.
5273
5274         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5275         unneeded --ignore-unsupported arg.
5276         
5277         * test/glib/test-service-glib.c: 
5278         * test/glib/test-service-glib.xml:
5279         * test/glib/test-dbus-glib.c: Add many more tests.
5280
5281 2005-06-06  David Zeuthen  <davidz@redhat.com>
5282
5283         * doc/TODO: Add item about need to remove deprecated functions.
5284
5285         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5286
5287         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5288         to repair the ABI which was broken with the last commit.
5289
5290 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5291
5292         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5293         (dbus_connection_disconnect): renamed to dbus_connection_close 
5294         for API symmetry with dbus_connection_open
5295         (_dbus_connection_open_internal): 
5296         s/dbus_connection_disconnect/dbus_connection_close
5297
5298         * dbus/dbus-bus.c (dbus_bus_get):
5299         s/dbus_connection_disconnect/dbus_connection_close
5300
5301         * bus/connection.c (bus_connections_unref, 
5302         bus_connections_setup_connection, bus_connections_expire_incomplete):
5303         s/dbus_connection_disconnect/dbus_connection_close
5304
5305         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5306         kill_client_connection_unchecked, check_hello_connection):
5307         s/dbus_connection_disconnect/dbus_connection_close
5308
5309         * bus/bus.c (new_connection_callback):
5310         s/dbus_connection_disconnect/dbus_connection_close
5311
5312         * tools/dbus-send.c (main):
5313         s/dbus_connection_disconnect/dbus_connection_close
5314
5315         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5316         s/dbus_connection_disconnect/dbus_connection_close
5317         
5318         * test/test-service.c (path_message_func, filter_func):
5319         s/dbus_connection_disconnect/dbus_connection_close
5320         
5321         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5322         
5323 2005-05-25  Colin Walters  <walters@verbum.org>
5324
5325         * dbus/dbus-protocol.h: Move various bus service #defines such
5326           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5327           dbus/dbus-shared.h.
5328         * dbus/dbus-shared.h: Various defines moved here.
5329         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5330
5331 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5332
5333         * python/__init__.py: Python bindings deserve a minor version
5334         update.  Upped to (0, 40, 2)
5335
5336 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5337
5338         * python/decorators.py: add explicitly_pass_message decorator
5339         for passing in the dbus message as keyword for edge case signal
5340         handling
5341
5342         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5343         to conform with what dbus expects for match rules
5344         (SignalMatchRule.execute): add the dbus message as a keyword
5345         if the signal handler has requested it
5346
5347         * python/examples/example/signal-recipient.py: added some more
5348         examples on how to hook up to signals
5349
5350 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5351
5352         * python/decorators.py: import dbus_bindings
5353
5354         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5355         SignalMatchNode): new classes that implement wildcard signal
5356         callback matching using a tree lookup. Heavily modified from a
5357         patch sent by Celso Pinto (fd.o bug #3241)
5358
5359         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5360         use new match classes to handle signals.
5361
5362 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5363         
5364         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5365
5366 2005-05-18  Havoc Pennington  <hp@redhat.com>
5367
5368         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5369         gettext. Not really worth requiring yet perhaps, but any
5370         production quality 1.0 would require it so we should go ahead and
5371         get things set up. We do have a couple token calls to
5372         bindtextdomain in the code already.
5373
5374 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5375
5376         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5377         when using recursive g_main_loops
5378
5379         * python/_dbus.py (class Bus): add the ProxyObjectClass
5380         alias for ProxyObject to make it easier for the Twisted 
5381         networking framework to integrate dbus.
5382
5383         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5384         alias for ProxyMethod to make it easier for the Twisted 
5385         networking framework to integrate dbus. 
5386
5387 2005-05-11  Ross Burton  <ross@openedhand.com>
5388
5389         * glib/dbus-glib-tool.c: Add --prefix argument.
5390         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5391         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5392         Add prefix argument.
5393         (generate_glue): Pass prefix argument down.
5394         (dbus_binding_tool_output_glib_server): Pass prefix to
5395         glib-genmarshal.
5396         
5397 2005-05-11  Colin Walters  <walters@verbum.org>
5398
5399         * tools/dbus-send.c (append_array): New function.
5400         (append_arg): Broken out from main.
5401         (main): Add cheesy hack to send arrays and variants.
5402         (usage): Update.
5403         * tools/dbus-print-message.c (print_iter): Broken out
5404         from main.
5405
5406 2005-05-11  Colin Walters  <walters@verbum.org>
5407
5408         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5409         New function, returns signature string for signature iter.
5410         * dbus/dbus-signature.h: Prototype it.
5411         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5412         New function, returns signature string for message iter.
5413         (dbus_message_iter_get_array_len): New function, returns
5414         length of array.
5415         (dbus_message_iter_get_fixed_array): Fix assertion; this
5416         function should be used when the iter is pointing to the
5417         contents of an array
5418         * dbus/dbus-message.h: Prototypes.
5419         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5420         New function; returns length of an array.
5421         * dbus/dbus-marshal-recursive.h: Prototype it.
5422         
5423 2005-05-11  Colin Walters  <walters@verbum.org>
5424
5425         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5426         compilation error.
5427         
5428 2005-05-08  Havoc Pennington  <hp@redhat.com>
5429
5430         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5431         daemon's pid, not the parent's pid, to the file descriptor.
5432         Reported by Taj Morton.
5433
5434 2005-05-05  Havoc Pennington  <hp@redhat.com>
5435
5436         * configure.in (LT_*): add notes on how the libtool versioning
5437         works to save thinking. Increment soname to indicate protocol
5438         breakage (though really the library interface hasn't changed I
5439         guess)
5440
5441         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5442         verify the GUID received from server matches what we were
5443         expecting, if we had an expectation
5444
5445         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5446         (_dbus_auth_get_guid_from_server): new function
5447         (send_begin): parse the OK args
5448
5449         * doc/dbus-specification.xml: add GUID to the auth protocol
5450
5451 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5452
5453         * Fix my name in previous changelog ;)
5454
5455         * python/proxies.py (ProxyObject.__getattr__): add further patch
5456         from Anthony Baxter to throw an AttributeError when python 
5457         __special__ functions are called instead of marshling them over 
5458         the bus (Bug#1685 comment 3).
5459
5460 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5461
5462         * python/Makefile.am: changed to use pyexecdir for the binding
5463         shared libraries (Bug#2494)
5464
5465         * python/exceptions.py: bring exceptions over from the bindings
5466         so they can be used in applications (Bug#2036)
5467         Make all exceptions derive from DBusException
5468
5469         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5470         of classes so that print obj doesn't throw an exception (Bug #1685)
5471
5472 2005-05-03  Ross Burton  <ross@openedhand.com>
5473
5474         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5475         Return if we get an error during registration.  Set up a
5476         weak reference on object to unregister if object is destroyed.
5477         (unregister_gobject): New function.
5478         
5479 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5480
5481         * python/dbus_bindings.pyx.in: 
5482         - added new type classes for hinting to the marashaler what type 
5483         to send over the wire
5484         - added int16 and uint16 marshalers
5485         - Fixed a bug in the type constants that caused int32 to go out
5486         as uint16 over the wire
5487         * python/dbus.py: split up into different files and renamed _dbus.py
5488         * python/__init__.py, python/_util.py, python/decorators.py, 
5489         python/exceptions.py, python/proxies.py, python/services.py,
5490         python/types.py: new files split off from dbus.py
5491         * python/Makefile.am: Add new files, remove dbus.py and 
5492         install all python files to <python module dir>/dbus
5493         * python/examples/*: Added #!/usr/bin/env python to the top of
5494         every example.  Patch provided by Tatavarty Kalyan
5495
5496 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5497
5498         * NEWS: Update to 0.33
5499
5500 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5501
5502         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5503         method for doing async calls
5504         (_pending_call_notification): New C function for handling pendning call
5505         callbacks
5506         (set_notify): New method for setting pending call notification
5507         
5508         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5509         Async capabilities added to remote method calls
5510         (Sender): class removed
5511         (RemoteService): class removed
5512         (ObjectTree): class removed for now
5513         (RemoteObject): Renamed to ProxyObject
5514         (RemoteMethod): Renamed to ProxyMethod
5515         (method): Decorator added for decorating python methods as dbus methods
5516         (signal): Decorator added for decorating python methods as signal emitters
5517         (ObjectType): Metaclass added for generating introspection data and the
5518         method callback vtable
5519         (Interface): Wrapper class added to wrap objects in a dbus interface
5520         (Object): Uses ObjectType as its metaclass and exports Introspect
5521         of the org.freedesktop.DBus.Introspectable interface
5522         (ValidationException, UnknownMethodException): new exceptions
5523
5524         * python/examples/*: Modified to fit with the new bindings
5525
5526 2005-04-23  Havoc Pennington  <hp@redhat.com>
5527
5528         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5529         reported by Tony Houghton
5530
5531         * test/test-service.c (main): test
5532         dbus_connection_get_object_path_data()
5533
5534         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5535         the exact_match
5536         (_dbus_object_tree_get_user_data_unlocked): new function used by
5537         dbus_connection_get_object_path_data()
5538         (do_register): add assertion test for get_user_data_unlocked
5539         (object_tree_test_iteration): more tests
5540
5541         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5542         new function from Dan Reed to let you get the user data from 
5543         dbus_connection_register_object_path()
5544
5545 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5546
5547         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5548         in numerous places that did not account for the NULL terminator
5549         (signature_from_seed): changed the manual string copy loop to 
5550         just use strcpy instead
5551         make check should now pass
5552
5553 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5554
5555         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5556         so that it allows messages that are not signals to pass in 
5557         NULL as the interface.
5558
5559 2005-04-18  David Zeuthen  <davidz@redhat.com>
5560
5561         * glib/dbus-gmain.c (io_handler_destroy_source): 
5562         (timeout_handler_destroy_source, connection_setup_free): 
5563         Also unref the source to avoid memory leaks.
5564
5565 2005-04-13  David Zeuthen  <davidz@redhat.com>
5566
5567         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5568         more reasonable, yet still totally arbitrary, value :-). 
5569
5570 2005-04-13  David Zeuthen  <davidz@redhat.com>
5571
5572         * doc/TODO: Added an "important for 1.0" item about selinux
5573         allow/deny messages
5574
5575 2005-04-13  David Zeuthen  <davidz@redhat.com>
5576
5577         * bus/selinux.c: Add c-file-style to top of file
5578         (log_audit_callback): Don't free the data here anymore
5579         (bus_selinux_check): Don't take spid and tpid since appending
5580         that to auxdata may OOM.
5581         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5582         to the caller if we are OOM by taking an error object.
5583         (bus_selinux_allows_send): -do-
5584
5585         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5586         and bus_selinux_allows_send
5587
5588         * bus/bus.c (bus_context_check_security_policy): Pass error and
5589         pass on OOM thrown by bus_selinux_allows_send()
5590
5591         * bus/services.c (bus_registry_acquire_service): Pass error and
5592         pass on OOM thrown by bus_selinux_allows_acquire_service()
5593
5594 2005-04-13  Havoc Pennington  <hp@redhat.com>
5595
5596         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5597         message at a time to avoid monopolizing the main loop, bug 
5598         #2953 from Benjamin Otte
5599
5600 2005-04-09  Havoc Pennington  <hp@redhat.com>
5601
5602         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5603         possible overlap, fix from Daniel Reed
5604         (fixup_alignment): fix signedness warnings
5605         (_dbus_string_append_unichar): ditto
5606
5607 2005-04-09  Havoc Pennington  <hp@redhat.com>
5608
5609         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5610
5611         * glib/dbus-glib-tool.c (main): fix warning
5612
5613         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5614
5615         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5616         add a new function that can be used in simple applications that
5617         don't have a main loop and are willing to block
5618
5619 2005-04-05  David Zeuthen  <davidz@redhat.com>
5620
5621         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5622
5623         * glib/dbus-gmain.c:
5624         (io_handler_destroy_source): Remove from list of IO handlers
5625         of the ConnectionSetup object
5626         (timeout_handler_destroy_source): -do- for timeout handlers
5627         (io_handler_source_finalized): Don't remove from list since
5628         we now do that in io_handler_destroy_source(). Renamed from
5629         io_handler_source_destroyed
5630         (timeout_handler_source_destroyed): -do- for timeout handlers
5631         (connection_setup_free): It is now safe to iterate over all
5632         IO and timeout handlers as the _destroy_source removes them
5633         from the list synchronously
5634
5635 2005-03-30  Havoc Pennington  <hp@redhat.com>
5636
5637         * configure.in: change check to gtk 2.4
5638
5639         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5640         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5641         to 2.4
5642
5643 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5644
5645         * News: Update 0.32
5646
5647         * HACKING: Fixed realease instructions.  configure.in should be updated to
5648           the next release by the person who made the last release.
5649
5650 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5651
5652         * python/lvalue_cast_post_process.py - removed.  Patch has been
5653           submitted to Pyrex maintainers that fixes gcc4.0 errors
5654
5655         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5656
5657 2005-03-24  Daniel Reed  <n@ml.org>
5658
5659         * tools/Makefile.am: Make print-introspect and
5660         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5661
5662 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5663
5664         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5665
5666         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5667           had in Red Hat packages for a while but for some reason never 
5668           got merged upstream
5669           (_dbus_is_a_number): New checks if a string
5670           can be converted to a number and does the conversion if it can
5671           (_dbus_user_database_lookup): Add check to see if the given username
5672           is a udi.  This allows udi's to be used instead of usernames in the
5673           config file.
5674           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5675           is a gdi.  This allows gdi's to be used instead of groupnames in the
5676           config file.
5677
5678 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5679
5680         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5681           code so that it compiles with gcc4.0
5682
5683         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5684           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5685           results back to dbus_binding.c
5686
5687 2005-03-20  Colin Walters  <walters@verbum.org>
5688
5689         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5690
5691         * configure.in: Require GTK+ 2.6.
5692         
5693 2005-03-20  Colin Walters  <walters@verbum.org>
5694
5695         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5696
5697 2005-03-17  Tom Parker  <palfrey@tevp.net>
5698
5699         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5700         print DBUS_UID_UNSET; instead print passed username.  Also
5701         be sure to actually use gid looked up in cache.
5702         
5703         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5704         for DBUS_GID_UNSET and groupname.
5705
5706 2005-03-17  Colin Walters  <walters@verbum.org>
5707
5708         * bus/print-introspect.c: Move to tools/.
5709         * bus/run-with-tmp-session-bus.sh: Ditto.
5710         
5711         * glib/Makefile.am (dbus-glib-bindings.h): Move
5712         generation to tools/Makefile.am.
5713
5714         * test/glib/run-test.sh: Update to handle move
5715         of run-with-tmp-session-bus.sh.
5716
5717         * test/glib/test-service-glib.c: Update to handle
5718         move of dbus-glib-bindings.h.
5719
5720         * tools/print-introspect.c: Moved here
5721         from bus/, and ported to GLib bindings.
5722
5723         * tools/run-with-tmp-session-bus.sh: Moved here
5724         from bus/.
5725
5726         * tools/Makefile.am: Generate dbus-glib-bindings.h
5727         and dbus-bus-introspect.xml here.
5728
5729         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5730         Update.
5731
5732 2005-03-17  Colin Walters  <walters@verbum.org>
5733
5734         * bus/driver.c (write_args_for_direction): Use
5735         _dbus_string_get_const_data to retrieve string;
5736         _dbus_string_get_const_data_len doesn't actually return
5737         a NULL-terminated substring.
5738
5739         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5740         (main): Change to use org_freedesktop_DBus_request_name
5741         instead of using g_proxy_begin_call/end_call.
5742
5743 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5744
5745         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5746         generating the finalizer.  Fixes from Ben Maurer.
5747
5748 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5749
5750         * mono/BusDriver.cs: Update method names: ListServices
5751         becomes ListNames; GetOwner becomes GetNameOwner.
5752
5753         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5754         onto the eval stack when removing the delegate.
5755
5756 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5757
5758         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5759         LT_CURRENT.  Set it to the autoconf variable.
5760                                                                                 
5761         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5762         classes that disconnects the signal handler delegate from the
5763         service object.  Fixes a big leak of proxy objects on the
5764         client side of things.  Patch from Ben Maurer
5765         <bmaurer@ximian.com>
5766
5767 2005-03-12  Colin Walters  <walters@verbum.org>
5768
5769         * bus/driver.c (write_args_for_direction): New function,
5770         parses a type signature into arguments and outputs to
5771         XML.
5772         (bus_driver_handle_introspect): Use it instead of
5773         hardcoding XML for certain signatures.
5774         
5775         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5776         dependency on dbus-daemon.
5777
5778         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5779         argument, pass it to dbus_binding_tool_output_glib_client.
5780
5781         * glib/dbus-binding-tool-glib.c
5782         (generate_client_glue): Protect against multiple inclusion.
5783         (dbus_binding_tool_output_glib_client): Add
5784         G_BEGIN_DECLS/G_END_DECLS.
5785
5786         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5787         Change to just take iface prefix directly.
5788         (write_formal_parameters): Clarify error message.
5789         (check_supported_parameters): New function; checks to see type
5790         signatures of method parameters are supported.
5791         (generate_client_glue): Handle ignore_unsupported flag.
5792         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5793         parameter.
5794
5795         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5796         --ignore-unsupported by default until glib bindings
5797         support arrays.
5798
5799 2005-03-11  Colin Walters  <walters@verbum.org>
5800
5801         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5802         install it.
5803
5804         * bus/print-introspect.c: New file; prints introspection
5805         data for a given name and object path.
5806
5807         * bus/run-with-tmp-session-bus.sh: New file, refactored
5808         from test/glib/run-test.sh.  Creates a temporary session
5809         bus and runs another program.
5810
5811         * test/glib/run-test.sh: Refactor to invoke
5812         run-with-tmp-session-bus.sh.
5813
5814         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5815         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5816         macros instead of hardcoding.
5817
5818         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5819
5820 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5821
5822         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5823         this unref; it doesn't match up evenly in some codepaths.
5824         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5825         this evenly matches with the ref near the top of this function.
5826
5827 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5828
5829         * dbus/dbus-object-tree.c
5830         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5831         and we try to unregister a path that's not registered, still go
5832         through the process of unlocking and don't just return.
5833
5834 2005-03-09  Colin Walters  <walters@verbum.org>
5835
5836         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5837         to this are generated for client-side wrappers.  Invokes a
5838         D-BUS method and returns reply values.  
5839
5840         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5841         function; writes signature string for argument direction.
5842         (write_args_for_direction): Change to pass input values directly
5843         instead of via address, and fix indentation.
5844         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5845         make generated wrappers inlineable.
5846
5847         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5848         note about using dbus_type_is_fixed.
5849
5850         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5851         dbus/dbus-signature.c as dbus_type_is_fixed.
5852
5853         All callers updated.
5854
5855         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5856         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5857
5858         * dbus/dbus-signature.h: Prototype.
5859
5860         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5861         error printf code.
5862
5863         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5864         appropriate instead of just freeing it.
5865         (main): Free returned strings using g_free.
5866
5867         * test/glib/Makefile.am (test-service-glib-glue.h)
5868         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5869
5870         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5871         simply maps a simple D-BUS type to GType.
5872         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5873         GType.
5874         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5875         initialize the value with it.
5876         (dbus_gvalue_binding_type_from_type): Unused, delete.
5877         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5878         various types instead of unmarshalling to value data directly.
5879         Remove can_convert boolean.
5880         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5881         returning directly instead of using can_convert boolean.
5882         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5883         Stores a GValue in a pointer to a value of its corresponding C
5884         type.
5885
5886         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5887         add dbus_gvalue_store.
5888
5889 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5890
5891         Fix a bunch of lifecycle and memory management problems
5892         in the mono bindings.
5893
5894         * mono/Arguments.cs (Arguments): Implement IDisposable
5895
5896         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5897         strictly a static class.
5898
5899         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5900         delegates into this file.
5901         (Connection): Implement IDisposable.
5902         (Dispose): Disconnect the connection and set the raw connection
5903         pointer to IntPtr.Zero.
5904         (~Connection): Call Dispose().
5905         (RegisterObjectPath): Added.  Manages the registration of object
5906         paths so we can cleanly disconnect them at dispose/finalize time.
5907         (UnregisterObjectPath): Ditto.
5908         (set_RawConnection): Unregister all of the object paths when
5909         changing the underlying DBusConnection.  Add them back onto the
5910         new connection, if any.
5911
5912         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5913         more unmanaged resources anymore, so it's not necessary.  Move all
5914         the DBusObjectPathVTable stuff out of here.
5915         (Handler): Save references to our delegates so that they don't get
5916         finalized.  Call Connection.RegisterObjectPath() instead of
5917         dbus_connection_register_object_path() directly.
5918         (Message_Called): Dispose the message after we're finished with
5919         it.
5920
5921         * mono/Message.cs (Message): Implement IDisposable.
5922         (Dispose): Dispose the Arguments, and set the RawMessage to
5923         IntPtr.Zero.
5924         (SendWithReplyAndBlock): We own the ref to the reply that comes
5925         back from dbus_connection_send_with_reply_and_block() so add a
5926         comment about that and unref it after we've constructed a managed
5927         MethodReturn class around it.  Fixes a big, big leak.
5928
5929         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5930         method.
5931         (BuildSignalHandler): After we've sent the Signal message, dispose
5932         of it.
5933         (BuildMethod): Dispose of the method call and reply messages after
5934         we've sent the message and extracted the data we want from the
5935         reply.
5936
5937         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5938         anymore.
5939         (Service_FilterCalled): Dispose of the message after we're
5940         finished with it.
5941
5942 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5943
5944         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5945         After we attach our pending call to the connection, unref
5946         it.  Fixes a leak.
5947  
5948         * mono/Connection.cs (set_RawConnection): Disconnect our
5949         filter and match callbacks from the old connection and
5950         reconnect them to the new connection, if any.
5951
5952         * mono/DBusType/Array.cs: "Code" is a static member, so
5953         don't use "this" to refer to it.  Fix for stricter checking
5954         in Mono 1.1.4.
5955  
5956         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5957         object path that we pass into unmanaged code.
5958  
5959         * mono/DBusType/String.cs (Append): Don't leak the string
5960         that we pass into unmanged code.
5961
5962 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5963         * NEWS: Update for 0.31
5964
5965         * configure.in: Release 0.31
5966         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5967
5968         * qt/Makefile.am: fixed build
5969
5970         * dbus/Makefile.am: soname bump for libdbus
5971
5972         * glib/Makefile.am: soname bump for libdbus-glib
5973
5974 2005-03-05  Havoc Pennington  <hp@redhat.com>
5975
5976         * dbus/dbus-sysdeps.c:
5977         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5978         value
5979         (_dbus_generate_random_bytes_buffer): fix return value
5980
5981         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5982         checks actually work, from Tom Parker <fdo@tevp.net>
5983
5984 2005-03-01  Colin Walters  <walters@verbum.org>
5985
5986         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5987         functions copied from dbus-glib-tool.c.
5988         (main): Convert lots of error code to use them.
5989         Also add some testing for introspection bits.
5990
5991 2005-03-01  Colin Walters  <walters@verbum.org>
5992         
5993         * doc/TODO: Remove introspection signature TODO.
5994
5995 2005-02-27  Colin Walters  <walters@verbum.org>
5996
5997         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5998         Change return value to const char * instead of int so we can do
5999         full signatures.
6000         (struct PropertyInfo, struct ArgInfo): Store char *.
6001         (property_info_new, arg_info_new): Update parameters, strdup.
6002         (property_info_unref, arg_info_unref): Free.
6003
6004         * glib/dbus-gidl.h: Update prototypes.
6005
6006         * glib/dbus-gparser.c (basic_type_from_string): Delete.
6007         (validate_signature): New function, just validates signature and
6008         sets GError.
6009         (parse_property, parse_arg): Invoke validate_signature.  Store
6010         signature instead of just type code.
6011
6012         * glib/dbus-gvalue.c (base_type_from_signature): New utility
6013         function to return a primary type for a signature, dropping
6014         information about types in container types.
6015         (dbus_gvalue_genmarshal_name_from_type)
6016         (dbus_gvalue_binding_type_from_type)
6017         (dbus_gvalue_ctype_from_type): Update to take full signature
6018          instead of type code.
6019         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
6020
6021         * glib/dbus-gvalue.h: Update prototypes for above.
6022
6023         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
6024         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
6025         (introspect_properties, introspect_signals, write_interface):
6026         Update to handle signatures, and remove usage of
6027         _dbus_gutils_type_to_string.
6028         (handle_introspect): Print out type codes instead of e.g. "string"
6029         in hardcoded introspection XML; also use x_AS_STRING constants
6030         instead of hardcoding in string.
6031
6032         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
6033         to string.  Remove usage of _dbus_gutils_type_to_string.
6034
6035         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
6036
6037         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
6038         deletion.
6039         
6040         * glib/dbus-binding-tool-glib.c (compute_marshaller)
6041         (compute_marshaller_name, generate_glue): Handle signature change
6042         to string.
6043         (write_formal_parameters, write_args_for_direction): Ditto, and
6044         remove FIXME.
6045
6046         * tools/dbus-tree-view.c (type_to_string): Delete.
6047         (info_set_func_text): Update to print full signatures.
6048
6049         * test/glib/test-service-glib.xml: Change types to new
6050         introspection format.
6051
6052 2005-02-26  Havoc Pennington  <hp@redhat.com>
6053
6054         * doc/TODO: remove the "guid" item
6055
6056         * test/glib/test-profile.c (no_bus_thread_func): use open_private
6057         (with_bus_thread_func): use open_private
6058
6059         * dbus/dbus-connection.c (dbus_connection_open_private): new
6060         function that works like the old dbus_connection_open()
6061         (dbus_connection_open): now returns an existing connection if
6062         possible
6063
6064         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
6065         through the GUID to the transport
6066
6067         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
6068         GUID in hex-encoded form.
6069
6070         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
6071         pass GUID argument in to the transport
6072
6073         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
6074         guid argument
6075
6076         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
6077
6078         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
6079
6080 2005-02-25  Havoc Pennington  <hp@redhat.com>
6081
6082         * doc/dbus-specification.xml: document the GUID thing
6083
6084         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
6085         globally unique ID for the server, and put a "guid=hexencoded"
6086         field in the address
6087
6088         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
6089
6090         * dbus/dbus-message.c: ditto
6091
6092         * dbus/dbus-dataslot.c: ditto
6093
6094         * dbus/dbus-list.c: ditto
6095
6096         * dbus/dbus-internals.h: wait, just include
6097         dbus-threads-internal.h here
6098         
6099         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
6100         use in main library
6101
6102         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
6103
6104 2005-02-24  Colin Walters  <walters@verbum.org>
6105
6106         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
6107
6108 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
6109
6110         * glib/Makefile.am: added dbus-gobject.h to sources list
6111         so distcheck doesn't fail
6112         
6113 2005-02-24  Havoc Pennington  <hp@redhat.com>
6114
6115         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
6116         you must disconnect before unref, since locking and other things
6117         are screwed up otherwise. Fix assorted other locking stuff.
6118
6119         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
6120         fix compilation
6121
6122         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
6123         into a private header and don't export from the library
6124
6125         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
6126
6127 2005-02-24  Colin Walters  <walters@verbum.org>
6128         
6129         * dbus/dbus-signature.c: New file; implements various functions
6130         related to type signatures.  Includes an interator for parsing,
6131         validation functions.
6132         (dbus_type_is_basic): Moved here from
6133         dbus-marshal-basic.c:_dbus_type_is_basic.
6134         (dbus_type_is_container): Moved here from
6135         dbus-marshal-basic.c:_dbus_type_is_container.
6136
6137         All callers of _dbus_type_is_container and _dbus_type_is_basic
6138         updated, and include dbus-signature.h.
6139
6140         * dbus/dbus-signature.h: New file; prototypes for the above.
6141
6142         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
6143         dbus-signature.h.
6144
6145         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
6146         function factored out of _dbus_first_type_in_signature.
6147         (_dbus_first_type_in_signature_c_str): New function; returns first
6148         type code for a type signature character.
6149
6150         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
6151         handle function moves.
6152
6153         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
6154
6155         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
6156         function; skips to next complete type in type signature.
6157         Implemented using previous skip_one_complete_type.  Now
6158         skip_one_complete_type just delegates to
6159         _dbus_type_signature_next.
6160
6161         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
6162         to dbus-signature.c
6163         (_dbus_type_is_container): Ditto.
6164
6165         * doc/dbus-specification.xml: Update introspection sample to
6166         use real type signatures.
6167
6168         * dbus/dbus-test.h: Prototype signature test.
6169
6170         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
6171         signature tests.
6172
6173         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
6174
6175 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
6176
6177         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
6178         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
6179
6180 2005-02-21  Colin Walters  <walters@verbum.org>
6181
6182         * dbus/dbus-test-main.c (main): Take optional specific test
6183         argument.
6184
6185         * dbus/dbus-test.c (run_test): New function, runs a test function
6186         with no data directory.
6187         (run_data_test): Like above, but takes data directory.
6188         (dbus_internal_do_not_use_run_tests): Take
6189         specific test argument.  Replace lots of cut n' paste code
6190         with run_test and run_data_test.
6191
6192         * dbus/dbus-test.h: Update prototype for
6193         dbus_internal_do_not_use_run_tests.
6194
6195 2005-02-20  Havoc Pennington  <hp@redhat.com>
6196
6197         Fix bugs reported by Daniel P. Berrange
6198         
6199         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
6200         (protected_change_watch): new function
6201         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
6202         (_dbus_server_add_watch): change to work like the
6203         dbus-connection.c equivalents; like those, probably kind of
6204         busted, but should at least mostly work for now
6205         (dbus_server_disconnect): drop the lock if we were already
6206         disconnected, patch from Daniel P. Berrange
6207
6208         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
6209         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
6210         same stuff
6211
6212         * doc/TODO: todo about unscrewing this mess
6213
6214 2005-02-19  Colin Walters  <walters@verbum.org>
6215
6216         * glib/dbus-binding-tool-glib.c
6217         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6218
6219         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6220         as errno.h and sys/stat.h.
6221         (lose): New function, prints error with
6222         newline and exits.
6223         (lose_gerror): Similar, but takes GError for message.
6224         (main): Add --output argument to specify output file to write to,
6225         instead of always printing to stdout.  In this mode, determine
6226         timestamps on source files to see whether any are newer than the
6227         target file.  If not, exit.  Also convert a number of error
6228         messages to use lose (since it's shorter), and switch to using
6229         g_io_channel_shutdown.
6230
6231 2005-02-19  Havoc Pennington  <hp@redhat.com>
6232
6233         * glib/dbus-gobject.c
6234         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6235
6236         * glib/dbus-glib.c: fix doxygen warnings
6237
6238         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6239         is found on an <arg>
6240
6241 2005-02-17  Colin Walters  <walters@verbum.org>
6242
6243         * glib/dbus-gobject.h: Don't export
6244         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6245         
6246         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6247         (invoke_object_method): Handle it.
6248
6249         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6250         Handle rename.
6251         
6252 2005-02-17  Colin Walters  <walters@verbum.org>
6253
6254         * bus/.cvsignore, doc/.cvsignore
6255         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6256         Update.
6257
6258 2005-02-17  Colin Walters  <walters@verbum.org>
6259         
6260         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6261         Rename to DBUS_SERVICE_DBUS.
6262         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6263         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6264         Change the value from "org.freedesktop.Local"
6265         to "org.freedesktop.DBus.Local".
6266         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6267         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6268         DBUS_INTERFACE_INTROSPECTABLE.
6269         Change the value from "org.freedesktop.Introspectable"
6270         to "org.freedesktop.DBus.Introspectable".
6271         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6272         DBUS_INTERFACE_PROPERTIES.
6273         Change the value from "org.freedesktop.Properties"
6274         to "org.freedesktop.DBus.Properties".
6275         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6276         DBUS_INTERFACE_PEER.
6277         Change the value from "org.freedesktop.Peer"
6278         to "org.freedesktop.DBus.Peer".
6279         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6280         DBUS_INTERFACE_LOCAL.
6281         Change the value from "org.freedesktop.Local"
6282         to "org.freedesktop.DBus.Local".
6283
6284         All other users of those constants have been changed.
6285
6286         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6287
6288         * glib/dbus-gobject.c (handle_introspect): Use constants.
6289
6290         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6291
6292 2005-02-17  Colin Walters  <walters@verbum.org>
6293
6294         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6295         (parse_node, parse_interface, parse_method, parse_signal)
6296         (parse_property, parse_annotation): Lose if we're currently in an
6297         annotation.
6298         (parse_annotation): New function.
6299         (parser_start_element, parser_end_element): Handle annotation.
6300         (parse_method, parse_interface): Remove support for c_name attribute,
6301         switch to annotations.
6302
6303         * glib/dbus-gidl.h (interface_info_get_binding_names)
6304         (method_info_get_binding_names)
6305         (interface_info_get_binding_name, method_info_get_binding_name)
6306         (interface_info_set_binding_name, method_info_set_binding_name):
6307         Remove.
6308         (interface_info_get_annotations, method_info_get_annotations)
6309         (interface_info_get_annotation, method_info_get_annotation)
6310         (interface_info_add_annotation, method_info_add_annotation):
6311         Prototype.
6312
6313         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6314         for "bindings".
6315         (struct MethodInfo): Ditto.
6316         Straightfoward conversion of binding methods into annotation methods
6317         as prototyped.
6318
6319         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6320
6321         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6322
6323         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6324         Use new annotation API.
6325
6326         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6327         annotation element.
6328         
6329         * doc/dbus-specification.xml: Discuss introspection annotations,
6330         include list of well-known annotations.
6331
6332         * test/glib/test-service-glib.xml: Make validate against new DTD.
6333
6334 2005-02-17  Colin Walters  <walters@verbum.org>
6335
6336         This patch is based on initial work from
6337         Paul Kuliniewicz <kuliniew@purdue.edu>.
6338
6339         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6340         initialization of GValue from dbus type to here.
6341         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6342         for the "glib-genmarshal" program from a DBus type.
6343         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6344         into the C name for it we use in the glib bindings.
6345         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6346         glib C type (not GValue).
6347         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6348
6349         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6350         from dbus-gobject.c.
6351
6352         * glib/dbus-gutils.h: Prototype it.
6353
6354         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6355         (marshal_dbus_message_to_g_marshaller): Use new shared function
6356         dbus_glib_marshal_dbus_message_to_gvalue_array.
6357
6358         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6359         Will be changed once we have annotations.
6360
6361         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6362         GStaticRWLock.  Callers updated.
6363         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6364         (string_table_next): New function for iterating over zero-terminated
6365         string value array.
6366         (string_table_lookup): New function; retrieves specific entry in
6367         array.
6368         (get_method_data): New function; look up method data in object data chunk.
6369         (object_error_domain_prefix_from_object_info)
6370         (object_error_code_from_object_info): New functions, but not implemented yet.
6371         (method_interface_from_object_info): New function; retrieve interface name.
6372         (method_name_from_object_info): New function; retrieve method name.
6373         (method_arg_info_from_object_info): New function; retrieve argument data.
6374         (arg_iterate): New function; iterates over serialized argument data.
6375         (method_dir_signature_from_object_info): New function; returns a
6376         GString holding type signature for arguments for just one
6377         direction (input or output).
6378         (method_input_signature_from_object_info)
6379         (method_output_signature_from_object_info): New functions.
6380         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6381         converts dbus message arguments into a GValue array.  Used for both
6382         signal handling and method invocation.
6383         (struct DBusGlibWriteIterfaceData): New utility structure.
6384         (write_interface): New function; generate introspection XML for
6385         an interface.
6386         (introspect_interfaces): New function; gathers all interface->methods,
6387         generates introspection XML for them.
6388         (handle_introspect): Invoke introspect_interfaces.
6389         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6390         (lookup_object_and_method): New function; examines an incoming message
6391         and attempts to match it up (via interface, method name, and argument
6392         signature) with a known object and method.
6393         (gerror_domaincode_to_dbus_error_name): New function; converts a
6394         GError domain and code into a DBus error name.  Needs GError data
6395         added to object introspection to work well.
6396         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6397         GError.
6398         (invoke_object_method): New function to invoke an object method
6399         looked up via lookup_object_and_method.  Parses the incoming
6400         message, turns it into a GValue array, then invokes the marshaller
6401         specified in the DBusGMethodInfo.  Creates a new message with
6402         either return values or error message as appropriate.
6403         (gobject_message_function): Invoke lookup_object_and_method and
6404         invoke_object_method.
6405
6406         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6407         (enum DBusBindingOutputMode): New enum for binding output modes.
6408         (pretty_print): Print binding names.
6409         (dbus_binding_tool_error_quark): GError bits.
6410         (version): Fix typo.
6411         (main): Create GIOChannel for output.  Parse new --mode argument,
6412         possible values are "pretty-print", "glib-server", "glib-client".
6413         Use mode to invoke appropriate function.
6414         
6415         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6416
6417         * glib/dbus-glib-tool.h: New header, just includes GError bits
6418         for now.
6419
6420         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6421         maps binding style to name.
6422         (struct MethodInfo): Ditto.
6423         (get_hash_keys, get_hash_key): Utility function, returns keys for
6424         a GHashTable.
6425         (interface_info_new, method_info_new): Initialize bindings.
6426         (interface_info_unref, method_info_unref): Destroy bindings.
6427         (method_info_get_binding_names, method_info_get_binding_name)
6428         (interface_info_get_binding_names, interface_info_get_binding_name):
6429         Functions for retrieving binding names.
6430         (method_info_set_binding_name, interface_info_set_binding_name):
6431         Functions for setting binding names.
6432
6433         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6434         for glib binding generation.
6435
6436         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6437         and client-side glib glue generation.
6438
6439         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6440         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6441         dbus-glib-tool.h.
6442
6443         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6444         of using GClosureMarshal directly.
6445         (struct DBusGObjectInfo): Add n_infos member.
6446
6447         * test/glib/test-service-glib.xml: New file; contains introspection data
6448         for MyTestObject used in test-service-glib.c.
6449
6450         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6451         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6452         (my_object_uppercase, my_object_many_args): New test methods.
6453         (main): Use dbus_g_object_class_install_info to include generated object
6454         info.
6455
6456         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6457         as well as client-side bindings.
6458
6459         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6460         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6461         using both the dbus_gproxy stuff directly as well as the generated bindings.
6462
6463 2005-02-15  Havoc Pennington  <hp@redhat.com>
6464
6465         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6466         complete a pending call, don't run filters first.
6467
6468         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6469         dbus_pending_call_steal_reply
6470
6471         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6472         _dbus_connection_block_pending_call
6473         (dbus_pending_call_get_reply): change to steal_reply and return a
6474         ref
6475
6476         * dbus/dbus-connection.c
6477         (dbus_connection_send_with_reply_and_block): port to work in terms
6478         of DBusPendingCall
6479         (_dbus_connection_block_pending_call): replace block_for_reply
6480         with this
6481
6482 2005-02-14  Havoc Pennington  <hp@redhat.com>
6483
6484         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6485         properly handle looking up group information by name; fix 
6486         from j@bootlab.org
6487
6488 2005-02-13  Havoc Pennington  <hp@redhat.com>
6489
6490         * dbus/dbus-connection.c (dbus_connection_return_message) 
6491         (dbus_connection_borrow_message): hold dispatch lock while message
6492         is outstanding
6493         (_dbus_connection_block_for_reply): hold dispatch lock while we
6494         block for the reply, so nobody steals our reply
6495         (dbus_connection_pop_message): hold the dispatch lock while we
6496         pluck the message
6497
6498 2005-02-13  Havoc Pennington  <hp@redhat.com>
6499
6500         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6501         (_dbus_connection_release_dispatch)
6502         (_dbus_connection_acquire_io_path)
6503         (_dbus_connection_release_io_path): make the mutex and condvar
6504         control access to the "acquired" flag. Drop the connection lock
6505         while waiting on the condvar. Hopefully these are baby steps in
6506         roughly the right direction.
6507
6508 2005-02-13  Havoc Pennington  <hp@redhat.com>
6509
6510         * dbus/dbus-connection.c: use separate mutexes for the condition
6511         variables; this is some kind of baseline for sanity, but the
6512         condition variables still aren't used correctly afaict
6513
6514 2005-02-13  Havoc Pennington  <hp@redhat.com>
6515
6516         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6517         fix a double-unlock
6518
6519         * dbus/dbus-connection.c
6520         (_dbus_connection_detach_pending_call_unlocked): add this
6521
6522         Initial semi-correct pass through to fix thread locking; there are
6523         still some issues with the condition variable paths I'm pretty
6524         sure
6525         
6526         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6527         lock/unlock calls
6528
6529         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6530         rename to add _unlocked
6531         (struct DBusConnection): move "dispatch_acquired" and
6532         "io_path_acquired" to use only one bit each.
6533         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6534         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6535         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6536         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6537         (_dbus_connection_remove_timeout) 
6538         (_dbus_connection_toggle_timeout): drop lock when calling out to
6539         user functions; done in a hacky/bad way.
6540         (_dbus_connection_send_and_unlock): add a missing unlock
6541         (_dbus_connection_block_for_reply): add a missing unlock
6542
6543         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6544         drop lock in a hacky probably unsafe way to call out to user
6545         function
6546
6547 2005-02-12  Havoc Pennington  <hp@redhat.com>
6548
6549         * tools/dbus-tree-view.c (info_set_func_text): display more
6550         details on args
6551
6552         * bus/driver.c (bus_driver_handle_list_services): list the bus
6553         driver
6554
6555         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6556
6557         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6558         (method_info_get_n_args): new function
6559
6560 2005-02-12  Havoc Pennington  <hp@redhat.com>
6561
6562         * bus/driver.c (bus_driver_handle_introspect): add introspection
6563         for bus driver
6564
6565 2005-02-12  Havoc Pennington  <hp@redhat.com>
6566
6567         * bus/driver.c: put the signature of each bus driver method in the
6568         table of handlers and check it on incoming calls; this isn't
6569         really useful, but going to add introspect support in a minute.
6570
6571 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6572
6573         * mono/Connection.cs: The unpredictability of finalizers in mono
6574         prevents us from deterministically disconnecting the filters from
6575         the Service class's finalizer, so move tracking of filters and
6576         matches here.  Add API for that.
6577
6578         * mono/Service.cs: Remove the code, add code which calls the
6579         methods now on the Connection class.
6580
6581 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6582
6583         * python/dbus.py (class Sender): added to support dbus signals better
6584         (Bus::add_signal_receiver): added expand_args parameter which defaults
6585         to True.  When expand args is True the signal handler will pass the 
6586         message arguments as parameters to the signal handler.  If False
6587         revert to previous behavior where the signal handler must get the
6588         argument list from the message.  This is to help port applications
6589         like HAL that have a tendancy to send variable length argument lists.
6590         self._match_rule_to_receivers is now a dict of dicts.
6591         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6592         removing it from a list
6593         (Bus::_signal_func): change signal handlers so that interface,
6594         signal_name, service, path and message are packed into a Sender
6595         object and that is passed to the handler.  If expand_args is True
6596         extract the args list from the message and append it to the parameter
6597         list
6598         
6599         * python/dbus_bindings.pyx.in (class Signature): added to support 
6600         signiature types
6601         (MessageIter::__init__): changed iteration limit to match D-BUS
6602         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6603         STRUCT and VARIENT type support
6604         (MessageIter::python_value_to_dbus_sig): made recursive to support
6605         recursive types
6606         (MessageIter::append*): added Signature, dict, tuple 
6607         support
6608
6609         * python/examples/example-client.py: added examples of getting tuples
6610         and dicts
6611
6612         * python/examples/example-service.py: added examples of sending tuples
6613         and dicts
6614
6615         * python/examples/example-signal-recipient.py: Fixed to handle new
6616         signal callback format
6617
6618 2005-02-10  Havoc Pennington  <hp@redhat.com>
6619
6620         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6621         (call dbus_g_proxy_add_signal)
6622
6623         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6624         escape the hostname
6625         (_dbus_server_new_for_domain_socket): escape the path
6626
6627         * dbus/dbus-address.c (dbus_address_escape_value): new
6628         (dbus_address_unescape_value): new
6629         (dbus_parse_address): unescape values
6630
6631         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6632
6633         * doc/dbus-specification.xml: explain how to escape values in
6634         addresses
6635
6636 2005-02-10  Havoc Pennington  <hp@redhat.com>
6637
6638         * dbus/dbus-message-factory.c (generate_special): modify test to
6639         avoid using a non-basic dict key
6640
6641         * dbus/dbus-marshal-validate-util.c: add test for the below
6642
6643         * doc/dbus-specification.xml: require that dict keys are a basic
6644         type
6645
6646         * dbus/dbus-marshal-validate.c
6647         (_dbus_validate_signature_with_reason): require that dict key is a
6648         basic type
6649
6650 2005-02-10  Havoc Pennington  <hp@redhat.com>
6651
6652         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6653         change to be _and_unlock instead of _unlocked
6654
6655         * dbus/dbus-connection.c
6656         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6657         have no_update so we can find this bug quickly in future
6658
6659 2005-02-10  Havoc Pennington  <hp@redhat.com>
6660
6661         * dbus/dbus-message-util.c (verify_test_message): tests for string
6662         array
6663
6664         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6665         support for arrays of string/signature/path
6666
6667 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6668
6669         * dbus/dbus-connection.c
6670         (_dbus_connection_queue_received_message_link,
6671         _dbus_connection_message_sent): Add the path to
6672         the verbose output.
6673         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6674         _dbus_connection_send_preallocated_unlocked(), updated the
6675         dispatch status, and unlocks.  Fixes a bug where certain
6676         situations (like a broken pipe) could cause a Disconnect message
6677         to not be sent, tricking the bus into thinking a service was still
6678         there when the process had quit.
6679         (_dbus_connection_send_preallocated): Call
6680         _dbus_connection_send_preallocated_and_unlock().
6681         (_dbus_connection_send_and_unlock): Added.  Calls
6682         _dbus_connection_send_preallocated_and_unlock().
6683         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6684         (dbus_connection_send_with_reply): Update the dispatch status and
6685         unlock.
6686
6687         * mono/Service.cs (~Service): Added.  Removes the filter so that
6688         we don't get unmanaged code calling back into a GCed delegate.
6689         (RemoveFilter); Added.
6690
6691 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6692
6693         * dbus/dbus-message.c (dbus_message_iter_open_container):
6694         - Removed check for iterator type being an array because
6695         get_arg_type does not work with writer iterators
6696         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6697
6698 2005-02-07  Havoc Pennington  <hp@redhat.com>
6699
6700         * doc/dbus-specification.xml: some more language cleanups; add
6701         stuff about how to deal with invalid protocol and extension
6702         points; add _ to allowed chars in auth commands; add EXTENSION_
6703         auth command prefix
6704
6705 2005-02-06  Havoc Pennington  <hp@redhat.com>
6706
6707         * s/expected/required/ in a couple places for clarity
6708
6709 2005-02-07  Colin Walters  <walters@verbum.org>
6710
6711         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6712         sender or proposed_recipient.
6713
6714 2005-02-06  Havoc Pennington  <hp@redhat.com>
6715
6716         * dbus/dbus-message-factory.c (generate_special): more tests
6717
6718         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6719         array length that exceeds the maximum
6720
6721 2005-02-05  Havoc Pennington  <hp@redhat.com>
6722
6723         * dbus/dbus-message-factory.c (generate_special): more test cases,
6724         increasing coverage
6725
6726         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6727         reason why a signature was invalid
6728
6729         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6730         skip the length of the string before we look at it in validation
6731
6732         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6733         equal_substring
6734
6735         * dbus/dbus-message.c (_dbus_message_loader_new): default
6736         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6737
6738 2005-02-05  Havoc Pennington  <hp@redhat.com>
6739
6740         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6741         if the signature of a variant was empty
6742         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6743         struct with no element type)
6744
6745         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6746         mangled messages to break things
6747
6748 2005-02-04  Havoc Pennington  <hp@redhat.com>
6749
6750         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6751         g_quark_try_string() so it actually can return 0
6752         (dbus_g_proxy_connect_signal): ditto
6753
6754 2005-02-04  Havoc Pennington  <hp@redhat.com>
6755
6756         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6757         bogus warning
6758         (tristring_from_message): assert cleanly on null path/interface
6759         (should not be possible though I decided later)
6760         (dbus_g_proxy_dispose): move proxy manager unregistration here
6761         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6762         g_return_if_fail() checks
6763
6764 2005-02-04  Havoc Pennington  <hp@redhat.com>
6765
6766         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6767
6768         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6769         (with some minor changes)
6770
6771         * doc/dbus-specification.xml: add deprecated attribute to
6772         introspection format
6773
6774 2005-01-31  Havoc Pennington  <hp@redhat.com>
6775
6776         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6777         think it's sort of right
6778
6779 2005-01-30  Havoc Pennington  <hp@redhat.com>
6780
6781         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6782
6783 2005-01-30  Havoc Pennington  <hp@redhat.com>
6784
6785         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6786
6787         * autogen.sh: change to autotools 1.9
6788
6789         * glib/dbus-gproxy.c: completely change how signals work
6790         (dbus_g_proxy_add_signal): new function to specify signature of a
6791         signal
6792         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6793         and g_warning if the incoming message has the wrong signature.
6794
6795 2005-01-30  Havoc Pennington  <hp@redhat.com>
6796
6797         * tools/dbus-names-model.c (have_names_notify): fix this
6798
6799         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6800         up the string array handling a bit 
6801
6802 2005-01-30  Havoc Pennington  <hp@redhat.com>
6803
6804         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6805         (dbus_g_pending_call_cancel): new function
6806
6807         * dbus/dbus-glib.h: move GType decls for connection/message here;
6808         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6809         here, just kind of rationalizing how we handle all that
6810
6811         * tools/dbus-names-model.c: new file for a tree model listing the
6812         services on a bus
6813
6814         * tools/dbus-tree-view.c (model_new): use proper typing on the
6815         model rows
6816
6817 2005-01-30  Havoc Pennington  <hp@redhat.com>
6818
6819         * glib/dbus-gmain.c: add a custom GSource back that just checks
6820         whether the message queue has anything in it; otherwise, there are 
6821         cases where we won't see messages in the queue since there was no 
6822         IO visible to the glib main loop
6823
6824         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6825         increase default message timeout to 25 seconds
6826
6827 2005-01-30  Havoc Pennington  <hp@redhat.com>
6828
6829         * test/glib/test-profile.c (no_bus_stop_server): remove the
6830         warning about the g_warning that I just fixed
6831
6832         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6833         custom source, seems to be a lot easier to understand and work
6834         better.
6835
6836 2005-01-30  Havoc Pennington  <hp@redhat.com>
6837
6838         I think this main loop thing is conceptually broken, but here are 
6839         some band aids. I'll maybe rewrite it in a minute.
6840         
6841         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6842         custom GSource, so don't pass it in; confusing
6843         (gsource_server_finalize, gsource_connection_finalize): add
6844         finalize handlers that remove all the watches.  
6845
6846 2005-01-30  Havoc Pennington  <hp@redhat.com>
6847
6848         * glib/dbus-gobject.c (introspect_properties): fix the XML
6849         generated
6850
6851         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6852         which effectively detects the use of freed messages
6853
6854         * glib/dbus-gobject.c (handle_introspect): modify and return the
6855         reply message instead of the incoming message
6856
6857         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6858         gee, maybe it should SEND THE XML instead of just making a string
6859         and freeing it again ;-)
6860
6861         * tools/dbus-print-message.c (print_message): improve printing of
6862         messages
6863
6864         * configure.in: add debug-glib.service to the output
6865
6866 2005-01-30  Havoc Pennington  <hp@redhat.com>
6867
6868         dbus-viewer introspected and displayed the bus driver
6869         
6870         * dbus/dbus-object-tree.c 
6871         (object_tree_test_iteration): add tests for a handler registered on "/"
6872
6873         * dbus/dbus-object-tree.c
6874         (_dbus_decompose_path): fix to handle path "/" properly
6875         (run_decompose_tests): add tests for path decomposition
6876         
6877         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6878         properly
6879
6880         * glib/dbus-gobject.c (handle_introspect): fix quotes
6881
6882         * test/glib/run-test.sh: support launching the bus, then running
6883         dbus-viewer
6884
6885         * test/glib/test-service-glib.c (main): put in a trivial gobject
6886         subclass and register it on the connection
6887
6888         * bus/driver.c (bus_driver_handle_introspect): implement
6889         introspection of the bus driver service
6890
6891         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6892         identifiers, doctype decl
6893
6894         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6895         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6896         returning the service unchanged.
6897         (bus_driver_handle_message): remove old check for reply_serial in
6898         method calls, now the message type deals with that
6899         (bus_driver_handle_message): handle NULL interface
6900
6901         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6902
6903         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6904         -1 for len
6905
6906         * tools/dbus-viewer.c: add support for introspecting a service on
6907         a bus
6908
6909         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6910         (dbus_g_pending_call_unref): add
6911
6912 2005-01-29  Havoc Pennington  <hp@redhat.com>
6913
6914         * tools/dbus-tree-view.c: add support for displaying properties.
6915         (run dbus-viewer with an introspect xml file as arg, then resize
6916         the window so the tree elements show up, not sure what that is)
6917
6918         * glib/dbus-gobject.c (handle_introspect): return
6919         org.freedesktop.Properties and org.freedesktop.Introspectable
6920         interfaces when we are introspected.
6921
6922         * doc/dbus-specification.xml: allow empty interface name when 
6923         Get/Set a property
6924
6925 2005-01-29  Havoc Pennington  <hp@redhat.com>
6926
6927         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6928         though it uses glib, it could be extended for any binding in
6929         principle
6930
6931         * glib/dbus-gobject.c (gobject_message_function): change to the
6932         new way properties work
6933
6934         * dbus/dbus-protocol.h: add the new interfaces
6935
6936         * doc/dbus-specification.xml: document the introspection format,
6937         Introspectable interface, and add an org.freedesktop.Properties
6938         interface.
6939
6940         * glib/dbus-gparser.c: add support for a <property> element
6941
6942         * glib/dbus-gidl.c: add PropertyInfo
6943
6944         * glib/dbus-gobject.c (handle_introspect): put the outermost
6945         <node> outside the signal and property descriptions.
6946         (introspect_properties): export properties as <property> rather
6947         than as method calls
6948
6949 2005-01-28  Havoc Pennington  <hp@redhat.com>
6950
6951         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6952         related to authentication protocol
6953
6954 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6955
6956         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6957                 - BUS_ACTIVATION -> BUS_STARTER
6958                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6959                 - class MessageIter (__init__): Added recursion checking 
6960                 so we throw a nice error instead of just disconnecting from the
6961                 bus.
6962                 (get): Added arg_type parameter for recursion.
6963                 Removed the nil type
6964                 Added signiture type placeholder (not implemented)
6965                 Added struct type placeholder (not implemented)
6966                 Added varient type placeholder (not implemented)
6967                 Commented out dict type for now     
6968                 (get_element_type): renamed from get_array_type
6969                 (get_*): changed to use the dbus_message_iter_get_basic API
6970                 (get_*_array): removed in favor of recursive get_array method
6971                 (get_array): new recursive method which calls get to marshal
6972                 the elements of the array
6973                 (value_to_dbus_sig): New method returns the corrasponding
6974                 dbus signiture to a python value
6975                 (append): Comment out dict handling for now
6976                 Handle lists with the new recursive API
6977                 Comment out None handling for now
6978                 (append_nil): removed
6979                 (append_*): changed to use dbus_message_iter_append_basic API
6980                 (append_*_array): removed in favor of recursive append_array 
6981                 method
6982                 (__str__): Make it easier to print out recursive iterators
6983                 for debugging
6984                 - class Message (__str__): moved type inspection to the
6985                 MessageIter class' __str__ method
6986                 (get_iter): Added an append parameter wich defaults to False
6987                 If True use the new API's to create an append iterator
6988
6989         * python/dbus.py: Update to use new bindings API
6990                 - TYPE_ACTIVATION -> TYPE_STARTER
6991                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6992                 - class ActivationBus -> class StarterBus
6993                 - class RemoteObject (__call__): get an append iterator
6994                 - (_dispatch_dbus_method_call): get an append iterator
6995                 - class Object (emit_signal): get an append iterator
6996
6997         * python/examples/: Fixed up the examples to work with the new API
6998                 
6999 2005-01-28  Joe Shaw  <joeshaw@novell.com>
7000
7001         * configure.in: Bump version up to 0.30.
7002
7003         * HACKING: Add a release item to bump the version number up after 
7004         a release.
7005
7006 2005-01-28  Havoc Pennington  <hp@redhat.com>
7007
7008         * doc/dbus-specification.xml: update to describe 16-bit types and
7009         dict entries
7010
7011         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
7012         assertion
7013
7014         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
7015         type
7016
7017         * dbus/dbus-marshal-recursive.c: implement
7018
7019 2005-01-27  Havoc Pennington  <hp@redhat.com>
7020
7021         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
7022
7023         * configure.in: find the right type for 16 and 32 bit ints as well
7024         as 64
7025
7026         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
7027         the 16-bit types so people don't have to stuff them in 32-bit or
7028         byte arrays.
7029
7030 2005-01-27  Havoc Pennington  <hp@redhat.com>
7031
7032         * dbus/dbus-message.c: byteswap the message if you init an
7033         iterator to read/write from it
7034         
7035         * dbus/dbus-marshal-byteswap.c: new file implementing 
7036         _dbus_marshal_byteswap()
7037
7038         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
7039
7040 2005-01-26  Havoc Pennington  <hp@redhat.com>
7041         
7042         * dbus/dbus-marshal-validate-util.c: break this out (and fix
7043         build, apparently - nobody noticed?)
7044         
7045 2005-01-26  Havoc Pennington  <hp@redhat.com>
7046
7047         * dbus/dbus-marshal-recursive.h: remove todo comment
7048
7049 2005-01-25  Joe Shaw  <joeshaw@novell.com>
7050
7051         * Land the mono binding changes to conform to the new APIs.
7052
7053         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
7054         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
7055
7056         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
7057         type code as a string.
7058         (InitAppending): Rename dbus_message_append_iter_init() to
7059         dbus_message_iter_init_append().
7060
7061         * mono/BusDriver.cs: Rename ServiceEventHandler to
7062         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
7063         Rename ServiceOwnerChanged to NameOwnerChanged.
7064
7065         * mono/Connection.cs: Rename BaseService to UniqueName, and the
7066         underlying C call.
7067
7068         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
7069
7070         * mono/Service.cs: Rename Exists to HasOwner, internally rename
7071         dbus_bus_acquire_service() to dbus_bus_request_name().
7072
7073         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
7074         of Type.UnderlyingSystemType to get the correct element type for
7075         the array.
7076         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
7077         dbus_message_get_{element|arg}_type() instead of
7078         dbus_message_iter_init_array_iterator().
7079         (Append): Replace dbus_message_iter_append_array() with
7080         dbus_message_iter_open_container() and
7081         dbus_message_iter_close_container().
7082
7083         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
7084         types have been removed.
7085         
7086         * mono/DBusType/*.cs: Replace calls of
7087         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
7088         but specify the type in the DllImport extern declaration.  Ditto
7089         for dbus_message_iter_append_[type]() ->
7090         dbus_message_iter_append_basic().
7091
7092         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
7093         NameOwnerChangedHandler.
7094
7095 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
7096
7097         * python/dbus_bindings.pyx.in: Rename of methods and bindings
7098                 - get_base_service -> get_unique_name
7099                 - bus_get_base_service -> bus_get_unique_name
7100                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
7101                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
7102                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
7103                 - bus_activate_service -> bus_start_service_by_name
7104                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
7105                 - bus_acquire_service -> bus_request_name
7106                 - dbus_bus_acquire_service -> dbus_bus_request_name
7107                 - bus_service_exists -> bus_name_has_owner
7108                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
7109
7110         * python/dbus.py: Rename of methods
7111                 - activate_service -> start_service_by_name
7112                 - bus_acquire_service -> bus_request_name
7113                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
7114                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
7115
7116         
7117 2005-01-24  Joe Shaw  <joeshaw@novell.com>
7118
7119         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
7120         signature for the method that can't be found.
7121
7122         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
7123         the message has any arguments, we need to call
7124         _dbus_type_reader_get_current_type(), not
7125         _dbus_type_reader_has_next().
7126
7127 2005-01-24  Havoc Pennington  <hp@redhat.com>
7128
7129         * dbus/dbus-message-factory.c: more testing of message validation
7130
7131         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
7132         header
7133
7134 2005-01-23  Havoc Pennington  <hp@redhat.com>
7135
7136         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
7137         get this all working, not many tests in the framework yet though
7138
7139 2005-01-22  Havoc Pennington  <hp@redhat.com>
7140
7141         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
7142         tutorial, based on work from David Wheeler.
7143
7144 2005-01-21  Havoc Pennington  <hp@redhat.com>
7145
7146         * dbus/dbus-bus.c: add more return_if_fail checks
7147
7148         * dbus/dbus-message.c (load_message): have the "no validation"
7149         mode (have to edit the code to toggle the mode for now though)
7150
7151         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
7152         skips all validation; I want to use this at least for benchmark
7153         baseline, I'm not sure if it should be a publicly-available switch.
7154
7155 2005-01-21  Havoc Pennington  <hp@redhat.com>
7156
7157         * glib/dbus-gmain.c: don't put the GLib bindings in the same
7158         toplevel doxygen group as the low-level API stuff
7159
7160         * dbus/dbus.h: note that libdbus is the low-level API
7161
7162 2005-01-20  Havoc Pennington  <hp@redhat.com>
7163
7164         * update-dbus-docs.sh: script to update docs on the web site, only
7165         works for me though. neener.
7166
7167 2005-01-20  Havoc Pennington  <hp@redhat.com>
7168
7169         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
7170         code can reveal bugs in it
7171
7172 2005-01-20  Havoc Pennington  <hp@redhat.com>
7173
7174         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
7175         select() version, patches from Tor Lillqvist
7176
7177 2005-01-20  Havoc Pennington  <hp@redhat.com>
7178
7179         * doc/dbus-tutorial.xml: replace > with &gt;
7180
7181         * bus/services.c (bus_registry_acquire_service): validate the name
7182         and return a better error if it's no good.
7183
7184         * doc/dbus-specification.xml: note NO_AUTO_START change
7185
7186         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
7187         from AUTO_START, we're toggling the default
7188
7189         * bus/dispatch.c: adapt the tests to change of auto-start default
7190
7191 2005-01-18  Havoc Pennington  <hp@redhat.com>
7192
7193         * rename dbus-daemon-1 to dbus-daemon throughout
7194
7195 2005-01-18  Havoc Pennington  <hp@redhat.com>
7196
7197         * Throughout, grand renaming to strip out the use of "service",
7198         just say "name" instead (or "bus name" when ambiguous).  Did not
7199         change the internal code of the message bus itself, only the
7200         programmer-facing API and messages.
7201         
7202         * doc/dbus-specification.xml: further update the message bus section
7203         
7204         * bus/config-parser.c (all_are_equiv): fix bug using freed string
7205         in error case
7206
7207 2005-01-17  Havoc Pennington  <hp@redhat.com>
7208
7209         * dbus/dbus-types.h: remove 16-bit types since we don't use them
7210         ever
7211
7212         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7213         "invalid name character" not only non-ASCII
7214
7215         * doc/dbus-specification.xml: further update spec, message bus 
7216         parts are still out-of-date but the marshaling etc. stuff is now
7217         accurate-ish
7218
7219 2005-01-17  Havoc Pennington  <hp@redhat.com>
7220
7221         * doc/dbus-specification.xml: partially update spec
7222
7223 2005-01-17  Havoc Pennington  <hp@redhat.com>
7224
7225         * Throughout, align variant bodies according to the contained
7226         type, rather than always to 8. Should save a fair bit of space in
7227         message headers.
7228         
7229         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7230         fix handling of case where p == end
7231
7232         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7233
7234 2005-01-17  Havoc Pennington  <hp@redhat.com>
7235
7236         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7237
7238         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7239         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7240         are marshaling/unmarshaling a boolean.
7241
7242 2005-01-16  Havoc Pennington  <hp@redhat.com>
7243
7244         This is about it on what can be disabled/deleted from libdbus
7245         easily, back below 150K anyhow. Deeper cuts are more work than 
7246         just turning the code off as I've done here.
7247         
7248         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7249         signed int convenience funcs
7250
7251         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7252         verbose mode
7253
7254         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7255         things out of libdbus
7256
7257         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7258         
7259         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7260         tests-enabled-only, though it should probably be deleted)
7261
7262         * dbus/dbus-message-util.c: same stuff
7263
7264         * dbus/dbus-auth-util.c: same stuff
7265
7266 2005-01-16  Havoc Pennington  <hp@redhat.com>
7267
7268         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7269
7270         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7271         way for stripping down dbus-userdb.c stuff included in libdbus.
7272         Rename _dbus_parse_uid for consistency.
7273
7274 2005-01-16  Havoc Pennington  <hp@redhat.com>
7275
7276         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7277         name the assertion failed in
7278
7279         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7280         (_dbus_return_val_if_fail): assert that the name of the function
7281         containing the check doesn't start with '_', since we only want to 
7282         use checks on public functions
7283         
7284         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7285         checks to assertions
7286
7287         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7288         change checks to asserts for private function
7289
7290         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7291         to asserts for private function
7292
7293         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7294         broken assertion that was breaking make check
7295         (_dbus_type_reader_array_is_empty): remove this rather than fix
7296         it, was only used in assertions
7297
7298 2005-01-16  Havoc Pennington  <hp@redhat.com>
7299
7300         * test/unused-code-gc.py: hacky script to find code that's used
7301         only by the bus (not libdbus) or used only by tests or not used at
7302         all. It has some false alarms, but looks like we can clean up a
7303         lot of size from libdbus.
7304
7305         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7306         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7307         
7308 2005-01-16  Havoc Pennington  <hp@redhat.com>
7309
7310         * Add and fix docs according to Doxygen warnings throughout
7311         source.
7312         
7313         * dbus/dbus-marshal-recursive.c
7314         (_dbus_type_reader_array_is_empty): change this to just call
7315         array_reader_get_array_len() and make it static
7316
7317         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7318         from get_array_type
7319         (dbus_message_iter_init_append): rename from append_iter_init
7320
7321         * dbus/dbus-marshal-recursive.c
7322         (_dbus_type_reader_get_element_type): rename from
7323         _dbus_type_reader_get_array_type
7324
7325 2005-01-15  Havoc Pennington  <hp@redhat.com>
7326
7327         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7328
7329         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7330         when DBUS_DISABLE_ASSERT
7331         (_dbus_marshal_set_basic): be sure we align for the string length
7332
7333         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7334         this look faster
7335
7336         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7337         inline macro version
7338         (_dbus_string_set_byte): provide inline macro version
7339
7340 2005-01-15  Havoc Pennington  <hp@redhat.com>
7341
7342         * Land the new message args API and type system.
7343
7344         This patch is huge, but the public API change is not 
7345         really large. The set of D-BUS types has changed somewhat, 
7346         and the arg "getters" are more geared toward language bindings;
7347         they don't make a copy, etc.
7348
7349         There are also some known issues. See these emails for details
7350         on this huge patch:
7351         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7352         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7353         
7354         * dbus/dbus-marshal-*: all the new stuff
7355
7356         * dbus/dbus-message.c: basically rewritten
7357
7358         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7359         freed blocks to be all non-nul bytes so using freed memory is less
7360         likely to work right
7361
7362         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7363         DBUS_FAIL_MALLOC=N environment variable, so you can do
7364         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7365         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7366         thorough.
7367
7368         * qt/message.cpp: port to the new message args API
7369         (operator<<): use str.utf8() rather than str.unicode()
7370         (pretty sure this is right from the Qt docs?)
7371
7372         * glib/dbus-gvalue.c: port to the new message args API
7373
7374         * bus/dispatch.c, bus/driver.c: port to the new message args API
7375
7376         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7377         "locked" flag to TRUE and align_offset to 0; I guess we never
7378         looked at these anyhow, but seems cleaner.
7379
7380         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7381         move allocation padding macro to this header; use it to implement
7382         (_DBUS_STRING_STATIC): ability to declare a static string.
7383
7384         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7385         change to return TRUE if the interface is not set.
7386
7387         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7388         to dbus-marshal-validate.[hc]
7389
7390         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7391         dbus-internals.c
7392
7393         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7394         to dbus-marshal-*.[hc]
7395
7396         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7397         function here from dbus-marshal.c
7398
7399 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7400
7401         * NEWS: Update for 0.23.
7402
7403         * configure.in: Release 0.23.
7404
7405 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7406
7407         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7408         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7409         behind.
7410
7411         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7412         uninstall"
7413
7414         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7415         is an enum, get the enum's underlying type.  Another mono
7416         1.1.3 fix.
7417
7418 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7419
7420         Patch from Sjoerd Simons <sjoerd@luon.net>
7421
7422         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7423         DESTDIR.  It breaks stuff.
7424
7425 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7426
7427         Patch from Tambet Ingo <tambet@ximian.com>
7428
7429         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7430         calling type.GetElementType().  The code previously depended on
7431         broken Mono behavior, which was fixed in Mono 1.1.3.
7432
7433         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7434         Activator.CreateInstance() so that the class's constructor is
7435         called with the right parameters.
7436
7437 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7438
7439         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7440
7441         * dbus/dbus-connection.c
7442         (_dbus_connection_queue_received_message_link): Call
7443         _dbus_connection_remove_timeout() instead of the _locked()
7444         variant, since it's always called from
7445         _dbus_connection_handle_watch(), which handles the locking.
7446         Removed the _locked() variant since it's no longer used.
7447
7448 2005-01-03  Havoc Pennington  <hp@redhat.com>
7449
7450         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7451         return
7452         
7453 2004-12-26  Havoc Pennington  <hp@redhat.com>
7454
7455         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7456
7457 2005-01-03  Havoc Pennington  <hp@redhat.com>
7458
7459         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7460         floating point
7461
7462         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7463
7464 2005-01-02  Havoc Pennington  <hp@redhat.com>
7465
7466         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7467
7468 2005-01-01  Havoc Pennington  <hp@redhat.com>
7469
7470         * configure.in: add -Wfloat-equal
7471
7472 2005-01-01  Havoc Pennington  <hp@redhat.com>
7473
7474         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7475         for a variety of reasons '==' doesn't do this.
7476
7477 2004-12-31  Havoc Pennington  <hp@redhat.com>
7478
7479         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7480         I keep wishing I had
7481
7482 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7483
7484         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7485
7486 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7487
7488         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7489         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7490         dbus-protocol.h.  Because they are defines and not enums they are not
7491         autogenerated.
7492
7493 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7494
7495         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7496         dbus_bus_activate_service
7497
7498         * python/dbus.py (Bus.activate_service): activate a service on the
7499         bus.
7500
7501 2004-12-24  Havoc Pennington  <hp@redhat.com>
7502
7503         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7504         file format has also changed and I haven't adapted to that yet
7505         
7506         * Makefile.am: load .gcno files from latest gcc
7507
7508 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7509         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7510
7511         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7512         lowlevel binding
7513
7514         * python/dbus.py (get_unix_user): Added binding to 
7515         call dbus_bindings.bus_get_unix_user
7516
7517         * python/extract.py: Modified the proto_pat regex to
7518         handle unsigned long
7519
7520 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7521
7522         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7523         better POSIX compliance.
7524
7525 2004-12-19  Havoc Pennington  <hp@redhat.com>
7526
7527         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7528         (_dbus_string_insert_8_aligned): new functions
7529
7530         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7531
7532 2004-12-18  Havoc Pennington  <hp@redhat.com>
7533
7534         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7535         macro
7536
7537         * dbus/dbus-message.c: fix a comment, and add a still-unused
7538         not-implemented function
7539
7540         * dbus/dbus-marshal.h: fix comment
7541
7542         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7543
7544 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7545
7546         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7547         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7548         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7549         Type.UnderlyingSystemType to get the actual system type
7550         underneath.  This code previously depended on the broken Mono
7551         behavior, which was fixed in 1.1.3.
7552
7553 2004-11-27  Havoc Pennington  <hp@redhat.com>
7554
7555         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7556         are disabled
7557         (_dbus_string_get_const_data): inline when asserts are disabled
7558
7559         * dbus/dbus-message.c: record the _dbus_current_generation of
7560         creation so we can complain if dbus_shutdown() is used improperly.
7561         Do this only if checks are enabled.
7562
7563         * dbus/dbus-connection.c: ditto
7564         
7565 2004-11-26  Havoc Pennington  <hp@redhat.com>
7566
7567         * test/glib/test-profile.c: add with_bus mode to profile echoes
7568         that go through the bus.
7569
7570         * test/glib/run-test.sh: add ability to run test-profile
7571
7572         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7573         config file reload.
7574
7575 2004-11-26  Havoc Pennington  <hp@redhat.com>
7576
7577         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7578         thing was implemented
7579
7580 2004-11-26  Havoc Pennington  <hp@redhat.com>
7581
7582         * test/glib/test-profile.c: tweak a bit, add support for some
7583         made-up minimal malloc overhead with plain sockets, since in 
7584         real life some sort of buffers are unavoidable thus we could 
7585         count them in the theoretical best case
7586
7587 2004-11-26  Havoc Pennington  <hp@redhat.com>
7588
7589         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7590         where I was trying to cache one too many messages
7591
7592 2004-11-26  Havoc Pennington  <hp@redhat.com>
7593
7594         * dbus/dbus-message.c: reimplement message cache as an array which 
7595         makes the cache about twice as fast and saves maybe 1.5% overall
7596
7597 2004-11-26  Havoc Pennington  <hp@redhat.com>
7598
7599         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7600         message cache lock here
7601
7602 2004-11-26  Havoc Pennington  <hp@redhat.com>
7603
7604         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7605         the "char byte_order" next to each other to save 4 bytes
7606         (dbus_message_new_empty_header): reduce preallocation, since the
7607         message cache should achieve a similar effect
7608         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7609         message cache that keeps a few DBusMessage around in a pool,
7610         another 8% speedup or so.
7611
7612         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7613
7614 2004-11-25  Havoc Pennington  <hp@redhat.com>
7615
7616         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7617         to write, without reading or blocking, try it before the poll()
7618         and skip the poll() if nothing remains to write. This is about a
7619         3% speedup in the echo client/server
7620
7621 2004-11-25  Havoc Pennington  <hp@redhat.com>
7622
7623         The primary change here is to always write() once before adding
7624         the write watch, which gives us about a 10% performance increase.
7625         
7626         * dbus/dbus-transport-unix.c: a number of modifications to cope
7627         with removing messages_pending
7628         (check_write_watch): properly handle
7629         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7630         messages_pending stuff
7631         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7632         AUTHENTICATED cases
7633         (unix_handle_watch): after writing, see if the write watch can be
7634         removed
7635         (unix_do_iteration): assert that write_watch/read_watch are
7636         non-NULL rather than testing that they aren't, since they 
7637         aren't allowed to be NULL. check_write_watch() at the end so 
7638         we add the watch if we did not finish writing (e.g. got EAGAIN)
7639
7640         * dbus/dbus-transport-protected.h: remove messages_pending call,
7641         since it resulted in too much inefficient watch adding/removing; 
7642         instead we now require that the transport user does an iteration 
7643         after queueing outgoing messages, and after trying the first
7644         write() we add a write watch if we got EAGAIN or exceeded our 
7645         max bytes to write per iteration setting
7646
7647         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7648         function
7649
7650         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7651         freed and then accessed, valgrind flagged this bug, fix it
7652
7653         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7654         as the last valid field plus 1, where really it is equal to the
7655         last valid field. Corrects some message corruption issues.
7656
7657         * dbus/dbus-mainloop.c: verbosity changes
7658
7659         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7660         instead of aborting in one of the test codepaths
7661
7662         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7663         caused not printing the pid ever again if a verbose was missing
7664         the newline at the end
7665         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7666
7667         * dbus/dbus-connection.c: verbosity changes; 
7668         (dbus_connection_has_messages_to_send): new function
7669         (_dbus_connection_message_sent): no longer call transport->messages_pending
7670         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7671         try to write() immediately, so we can avoid the write watch. This
7672         is the core purpose of this patchset
7673         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7674         dump the outgoing message queue, so nobody will get confused
7675         trying to send them or thinking stuff is pending to be sent
7676
7677         * bus/test.c: verbosity changes
7678
7679         * bus/driver.c: verbosity/assertion changes
7680
7681         * bus/dispatch.c: a bunch of little tweaks to get it working again
7682         because this patchset changes when/where you need to block.
7683
7684 2004-11-23  Havoc Pennington  <hp@redhat.com>
7685
7686         * test/glib/test-profile.c: modify to accept a plain_sockets
7687         argument in which case it will bench plain sockets instead of
7688         libdbus, for comparison purposes.
7689
7690 2004-11-22  Havoc Pennington  <hp@redhat.com>
7691
7692         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7693         threads for more time, so sysprof can get a grip on it.
7694
7695         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7696         pointless variable
7697
7698 2004-11-13  Havoc Pennington  <hp@redhat.com>
7699
7700         * test/glib/test-profile.c: fix this thing up a bit
7701
7702         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7703         preallocation sizes by a fair bit; not sure if this will be an
7704         overall performance win or not, but it does reduce reallocs.
7705
7706         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7707         the test hack that forced constant realloc if asserts are
7708         disabled, so we can profile sanely. Sprinkle in some
7709         _DBUS_UNLIKELY() which are probably pointless, but before I
7710         noticed the real performance problem I put them in.
7711         (_dbus_string_validate_utf8): micro-optimize this thing a little
7712         bit, though callgrind says it didn't help; then special-case
7713         ascii, which did help a lot; then be sure we detect nul bytes as
7714         invalid, which is a bugfix.
7715         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7716         superstition; use memset to nul the padding instead of a manual
7717         loop.
7718         (_dbus_string_get_length): inline this as a
7719         macro; it showed up in the profile because it's used for loop
7720         tests and so forth
7721
7722 2004-11-10  Colin Walters  <walters@verbum.org>
7723
7724         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7725         for extra paranoia.
7726
7727 2004-11-09  Colin Walters  <walters@verbum.org>
7728
7729         * dbus/dbus-string.c (_dbus_string_get_length): New
7730         function, writes DBusString to C buffer.
7731
7732         * dbus/dbus-string.h: Prototype it.
7733
7734         * dbus/dbus-message.c (dbus_message_type_to_string): New
7735         function, converts message type into C string.
7736
7737         * dbus/dbus-message.h: Prototype it.
7738
7739         * bus/selinux.c (bus_selinux_check): Take source pid,
7740         target pid, and audit data.  Pass audit data to
7741         avc_has_perm.
7742         (log_audit_callback): New function, appends extra
7743         audit information.
7744         (bus_selinux_allows_acquire_service): Also take
7745         service name, add it to audit data.
7746         (bus_selinux_allows_send): Also take message
7747         type, interface, method member, error name,
7748         and destination, and add them to audit data.
7749         (log_cb): Initialize func_audit.
7750         
7751         * bus/selinux.h (bus_selinux_allows_acquire_service)
7752         (bus_selinux_allows_send): Update prototypes 
7753
7754         * bus/services.c (bus_registry_acquire_service): Pass
7755         service name to bus_selinux_allows_acquire_service.
7756
7757         * bus/bus.c (bus_context_check_security_policy): Pass
7758         additional audit data.  Move assignment of dest
7759         to its own line.
7760
7761 2004-11-07  Colin Walters  <walters@verbum.org>
7762
7763         * dbus/dbus-transport-unix.c (do_authentication): Always
7764         initialize auth_completed.
7765         
7766 2004-11-07  Colin Walters  <walters@verbum.org>
7767
7768         * bus/bus.c (load_config): Break into three
7769         separate functions: process_config_first_time_only,
7770         process_config_every_time, and process_config_postinit.
7771         (process_config_every_time): Move call of
7772         bus_registry_set_service_context_table into
7773         process_config_postinit.
7774         (process_config_postinit): New function, does
7775         any processing that needs to happen late
7776         in initialization (and also on reload).
7777         (bus_context_new): Instead of calling load_config,
7778         open config parser here and call process_config_first_time_only
7779         and process_config_every_time directly.  Later, after
7780         we have forked but before changing UID,
7781         invoke bus_selinux_full_init, and then call
7782         process_config_postinit.
7783         (bus_context_reload_config): As in bus_context_new,
7784         load parse file inside here, and call process_config_every_time
7785         and process_config_postinit.
7786
7787         * bus/services.h, bus/services.c
7788         (bus_registry_set_service_context_table): Rename
7789         from bus_registry_set_sid_table.  Take string hash from config
7790         parser, and convert them here into SIDs.
7791
7792         * bus/config-parser.c (struct BusConfigParser): Have
7793         config parser only store a mapping of service->context
7794         string.
7795         (merge_service_context_hash): New function.
7796         (merge_included): Merge context string hashes instead
7797         of using bus_selinux_id_table_union.
7798         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7799         simply create a new string hash.
7800         (bus_config_parser_unref): Unref it.
7801         (start_selinux_child): Simply insert strings into hash,
7802         don't call bus_selinux_id_table_copy_over.
7803
7804         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7805         (bus_selinux_id_table_copy_over): Delete.
7806
7807 2004-11-03  Colin Walters  <walters@verbum.org>
7808
7809         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7810         variables.
7811         
7812 2004-11-03  Colin Walters  <walters@verbum.org>
7813
7814         * bus/test-main.c (test_pre_hook): Fix test logic,
7815         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7816
7817 2004-11-02  Colin Walters  <walters@redhat.com>
7818
7819         * bus/selinux.c (bus_selinux_init): Split into two functions,
7820         bus_selinux_pre_init and bus_selinux_post_init.
7821         (bus_selinux_pre_init): Just determine whether SELinux is
7822         enabled.
7823         (bus_selinux_post_init): Do everything else.
7824
7825         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7826         config file, and bus_selinux_post_init after.  This ensures that
7827         we don't lose the policyreload notification thread that
7828         bus_selinux_init created before forking previously.
7829         
7830         * bus/test-main.c (test_pre_hook): Update for split.
7831
7832 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7833
7834         Patch from Johan Fischer <linux@fischaz.com>
7835         
7836         * mono/doc/Makefile.am (install-data-local): Added directory
7837         install for DESTDIR
7838
7839 2004-10-29  Colin Walters  <walters@redhat.com>
7840
7841         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7842         parameter for fd to write pid to.       
7843
7844         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7845         
7846         * bus/bus.c (bus_context_new): Pass print_pid_fd
7847         to _dbus_become_daemon (bug #1720)
7848
7849 2004-10-29  Colin Walters  <walters@redhat.com>
7850
7851         Patch from Ed Catmur <ed@catmur.co.uk>
7852
7853         * mono/doc/Makefile.am (install-data-local): Handle
7854         DESTDIR.
7855
7856 2004-10-29  Colin Walters  <walters@redhat.com>
7857
7858         * bus/.cvsignore, qt/.cvsignore: Update.
7859
7860 2004-10-29  Colin Walters  <walters@redhat.com>
7861
7862         Patch from Kristof Vansant <de_lupus@pandora.be>
7863
7864         * configure.in: Detect Slackware.
7865         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7866         * bus/rc.messagebus.in: New file.
7867
7868 2004-10-29  Colin Walters  <walters@redhat.com>
7869
7870         * tools/dbus-monitor.c (filter_func): Return
7871         DBUS_HANDLER_RESULT_HANDLED in filter function
7872         for now.  See:
7873         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7874
7875 2004-10-29  Colin Walters  <walters@redhat.com>
7876
7877         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7878
7879         * bus/services.c (bus_registry_acquire_service): 
7880         Correctly retrieve service name from DBusString
7881         for printing.
7882
7883 2004-10-29  Colin Walters  <walters@redhat.com>
7884
7885         * dbus/dbus-glib.h: Update documentation to not
7886         refer to internal APIs.
7887
7888 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7889
7890         * mono/Arguments.cs (GetDBusTypeConstructor):
7891         type.UnderlyingSystemType will return "System.Byte" if you do it
7892         on "byte[]", which is not what we want.  So check the type.IsArray
7893         property and use System.Array instead.
7894
7895 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7896
7897         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7898         the DBusUserInfo structure since this is passed into the function.
7899         This would cause a double free when the function that allocated
7900         the structure would try to free it when an error occured.
7901
7902         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7903         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7904         for service activation to avoid 32bit/64bit parallel install issues
7905
7906 2004-10-21  Colin Walters  <walters@verbum.org>
7907
7908         * AUTHORS: Fix my email address, the @gnu.org one
7909         has been bouncing for some time.  Also add J5.
7910         
7911 2004-10-21  Colin Walters  <walters@verbum.org>
7912
7913         * dbus/dbus-transport-unix.c (do_authentication): Return
7914         authentication status to callers.
7915         (unix_handle_watch): If we completed authentication this round,
7916         don't do another read.  Instead wait until the next iteration,
7917         after we've read any pending data in the auth buffer.
7918         (unix_do_iteration): Ditto.
7919         (unix_handle_watch): Updated for new do_authentication prototype.
7920
7921 2004-10-18  Colin Walters  <walters@verbum.org>
7922
7923         * bus/selinux.c (bus_selinux_enabled): Handle
7924         --disable-selinux case.
7925         
7926 2004-10-18  Colin Walters  <walters@verbum.org>
7927
7928         * bus/selinux.h: Add bus_selinux_enabled.
7929         
7930         * bus/selinux.c (bus_selinux_enabled): Implement it.
7931         
7932         * bus/config-parser.c (struct include): Add
7933         if_selinux_enabled member.
7934         (start_busconfig_child): Parse if_selinux_enabled
7935         attribute for include.
7936         (bus_config_parser_content): Handle it.
7937
7938         * bus/session.conf.in, bus/system.conf.in: Add
7939         inclusion of context mapping to default config files;
7940         conditional on SELinux being enabled.
7941         
7942         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7943         
7944         * test/data/invalid-config-files/badselinux-1.conf, 
7945         test/data/invalid-config-files/badselinux-2.conf:
7946         Test files for bad syntax.
7947         
7948 2004-10-17  Colin Walters  <walters@verbum.org>
7949
7950         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7951         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7952         format specifier mismatches.
7953
7954 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7955
7956         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7957         format string.
7958
7959         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7960         pointer (bug #1540, Leonardo Boiko).
7961
7962 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7963
7964         * mono/BusDriver.cs: Changed BusDriver struct to remove
7965         the ServiceCreated and ServiceDeleted events and replace them
7966         with the new ServiceOwnerChanged event.
7967
7968         * mono/example/BusListener.cs: Added a new example program,
7969         which listens for and reports any ServiceOwnerChanged events
7970         on the bus driver.
7971
7972         * mono/example/Makefile.am (DESTDIR): Build changes for the
7973         new BusListener.cs example.
7974
7975 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7976
7977         * bus/signals.c (bus_match_rule_parse): validate the components of
7978         match rules (bug #1439).
7979
7980         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7981
7982 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7983
7984         * doc/dbus-specification.xml: document ServiceOwnerChanged
7985         signal.
7986         
7987         * bus/driver.c, bus/driver.h, bus/services.c: Use
7988         ServiceOwnerChanged signal instead of ServiceCreated and
7989         ServiceDeleted.
7990         
7991         * bus/dispatch.c: update testcase for the new signal.
7992
7993 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7994
7995         Patch from Nat Friedman <nat@novell.com>
7996
7997         * mono/Makefile.am: A number of small build fixes to allow "make
7998         distcheck" to succeed.
7999
8000         * mono/example/Makefile.am: "make distcheck" fixes.
8001
8002         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
8003         key in @srcdir@.
8004
8005         * test/Makefile.am: "make distcheck" fixes.
8006
8007 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8008
8009         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
8010
8011         * doc/busconfig.dtd: update the DTD for the at_console attribute.
8012
8013         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
8014         messages after the first one (bug #1389).
8015         
8016         * bus/dispatch.c (check_double_hello_message): add a test case for
8017         the double hello message bug.
8018         (check_existent_service_activation): fix check of spawning error.
8019         
8020 2004-09-16  David Zeuthen  <david@fubar.dk>
8021
8022         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
8023
8024 2004-09-12  David Zeuthen  <david@fubar.dk>
8025
8026         Patch from Kay Sievers <kay.sievers@vrfy.org>
8027
8028         * bus/bus.c (bus_context_new):
8029         * bus/bus.h:
8030         * bus/main.c (usage)
8031         (main):
8032         Add commandline option --nofork to override configuration file
8033         setting.
8034
8035 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8036
8037         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
8038         compilers don't like it (bug #974).
8039
8040 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
8041
8042         * qt/connection.*: Applied patch by Jérôme Lodewyck
8043         <lodewyck@clipper.ens.fr> to integrate an existing
8044         connection into the Qt eventloop
8045
8046 2004-08-30  Jon Trowbridge  <trow@ximian.com>
8047
8048         * mono/BusDriver.cs: Added.  This is a class for interacting with
8049         the org.freedesktop.DBus service.
8050
8051         * mono/Message.cs: Added a mechanism to expose the message that is
8052         currently being dispatched via the static Message.Current
8053         property.  Added Message.Sender and Message.Destination
8054         properties.
8055
8056         * mono/Handler.cs: Expose the dispatched message via
8057         Message.Current when handling method calls.
8058
8059         * mono/Service.cs: Expose the dispatched message via
8060         Message.Current when handling signal emissions.
8061         
8062         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
8063         Connection.BaseService property.
8064
8065 2004-08-28  Havoc Pennington  <hp@redhat.com>
8066
8067         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
8068
8069         More fixes from Steve Grubb
8070         
8071         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
8072         (_dbus_listen_tcp_socket): fix fd leak
8073
8074         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
8075         EINTR to a bit lower in the code
8076
8077 2004-08-26  Jon Trowbridge  <trow@ximian.com>
8078
8079         * bus/driver.c (bus_driver_handle_service_exists): Respond with
8080         TRUE if we are inquiring about the existence of the built-in
8081         org.freedesktop.DBus service.
8082
8083 2004-08-25  John Palmieri  <johnp@redhat.com>
8084         * bus/config-parser.c:
8085         (struct PolicyType): Add POLICY_CONSOLE
8086         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
8087         (start_busconfig_child): Sets up console element when
8088         <policy at_console=""> is encountered in a policy file
8089         (append_rule_from_element): Convert console elements to console
8090         rules.
8091
8092         * bus/policy.c: 
8093         (bus_policy_create_client_policy): Add console rules to the client
8094         policy based on if the client is at the console
8095         (bus_policy_append_console_rule): New function for adding a
8096         console rule to a policy
8097         (bus_policy_merge): Handle console rule merging
8098
8099         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
8100         where we check for console user files
8101         
8102         * dbus/dbus-sysdeps.c:
8103         (_dbus_file_exists): New function which checks if the given
8104         file exists
8105         (_dbus_user_at_console): New function which does the system
8106         specific process of checking if the user is at the console
8107
8108         * dbus/dbus-userdb.c:
8109         (_dbus_is_console_user): New function converts a UID to user name
8110         and then calls the system specific _dbus_user_at_console to 
8111         see if the user is at the console and therefor a console user
8112
8113 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8114
8115         * bus/config-parser.c (set_limit):
8116         * bus/dbus-daemon-1.1.in:
8117         * test/data/valid-config-files/many-rules.conf: set the
8118         max_match_rules_per_connection limt from the config file. 
8119
8120         * doc/busconfig.dtd: update the DTD.
8121
8122         * bus/driver.c: remove some unused variables.
8123
8124 2004-08-24  Mikael Hallendal  <micke@imendio.com>
8125
8126         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
8127         it's been replaced by dbus_g_bus_get
8128
8129 2004-08-23  Colin Walters  <walters@redhat.com>
8130
8131         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8132
8133         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
8134
8135         * bus/selinux.c: Create a thread for policy reload notification.
8136         (bus_selinux_get_policy_root): Implement.
8137
8138         * bus/config-parser.c (start_busconfig_child)
8139         (bus_config_parser_content): Support SELinux-root relative
8140         inclusion.
8141
8142         * configure.in <HAVE_SELINUX>: Add -lpthread.
8143         
8144         * bus/test-main.c (test_pre_hook, test_post_hook): New.
8145         (test_post_hook): Move memory checking into here.
8146         (test_pre_hook, test_post_hook): Move SELinux checks in
8147         here, but conditional on a DBUS_TEST_SELINUX environment
8148         variable.  Unfortunately we can't run the SELinux checks
8149         as a normal user, since they won't have any permissions
8150         for /selinux.  So this will have to be tested manually
8151         for now, until we have virtualization for most of
8152         libselinux.
8153         
8154 2004-08-23  Havoc Pennington  <hp@redhat.com>
8155
8156         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
8157         drop supplementary groups, suggested by Steve Grubb
8158
8159 2004-08-20  Colin Walters  <walters@redhat.com>
8160
8161         * bus/config-parser.c (start_busconfig_child): Remove some unused
8162         variables.
8163         
8164         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
8165         warning.
8166
8167 2004-08-17  Joe Shaw  <joeshaw@novell.com>
8168
8169         * configure.in: If --enable-mono is passed in, if we can't find
8170         mono error out.
8171
8172         * mono/Makefile.am: Use /gacutil to install assemblies into the
8173         GAC and not /root.
8174
8175 2004-08-12  Havoc Pennington  <hp@redhat.com>
8176
8177         * NEWS: update for 0.22
8178
8179         * configure.in: release 0.22
8180
8181 2004-08-11  Colin Walters  <walters@redhat.com>
8182
8183         * tools/dbus-send.c (main, usage): Add --reply-timeout
8184         argument.
8185
8186 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8187
8188         * bus/bus.c (process_config_first_time_only): get rid of an unused
8189         DBusError that was causing a memoy leak (bug #989).
8190
8191         * dbus/dbus-keyring.c, dbus/dbus-message.c:
8192         fix compilation on Solaris/Forte C (bug #974)
8193
8194         * bus/main.c (main): plug two minuscule memleaks.
8195
8196 2004-08-10  Havoc Pennington  <hp@redhat.com>
8197
8198         * doc/dbus-tutorial.xml: add some more info on GLib bindings
8199
8200 2004-08-09  Havoc Pennington  <hp@redhat.com>
8201
8202         * COPYING: switch to Academic Free License version 2.1 instead of
8203         2.0, to resolve complaints about patent termination clause.
8204
8205 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
8206
8207         * README: added documentation for the --enable-python 
8208         configure switch.
8209
8210 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8211
8212         * bus/config-parser.c (bus_config_parser_new): fix an invalid
8213         _unref in the SELinux support.
8214
8215         * doc/busconfig.dtd: update DTD for SELinux support.
8216
8217         * bus/config-loader-libxml.c: fix error handler and parser
8218         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8219
8220         * configure.in: remove the warning about libxml2.
8221
8222         * dbus/dbus-bus.c: silence doxygen warning.
8223
8224 2004-07-31  Colin Walters  <walters@redhat.com>
8225
8226         * configure.in: Move #error in SELinux check to its own line.
8227
8228 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8229
8230         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8231         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8232         dbus_error_set.
8233
8234         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8235         broken by the change in the _SET_OOM macros.
8236
8237 2004-07-31  Colin Walters  <walters@redhat.com>
8238
8239         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8240         BUS_SET_OOM.
8241
8242 2004-07-31  Colin Walters  <walters@redhat.com>
8243
8244         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8245         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8246         AC_MSG_CHECKING.
8247
8248 2004-07-24  Havoc Pennington  <hp@redhat.com>
8249
8250         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8251
8252         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8253         functionality
8254
8255         * configure.in: add --enable-selinux
8256         
8257         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8258
8259         * bus/main.c (main): initialize and shut down selinux
8260
8261         * bus/connection.c: store SELinux ID on each connection, to avoid 
8262         repeated getting of the string context and converting it into 
8263         an ID
8264
8265         * bus/bus.c (bus_context_get_policy): new accessor, though it
8266         isn't used
8267         (bus_context_check_security_policy): check whether the security
8268         context of sender connection can send to the security context of
8269         recipient connection
8270
8271         * bus/config-parser.c: add parsing for <selinux> and <associate>
8272         
8273         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8274         implement dbus_connection_get_unix_fd()
8275
8276         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8277         function, used by the selinux stuff
8278         
8279 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8280
8281         * bus/config-loader-libxml.c: complete the implementation of
8282         libxml backend for config file loader. Doesn't work with full OOM
8283         test yet. 
8284         
8285         * configure.in: change error when selecting libxml into a warning.
8286         
8287         * test/data/invalid-config-files: add two non-well-formed XML
8288         files. 
8289         
8290         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8291         
8292         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8293         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8294         be necessary to read all the buffer. (bug #894)
8295
8296         * bus/activation.c (bus_activation_activate_service): fix a
8297         potential assertion failure (bug #896). Small optimization in the
8298         case of auto-activation messages.
8299
8300         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8301         add test case for byte-through-vararg bug (#901). patch by Kimmo
8302         Hämäläinen. 
8303
8304 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8305
8306         * python/dbus.py:
8307         * python/dbus_bindings.pyx.in:
8308         Add dbus.init_gthreads (), allow emit_signal to pass
8309         arguments to the signal.
8310         
8311 2004-07-24  Havoc Pennington  <hp@redhat.com>
8312
8313         * AUTHORS: add some people, not really comprehensively, let me
8314         know if I missed you
8315
8316 2004-07-24  Havoc Pennington  <hp@redhat.com>
8317
8318         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8319         Owen
8320
8321         * test/Makefile.am (DIST_SUBDIRS): here also
8322
8323 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8324
8325         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8326         breaking build on Solaris, reported by Farhad Saberi on the ML.
8327
8328         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8329         va_arg invocation to account for integer promotion in the case of
8330         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8331
8332         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8333         _dbus_list_get_first_link, not _dbus_list_get_first.
8334
8335         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8336
8337         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8338         handler functions so that the asserts in _dbus_object_subtree_unref
8339         do not fail.
8340
8341         * dbus/dbus-transport-unix.c (do_reading):
8342         _dbus_transport_queue_messages return value is of type
8343         dbus_bool_t, not DBusDispatchStatus.
8344         
8345 2004-07-19  David Zeuthen  <david@fubar.dk>
8346
8347         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8348
8349         * bus/dispatch.c:
8350         (check_get_connection_unix_user): Debug says GetProperty; but the
8351         method is called GetConnectionUnixUser
8352         (check_get_connection_unix_process_id): New function
8353         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8354         also call check_get_connection_unix_process_id()
8355         
8356         * bus/driver.c:
8357         (bus_driver_handle_get_connection_unix_process_id): New function,
8358         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8359         interface
8360         
8361         * dbus/dbus-auth.c:
8362         (handle_server_data_external_mech): Set pid from the credentials
8363         obtained from the socket
8364         
8365         * dbus/dbus-connection.c:
8366         (dbus_connection_get_unix_process_id): New function
8367         
8368         * dbus/dbus-connection.h: 
8369         Add prototype for dbus_connection_get_unix_process_id
8370         
8371         * dbus/dbus-transport.c:
8372         (_dbus_transport_get_unix_process_id): New function
8373         
8374         * dbus/dbus-transport.h:
8375         Add prototype for _dbus_transport_get_unix_process_id
8376         
8377 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8378
8379         * dbus/dbus-message.c: Message counter fix, patch by Christian
8380         Hammond <chipx86@gnupdate.org>
8381
8382 2004-07-18  Seth Nickell  <seth@gnome.org>
8383
8384         * python/dbus.py:
8385         * python/dbus_bindings.pyx.in:
8386         * python/tests/test-client.py:
8387
8388         Add dbus.ByteArray and dbus_bindings.ByteArray
8389         types so that byte streams can be passed back.
8390
8391         Give jdahlin the heaps of credit that are so
8392         rightfully his.
8393         
8394 2004-07-12  Seth Nickell  <seth@gnome.org>
8395
8396         * python/dbus.py:
8397
8398         Add message argument to the default object_method_handler
8399         function.
8400         
8401         * python/dbus_bindings.pyx.in:
8402
8403         Automatically return NIL when passed an empty list
8404         (we can't pass back a list since lists are typed
8405         and we don't have any idea what type the the client
8406         intended the list to be... :-( )
8407         
8408 2004-07-10  Seth Nickell  <seth@gnome.org>
8409
8410         * python/examples/Makefile.am:
8411
8412         Fix distcheck breakage caused by new examples.
8413
8414 2004-07-10  Seth Nickell  <seth@gnome.org>
8415
8416         * python/dbus.py:
8417
8418         Add "message" argument to service-side dbus.Object
8419         methods. This will break existing services written
8420         using the python bindings, but will allow extraction
8421         of all the message information (e.g. who its from).
8422
8423         Add improved "object oriented" signal handling/emission.
8424         
8425         * python/examples/example-service.py:
8426
8427         Nix this example.
8428         
8429         * python/examples/example-signal-emitter.py:
8430         * python/examples/example-signal-recipient.py:
8431
8432         Two new examples that show how to emit and receive
8433         signals using the new APIs.
8434         
8435         * python/examples/example-signals.py:
8436         * python/examples/gconf-proxy-service.py:
8437         * python/examples/gconf-proxy-service2.py:
8438
8439         Add "message" argument to service methods.
8440
8441 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8442
8443         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8444         * dbus/bus.c (dbus_bus_get_unix_user)
8445         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8446         method of org.freedesktop.DBus interface.
8447
8448         * bus/dispatch.c: test case
8449
8450 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8451
8452         * python/Makefile.am: switched include directory from glib/ to dbus/
8453         since dbus-glib.h moved
8454  
8455 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8456
8457         * configure.in: prevent building the gcj stuff and libxml loader
8458         since they are broken.
8459
8460 2004-06-20  Havoc Pennington  <hp@redhat.com>
8461
8462         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8463         codes from the dbus error names
8464         
8465         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8466         as dbus/dbus-glib.h and that breakage is now visible due to 
8467         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8468         
8469         * glib/dbus-glib.h: s/gproxy/g_proxy/
8470
8471         * dbus/dbus-shared.h: new header to hold stuff shared with
8472         binding APIs
8473         
8474         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8475         than dbus-errors.h
8476
8477         * glib/dbus-glib.h (dbus_set_g_error): move to
8478         dbus-glib-lowlevel.h
8479
8480         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8481         of stuff to enable this
8482
8483         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8484
8485         * a bunch of other changes with the same basic "separate glib 
8486         bindings from dbus.h" theme
8487         
8488 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8489
8490         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8491
8492         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8493
8494 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8495
8496         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8497         the reply value of the ServiceExists message.
8498
8499 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8500
8501         * python/dbus_bindings.pyx.in: No longer need to parse path
8502         elements and pass them as arrays of strings.  The C API now
8503         accepts plain path strings.
8504         (_build_parsed_path): removed 
8505
8506 2004-06-07  Havoc Pennington  <hp@redhat.com>
8507
8508         * doc/TODO: remove auto-activation item since it's done; sort
8509         items by importance/milestone
8510
8511 2004-06-07  Havoc Pennington  <hp@redhat.com>
8512
8513         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8514         random signature when using REQUIRED_FIELDS (this hack won't work
8515         in the long term)
8516
8517         * dbus/dbus-message.c: change the signature to be a header field,
8518         instead of message->signature special-case string. Incremental
8519         step forward. Then we can fix up code to send the signature in the
8520         message, then fix up code to validate said signature, then fix up
8521         code to not put the typecodes inline, etc.
8522         (load_one_message): don't make up the signature after the fact
8523         (decode_header_data): require signature field for the known
8524         message types
8525
8526         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8527
8528         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8529
8530 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8531
8532         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8533
8534         * mono/Handler.cs: Updated to follow new path argument for
8535         (un-)registering objects.
8536
8537         * mono/example/Makefile.am:
8538         * mono/Makefile.am:
8539         * configure.in: Bumped required version for mono and use new -pkg
8540         syntax for deps
8541
8542 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8543
8544         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8545         registration functions take the path argument as char* instead of
8546         char**.
8547
8548         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8549         split off the path decompostion part of
8550         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8551         warnings. 
8552
8553         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8554         
8555 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8556  
8557         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8558         machine approach.  A state is implemented as a function that
8559         handles incoming events as specified for that state.
8560         
8561         * doc/dbus-specification.xml: Update auth protocol state machine
8562         specification to match implementation.  Remove some leftover
8563         base64 examples.
8564
8565 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8566
8567         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8568         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8569         quiet doxygen.
8570
8571         * Doxyfile.in: remove deprecated options.
8572
8573         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8574         glib/test-thread.h, glib/test-thread-client.c,
8575         glib/test-thread-server.c, glib/test-profile.c,
8576         glib/test-dbus-glib.c: remove these unused files.
8577
8578 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8579
8580         * dbus/dbus-object-tree.c
8581         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8582         non-fallback handlers (bug #684).
8583         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8584         (find_subtree_recurse): report wether the returned subtree is an
8585         exact match or a "fallback" match higher up in the tree.
8586         (object_tree_test_iteration): update test case.
8587
8588 2004-06-01  Seth Nickell  <seth@gnome.org>
8589
8590         * python/dbus_bindings.pyx.in:
8591         * python/tests/test-client.py:
8592
8593         Round off basic type support. Add dicts (yay!), and 
8594         remaining array types.
8595
8596         Make MessageIter more general so it works for dicts too.
8597
8598         Mark all loop variables as C integers.
8599         
8600 2004-05-31  Havoc Pennington  <hp@redhat.com>
8601
8602         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8603         "in" before "out"
8604
8605         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8606
8607         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8608         option that runs the tests, and start filling in some code
8609         including for starters just dumping the interfaces to stdout
8610
8611         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8612
8613         * test/data/valid-introspection-files/lots-of-types.xml: test of
8614         an example introspection file
8615
8616         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8617         "node" (I think...)
8618
8619 2004-05-31  Seth Nickell  <seth@gnome.org>
8620
8621         * python/dbus_bindings.pyx.in:
8622         * python/tests/test-client.py:
8623
8624         Test Suite: 1
8625         Python Bindings: 0
8626
8627         Fix string array memory trashing bug... oops...
8628
8629 2004-05-30  Seth Nickell  <seth@gnome.org>
8630
8631         * python/dbus.py:
8632
8633         Add a nicer-but-less-flexible alternate API for handling 
8634         calls to virtual objects in dbus.ObjectTree.
8635
8636         Screw up the argument order to the dbus.Object constructor
8637         for consistency with dbus.ObjectTree (and to make dbus_methods
8638         optional for future extension)
8639         
8640         * python/examples/Makefile.am:
8641         * python/examples/gconf-proxy-service.py:
8642         * python/examples/gconf-proxy-service2.py:
8643
8644         Alternate implementation of gconf-proxy-service using the
8645         nicer dbus.ObjectTree API.
8646         
8647         * python/examples/example-service.py:
8648         * python/tests/test-server.py
8649
8650         Reverse the argument order to deal with dbus.Object constructor
8651         changes.
8652         
8653 2004-05-30  Seth Nickell  <seth@gnome.org>
8654
8655         * python/examples/example-client.py:
8656         * python/examples/example-service.py:
8657
8658         Take it back. Lists seem to work but they're broken
8659         in the test suite. Make the base examples use
8660         lists (works fine).
8661
8662 2004-05-30  Seth Nickell  <seth@gnome.org>
8663
8664         * python/dbus_bindings.pyx.in:
8665         * python/tests/test-client.py:
8666
8667         Add some more tests and fix errors that crop up.
8668         Unfortunately, currently it seems like marshalling
8669         and unmarshalling of lists is completely broken :-(
8670
8671 2004-05-30  Seth Nickell  <seth@gnome.org>
8672
8673         * python/dbus_bindings.pyx.in:
8674
8675         Add support for ObjectPath type.
8676
8677         * python/dbus.py:
8678
8679         Refactor message handling code to a common function.
8680         
8681         * python/tests/test-client.py:
8682         * python/tests/test-server.py:
8683
8684         Add tests that check to make sure values of all types
8685         can be echoed from a service w/o mangling.
8686         
8687 2004-05-29  Seth Nickell  <seth@gnome.org>
8688
8689         * python/dbus.py:
8690
8691         Add ObjectTree class which allows implementation
8692         of trees of "virtual" objects. Basically the python
8693         wrapper for "register_fallback".
8694         
8695         * python/examples/Makefile.am
8696         * python/examples/gconf-proxy-client.py:
8697         * python/examples/gconf-proxy-service.py:
8698
8699         Implement a simple GConf proxy service that supports
8700         get/set on string and int GConf keys using the ObjectTree.
8701         
8702 2004-05-29  Seth Nickell  <seth@gnome.org>
8703
8704         * python/dbus.py:
8705         * python/examples/example-client.py:
8706         * python/examples/example-service.py:
8707         * python/examples/list-system-services.py:
8708
8709         Add SessionBus, SystemBus and ActivationBus classes
8710         so you don't need to know the special little BUS_TYPE
8711         flag.
8712         
8713 2004-05-29  Havoc Pennington  <hp@redhat.com>
8714
8715         * bus/config-parser.c (process_test_valid_subdir): temporarily
8716         stop testing config parser OOM handling, since expat has issues
8717         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8718
8719         * bus/dbus-daemon-1.1.in: change requested_reply to
8720         send_requested_reply/receive_requested_reply so we can send the
8721         replies, not just receive them.
8722
8723         * bus/config-parser.c: parse the new
8724         send_requested_reply/receive_requested_reply
8725
8726         * bus/policy.c (bus_client_policy_check_can_send): add
8727         requested_reply argument and use it
8728
8729         * bus/bus.c (bus_context_check_security_policy): pass through
8730         requested_reply status to message send check
8731
8732         * bus/system.conf.in: adapt to requested_reply change
8733         
8734 2004-05-28  Havoc Pennington  <hp@redhat.com>
8735
8736         * test/glib/test-service-glib.c (main): remove unused variable
8737
8738         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8739
8740         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8741         from the enum, no longer in use.
8742
8743         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8744         works right.
8745
8746         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8747         whether error_name passed in is a valid error name.
8748
8749 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8750
8751         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8752         OBJECT_PATH and OBJECT_PATH_ARRAY
8753
8754 2004-05-28  Seth Nickell  <seth@gnome.org>
8755
8756         * python/examples/Makefile.am:
8757
8758         Forget to add Makefile.am. Do not pass go.
8759
8760 2004-05-28  Michael Meeks  <michael@ximian.com>
8761
8762         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8763         fix no int64 case.
8764
8765         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8766
8767         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8768         (_dbus_message_iter_get_basic_type_array): impl.
8769         drastically simplify ~all relevant _get methods to use these.
8770         (_dbus_message_iter_append_basic_array),
8771         (dbus_message_iter_append_basic): impl
8772         drastically simplify ~all relevant _append methods to use these.
8773
8774         * dbus/dbus-message-builder.c (parse_basic_type) 
8775         (parse_basic_array, lookup_basic_type): impl.
8776         (_dbus_message_data_load): prune scads of duplicate /
8777         cut & paste coding.
8778
8779         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8780         (_dbus_demarshal_basic_type): implement,
8781         (demarshal_and_validate_len/arg): beef up debug.
8782         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8783
8784 2004-05-27  Seth Nickell  <seth@gnome.org>
8785
8786         * configure.in:
8787         * python/Makefile.am:
8788
8789         Include the example python apps in the tarball.
8790         
8791         * python/examples/list-system-services.py
8792
8793         Add a python new example that fetches the list of services
8794         from the system bus.
8795         
8796 2004-05-27  Seth Nickell  <seth@gnome.org>
8797
8798         * python/dbus.py:
8799         * python/dbus_bindings.pyx.in:
8800
8801         Fix failure to notify that a signal was not handled,
8802         resulted in hung functions.
8803         
8804 2004-05-25  Colin Walters  <walters@redhat.com>
8805
8806         * tools/dbus-monitor.c (main): Monitor all types of messages.
8807
8808 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8809
8810         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8811         which unregisters the object path and disposes the handler.
8812
8813 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8814  
8815         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8816          
8817         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8818         operands to && so we call dbus_message_iter_next () for the last
8819         argument also.
8820
8821 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8822
8823         * dbus/dbus-object-tree.c
8824         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8825         children even if the requested path isn't registered.
8826         (object_tree_test_iteration): test object_tree_list_registered.
8827
8828         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8829         it to 0.
8830         
8831 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8832
8833         * doc/TODO: Remove resolved items.
8834
8835         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8836         field.
8837         
8838         * bus/connection.c (bus_connections_expect_reply): Enforce the
8839         per-connection limit on pending replies.
8840         
8841         Patch from Jon Trowbridge <trow@ximian.com>:
8842  
8843         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8844         up a watch that triggers a config reload when one end of the pipe
8845         becomes readable.
8846         (signal_handler): Instead of doing the config reload in our SIGHUP
8847         handler, just write to the reload pipe and let the associated
8848         watch handle the reload when control returns to the main loop.
8849  
8850         * bus/driver.c (bus_driver_handle_reload_config): Added.
8851         Implements a ReloadConfig method for requesting a configuration
8852         file reload via the bus driver.
8853  
8854 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8855
8856         * HACKING: Updated release instructions concerning the wiki page.
8857
8858 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8859
8860         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8861         filter against auth->allowed_mechs; we only add allowed mechs in
8862         record_mechanisms().
8863  
8864         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8865         ALLOWED_MECHS to auth-script format so we can set the list of
8866         allowed mechanisms.
8867  
8868         * data/auth/client-out-of-mechanisms.auth-script: New test to
8869         check client disconnects when it is out of mechanisms to try.
8870  
8871         * dbus/dbus-auth.c (process_command): Remove check for lines
8872         longer that 1 MB; we only buffer up maximum 16 kB.
8873  
8874         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8875         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8876         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8877         assume there might be unused bytes.
8878  
8879         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8880         client-out-of-mechs, it is handled in process_reject(). Move check
8881         for max failures to send_rejected(), as it's a server-only thing.
8882
8883         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8884         send_auth(), send_data(), send_rejected(), send_error(),
8885         send_ok(), send_begin() and send_cancel().
8886
8887 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8888
8889         Remove base64 encoding, replace with hex encoding. Original patch
8890         from trow@ximian.com, added error handling.
8891
8892         * dbus/dbus-string.c (_dbus_string_base64_encode)
8893         (_dbus_string_base64_decode): Remove.
8894         (_dbus_string_hex_decode): Add end_return argument so we can
8895         distinguish between OOM and invalid hex encoding.
8896         (_dbus_string_test): Remove base64 tests and add test case for
8897         invalid hex.
8898
8899         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8900         Replace base64 with hex.
8901
8902         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8903         for invalid hex encoded data in auth protocol.
8904
8905 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8906
8907         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8908         leak.
8909
8910 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8911
8912         * mono/dbus-sharp.dll.config.in: Added for GAC
8913         * mono/dbus-sharp.snk: Added for GAC
8914         * mono/Assembly.cs.in: Added for GAC
8915         * mono/Makefile.am: Changes for GAC installation        
8916         * configure.in: Added refs for dbus-sharp.dll.config.in and
8917         Assembly.cs.in. More fixes for mono testing
8918         * mono/example/Makefile.am: Changed var to CSC
8919         * Makefile.am: Changed flag name to DBUS_USE_CSC
8920
8921 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8922
8923         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8924         * mono/doc/*: Added documentation framework
8925         * configure.in: Added monodoc check
8926         * README: Added description of mono configure flags
8927
8928 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8929
8930         * doc/dbus-specification.xml: Added a "Required" column to the 
8931         header fields table and changed the "zero or more" verbage in
8932         the above paragraph to read "The header must contain the required 
8933         named header fields and zero or more of the optional named header 
8934         fields".
8935         * test/data/invalid-messages/*.message: Added the required PATH 
8936         named header field to the tests so that they don't fail on 
8937         'Missing path field'
8938
8939 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8940
8941         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8942         the stack by implicitly defining variable and parameter types and
8943         removing the hack of defining C pointers as python objects and later
8944         casting them.
8945
8946 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8947
8948         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8949
8950 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8951
8952         * mono/DBusType/Dict.cs: Handle empty dicts
8953         * mono/DBusType/Array.cs: Handle empty arrays
8954         * mono/Arguments.cs: Handle empty arguments
8955
8956 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8957
8958         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8959         field
8960
8961 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8962
8963         * test/data/valid-messages/standard-*.message: Update message
8964         test scripts to new header field names.
8965
8966 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8967
8968         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8969         overflow to times_we_did_each_thing array which would chop off the
8970         first character of the failure_dir string. Increased the size of
8971         the array to 7 to reflect the number of random mutation functions
8972         we have.
8973
8974 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8975
8976         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8977         unix_server->watch here, it is unreffed in disconnect.
8978         (_dbus_server_new_for_tcp_socket): convert NULL host to
8979         "localhost" here so we don't append NULL to address.
8980         
8981         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8982         various addresses, including tcp with no explicit host.
8983
8984 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8985
8986         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8987         fix incorrect setting of .name_offset in the HeaderField (it was
8988         off by two bytes, positioned right after the name and typecode)
8989
8990         * bus/bus.c (bus_context_new, bus_context_unref): test before
8991         calling dbus_server_free_data_slot and _dbus_user_database_unref
8992         in case of an error.
8993
8994         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8995         by libdbus-gtool.
8996
8997 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8998
8999         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
9000         _dbus_poll() instead of select().
9001
9002 2004-04-15  Jon Trowbridge  <trow@ximian.com>
9003
9004         * bus/main.c (signal_handler): Reload the configuration files
9005         on SIGHUP.
9006         (main): Set up our SIGHUP handler.
9007
9008         * bus/bus.c (struct BusContext): Store the config file, user and
9009         fork flag in the BusContext.
9010         (process_config_first_time_only): Added.  Contains the code
9011         (previously in bus_context_new) for setting up the BusContext from
9012         the BusConfigParser that should only be run the first time the
9013         config files are read.
9014         (process_config_every_time): Added.  Contains the code (previously
9015         in bus_context_new) for setting up the BusContext from the
9016         BusConfigParser that should be run every time the config files are
9017         read.
9018         (load_config): Added.  Builds a BusConfigParser from the config
9019         files and passes the resulting structure off to
9020         process_config_first_time_only (assuming this is the first time)
9021         and process_config_every_time.
9022         (bus_context_new): All of the config-related code has been moved
9023         to process_config_first_time_only and process_config_every_time.
9024         Now this function just does the non-config-related initializations
9025         and calls load_config.
9026         (bus_context_reload_config): Added.
9027
9028 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9029
9030         * bus/driver.c (bus_driver_handle_get_service_owner):
9031         implement a GetServiceOwner method.
9032         * doc/dbus-specification.xml: document it.
9033         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
9034         
9035         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
9036         implement, using the bus GetServiceOwner method.
9037
9038         * test/glib/test-dbus-glib.c:
9039         use dbus_gproxy_new_for_service_owner so that we can receive the
9040         signal. 
9041
9042 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
9043
9044         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9045         dbus/dbus-message.c, dbus/dbus-protocol.h
9046         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
9047
9048         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9049         dbus/dbus-message.c, dbus/dbus-protocol.h
9050         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
9051
9052         * dbus/dbus-internals.c (_dbus_header_field_to_string):
9053         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
9054         DBUS_HEADER_FIELD_SENDER resolves to "sender"
9055
9056         * doc/dbus-specification.xml (Header Fields Table):
9057         s/SERVICE/DESTINATION
9058         s/SENDER_SERVICE/SENDER
9059
9060
9061 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9062
9063         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
9064         a few seconds.
9065
9066 2004-04-13  Michael Meeks  <michael@ximian.com>
9067
9068         * glib/dbus-gobject.c (handle_introspect): split out
9069         (introspect_properties): this.
9070         (handle_introspect): implement this.
9071
9072         * test/glib/Makefile.am: use the absolute path so the bus
9073         daemon's chdir ("/") doesn't kill us dead.
9074
9075         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
9076
9077 2004-04-12  Jon Trowbridge  <trow@ximian.com>
9078
9079         * bus/config-parser.c (struct BusConfigParser): Added
9080         included_files field.
9081         (seen_include): Added.  Checks whether or not a file has already
9082         been included by any parent BusConfigParser.
9083         (bus_config_parser_new): Copy the parent's included_files.
9084         (include_file): Track which files have been included, and fail on
9085         circular inclusions.
9086         (process_test_valid_subdir): Changed printf to report if we are
9087         testing valid or invalid conf files.
9088         (all_are_equiv): Changed printf to be a bit clearer about
9089         what we are actually doing.
9090         (bus_config_parser_test): Test invalid configuration files.
9091
9092 2004-04-09  Jon Trowbridge  <trow@ximian.com>
9093
9094         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
9095         argument.  If non-null, the newly-constructed BusConfigParser will
9096         be initialized with the parent's BusLimits instead of the default
9097         values.
9098         (include_file): When including a config file, pass in
9099         the current parser as the parent and then copy the BusLimits
9100         from the included BusConfigParser pack to the current parser.
9101         (process_test_valid_subdir): Renamed from process_test_subdir.
9102         (process_test_equiv_subdir): Added.  Walks through a directory,
9103         descending into each subdirectory and loading the config files
9104         it finds there.  If any subdirectory contains two config files
9105         that don't produce identical BusConfigParser structs, fail.
9106         For now, the BusConfigParser's BusPolicies are not compared.
9107         (bus_config_parser_test): Call both process_test_valid_subdir and
9108         process_test_equiv_subdir.
9109
9110         * bus/config-loader-libxml.c (bus_config_load): Take a parent
9111         argument and pass it along to the call to bus_config_parser_new.
9112         Also made a few small changes to allow this code to compile.
9113
9114         * bus/config-loader-expat.c (bus_config_load): Take a parent
9115         argument and pass it along to the call to bus_config_parser_new.
9116
9117         * bus/bus.c (bus_context_new): Load the config file
9118         with a NULL parent argument.
9119
9120 2004-03-29  Michael Meeks  <michael@ximian.com>
9121
9122         * glib/dbus-gobject.c (introspect_properties): split
9123         out, fix mangled 'while' flow control.
9124         (introspect_signals): implement.
9125         (handle_introspect): update.
9126
9127 2004-03-29  Michael Meeks  <michael@ximian.com>
9128
9129         * glib/dbus-gobject.c (set_object_property): split out / 
9130         re-work, use the property type, and not the message type(!)
9131         (get_object_property): ditto.
9132
9133         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
9134         (dbus_gvalue_marshal): make this code re-usable, needed
9135         for signals too, also on both proxy and server side.
9136         Re-write for more efficiency / readability.
9137
9138 2004-03-29  Michael Meeks  <michael@ximian.com>
9139
9140         * dbus/dbus-message.c
9141         (dbus_message_new_error_printf): impl.
9142
9143         * dbus/dbus-connection.c
9144         (dbus_connection_unregister_object_path): fix warning.
9145
9146         * configure.in: fix no-mono-installed situation.
9147
9148 2004-03-27  Havoc Pennington  <hp@redhat.com>
9149
9150         Patch from Timo Teräs:
9151         
9152         * tools/dbus-send.c (main): if --print-reply, assume type is
9153         method call; support boolean type args
9154         
9155         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
9156         bunch of memleak and logic bugs
9157         
9158 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9159
9160         * mono/Arguments.cs:
9161         * mono/Introspector.cs:
9162         * mono/Handler.cs:
9163         * mono/InterfaceProxy.cs:
9164         * mono/Message.cs
9165         * mono/ProxyBuilder.cs:
9166         * mono/Service.cs:
9167         Added InterfaceProxy class to avoid building proxies for every
9168         object.
9169
9170         * dbus-message.h:
9171         * dbus-message.c (dbus_message_append_args_valist)
9172         (dbus_message_iter_get_object_path)
9173         (dbus_message_iter_get_object_path_array)
9174         (dbus_message_iter_append_object_path)
9175         (dbus_message_iter_append_object_path_array):
9176         Added object_path iter functions to handle OBJECT_PATH arguments
9177         
9178 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9179
9180         First checkin of mono bindings.
9181         * configure.in:
9182         * Makefile.am:
9183         Build stuff for the bindings
9184         * dbus-sharp.pc.in: Added for pkgconfig
9185         
9186 2004-03-21  Havoc Pennington  <hp@redhat.com>
9187
9188         * test/test-service.c (main): remove debug spew
9189
9190 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9191
9192         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
9193         arrays
9194
9195         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
9196         (dbus_message_iter_init_array_iterator)
9197         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
9198         indicate whether the iterator is empty
9199
9200         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
9201         warnings
9202
9203 2004-03-19  Havoc Pennington  <hp@redhat.com>
9204
9205         * NEWS: 0.21 updates
9206
9207         * configure.in: 0.21
9208
9209         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
9210         
9211         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
9212         you don't need pyrex to make dist
9213
9214         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
9215         sources; run moc
9216         
9217 2004-03-18  Richard Hult  <richard@imendio.com>
9218
9219         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9220         (dbus_message_set_auto_activation): Add doxygen docs.
9221
9222 2004-03-16  Richard Hult  <richard@imendio.com>
9223
9224         * bus/activation.c: (bus_activation_service_created),
9225         (bus_activation_send_pending_auto_activation_messages),
9226         (bus_activation_activate_service):
9227         * bus/activation.h:
9228         * bus/dispatch.c: (bus_dispatch),
9229         (check_nonexistent_service_auto_activation),
9230         (check_service_auto_activated),
9231         (check_segfault_service_auto_activation),
9232         (check_existent_service_auto_activation), (bus_dispatch_test):
9233         * bus/driver.c: (bus_driver_handle_activate_service):
9234         * bus/services.c: (bus_registry_acquire_service):
9235         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9236         (dbus_message_get_auto_activation):
9237         * dbus/dbus-message.h:
9238         * dbus/dbus-protocol.h: Implement auto-activation.
9239         
9240         * doc/dbus-specification.xml: Add auto-activation to the spec.
9241
9242 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9243
9244         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9245         fix a bug with CUSTOM types.
9246
9247         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9248         a unit test for this bug (used to fail).
9249
9250 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9251
9252         * bus/activation.c:
9253         (babysitter_watch_callback): notify all pending activations waiting for
9254           the same exec that the activation failed.
9255         (bus_activation_activate_service): shortcut the activation if we 
9256           already waiting for the same executable to start up.
9257
9258 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9259
9260         * bus/activation.c: 
9261         - Added service file reloading. 
9262           Each service files directory is kept in an hash table in 
9263           BusActivation and each BusActivationEntry knows what .service-file it
9264           was read from. So when you try to activate a service the bus will 
9265           check if it's been updated, removed or if new .service-files has 
9266           been installed.
9267         - Test code at the bottom for the service file reloading.
9268         * bus/test-main.c: (main):
9269         * bus/test.h:
9270         - added service reloading test.
9271         * dbus/dbus-sysdeps.c: 
9272         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9273
9274 2004-03-08  Michael Meeks  <michael@ximian.com>
9275
9276         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9277         bail immediately if disconnected, to avoid busy loop.
9278
9279         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9280         cleanup cut/paste/inefficiency.
9281
9282 2004-03-01  David Zeuthen  <david@fubar.dk>
9283
9284         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9285         bug where args were used twice. This bug resulted in a segfault
9286         on a Debian/PPC system when starting the messagebus daemon. Include
9287         dbus-sysdeps.h for DBUS_VA_COPY
9288
9289         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9290
9291         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9292         appropriate va_copy implementation. From GLib
9293         
9294 2004-02-24  Joe Shaw  <joe@ximian.com>
9295
9296         * bus/services.c (bus_registry_acquire_service): We need to pass
9297         in the service name to dbus_set_error() to prevent a crash.
9298
9299 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9300
9301         * AUTHORS: Reveal my True identity.
9302
9303 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9304
9305         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9306         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9307
9308 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9309
9310         * doc/TODO: Added not about better error check of configuration files.
9311
9312 2003-12-02  Richard Hult  <richard@imendio.com>
9313
9314         * Update AFL version to 2.0 throughout the source files to reflect
9315         the update that was done a while ago.
9316
9317 2003-12-02  Richard Hult  <richard@imendio.com>
9318
9319         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9320         wrote_dict_key to FALSE on the iter that the dict is appended to,
9321         just like when appending other types. Fixes a bug where a dict
9322         couldn't be put inside a dict.
9323         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9324         (message_iter_test, _dbus_message_test): Add test case for dict
9325         inside dict.
9326
9327 2003-12-01  David Zeuthen  <david@fubar.dk>
9328
9329         * python/dbus.py: Add the actual message when calling the reciever
9330         of a signal such that parameters can be inspected. Add the method
9331         remove_signal_receiver
9332         
9333 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9334
9335         * bus/*.[ch]:
9336         * dbus/*.[ch]:
9337         * glib/*.[ch]: Made ref functions return the pointer
9338
9339 2003-11-25  Zack Rusin  <zack@kde.org>
9340
9341         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9342
9343         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9344         wrappers,
9345
9346         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9347         the Integrator and to better fit with the server,
9348
9349 2003-11-24  Zack Rusin  <zack@kde.org>
9350
9351         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9352         the integrator handles it now
9353
9354         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9355         since QTimer wasn't really meant to be used the way DBusTimeout is
9356
9357 2003-11-24  Zack Rusin  <zack@kde.org>
9358
9359         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9360         Integrator class which integrates D-BUS with the Qt event loop,
9361
9362         * qt/connection.h, qt/connection.cpp: Move all the code which
9363         was dealing with D-BUS integration to the Integrator class,
9364         and start using Integrator,
9365
9366 2003-11-23  Zack Rusin  <zack@kde.org>
9367
9368         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9369         wrapper
9370
9371         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9372         switching namespaces to DBusQt, reworking the class,
9373
9374         * Makefile.cvs: switching dependencies so that it matches KDE 
9375         schematics,
9376         
9377         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9378         the library
9379
9380 2003-11-19  Havoc Pennington  <hp@redhat.com>
9381
9382         * NEWS: update
9383
9384         * configure.in: bump version to 0.20
9385
9386         * configure.in (have_qt): add yet another place to look for qt
9387         (someone hand trolltech a .pc file...)
9388
9389 2003-11-01  Havoc Pennington  <hp@redhat.com>
9390
9391         * doc/dbus-specification.xml: add state machine docs on the auth
9392         protocol; just a first draft, I'm sure it's wrong.      
9393
9394 2003-10-28  David Zeuthen  <david@fubar.dk>
9395
9396         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9397         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9398         
9399 2003-10-28  Havoc Pennington  <hp@redhat.com>
9400
9401         * dbus/dbus-message.c (get_next_field): delete unused function
9402
9403 2003-10-28  Havoc Pennington  <hp@redhat.com>
9404
9405         * bus/expirelist.c (do_expiration_with_current_time): detect
9406         failure of the expire_func due to OOM
9407
9408         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9409
9410         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9411         NoReply error that's now created by the bus when the service exits
9412
9413 2003-10-28  Havoc Pennington  <hp@redhat.com>
9414
9415         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9416         tests for set_path, set_interface, set_member, etc.
9417
9418         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9419
9420         * dbus/dbus-message.c (set_string_field): always just delete and
9421         re-append the field; accept NULL for deletion
9422         (re_align_fields_recurse): reimplement
9423         
9424 2003-10-26  Havoc Pennington  <hp@redhat.com>
9425
9426         * dbus/dbus-connection.c: fix docs to properly describe the
9427         disconnected message
9428         (_dbus_connection_notify_disconnected): remove this function; 
9429         we can't synchronously add the disconnected message, we have to 
9430         do it after we've queued any remaining real messages
9431         (_dbus_connection_get_dispatch_status_unlocked): queue the
9432         disconnect message only if the transport has finished queueing all
9433         its real messages and is disconnected.
9434         (dbus_connection_disconnect): update the dispatch status here
9435
9436 2003-10-22  Havoc Pennington  <hp@redhat.com>
9437
9438         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9439
9440         * bus/connection.c (bus_transaction_send_from_driver): set the
9441         destination to the connection's base service
9442
9443 2003-10-20  Havoc Pennington  <hp@redhat.com>
9444
9445         hmm, make check is currently not passing.
9446         
9447         * doc/dbus-specification.xml: add requirement that custom type
9448         names follow the same rules as interface names.
9449
9450         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9451         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9452         'map'
9453
9454         * doc/dbus-specification.xml: update type codes to match
9455         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9456         CUSTOM. Add type OBJECT_PATH to the spec.
9457
9458 2003-10-17  Havoc Pennington  <hp@redhat.com>
9459
9460         * bus/driver.c (create_unique_client_name): use "." as separator
9461         in base service names instead of '-'
9462
9463         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9464         byte at the end of the string
9465
9466         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9467         optimization macros since string validation seems to be a slow
9468         point.
9469         
9470         * doc/dbus-specification.xml: restrict valid
9471         service/interface/member/error names. Add test suite code for the
9472         name validation.
9473
9474         * dbus/dbus-string.c: limit service/interface/member/error names 
9475         to [0-9][A-Z][a-z]_
9476
9477         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9478         format arg to verbose spew
9479
9480         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9481         memory, return instead of g_error
9482
9483         * test/test-service.c (path_message_func): support emitting a
9484         signal on request
9485
9486         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9487         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9488         assuming the activation bus was the session bus so that services
9489         started manually will still register.
9490         (init_connections_unlocked): fix so that in OOM situation we get
9491         the same semantics when retrying the function
9492         
9493         * test/test-service.c (main): change to use path registration, to
9494         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9495         than DBUS_BUS_SESSION
9496
9497 2003-10-16  Havoc Pennington  <hp@redhat.com>
9498
9499         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9500
9501         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9502         coverage of the tests
9503         (coverage-report.txt): don't move the .da and .bbg files around
9504
9505 2003-10-16  Havoc Pennington  <hp@redhat.com>
9506
9507         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9508         to put there
9509
9510 2003-10-16  Havoc Pennington  <hp@redhat.com>
9511
9512         * bus/connection.c (bus_pending_reply_expired): either cancel or
9513         execute, not both
9514         (bus_connections_check_reply): use unlink, not remove_link, as we
9515         don't want to free the link; fixes double free mess
9516
9517         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9518         where no reply was received
9519
9520         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9521         fix a refcount leak
9522
9523         * bus/signals.c (match_rule_matches): add special cases for the
9524         bus driver, so you can match on sender/destination for it.
9525
9526         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9527         DBUS_PRINT_BACKTRACE is set
9528
9529         * dbus/dbus-internals.c: add pid to assertion failure messages
9530
9531         * dbus/dbus-connection.c: add message type code to the debug spew
9532
9533         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9534         sender=foo not service=foo
9535
9536         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9537         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9538         DBUS_ACTIVATION_ADDRESS instead
9539
9540         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9541         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9542
9543         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9544         context struct
9545
9546         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9547         (dbus_message_iter_get_object_path_array): new function (half
9548         finished, disabled for the moment)
9549         
9550         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9551         DBUS_MESSAGE_TYPE_ERROR
9552
9553         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9554         avoid redirecting stderr to /dev/null
9555         (babysit): close stdin if not doing the "exit_with_session" thing
9556
9557         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9558         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9559         stdout/stdin, so things don't get confused
9560         
9561         * bus/system.conf.in: fix to allow replies, I modified .conf
9562         instead of .conf.in again.
9563
9564 2003-10-14  David Zeuthen  <david@fubar.dk>
9565
9566         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9567         argtype to arg_type when raising unknown arg type exception.
9568         Changed type list to reflect the changes in dbus-protocol.h so 
9569         the bindings actually work.
9570
9571 2003-10-14  Havoc Pennington  <hp@redhat.com>
9572
9573         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9574         to have a bug keeping it from outputting the .da files sometimes
9575         (string_get_string): don't append garbage nul bytes to the string.
9576
9577 2003-10-15  Seth Nickell  <seth@gnome.org>
9578
9579         * python/Makefile.am:
9580
9581         Include dbus_h_wrapper.h in the dist tarball.
9582
9583 2003-10-14  Havoc Pennington  <hp@redhat.com>
9584
9585         * bus/bus.c (bus_context_check_security_policy): revamp this to
9586         work more sanely with new policy-based requested reply setup
9587
9588         * bus/connection.c (bus_transaction_send_from_driver): set bus
9589         driver messages as no reply
9590
9591         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9592         requested_reply attribute on allow/deny rules
9593
9594         * bus/system.conf: add <allow requested_reply="true"/>
9595
9596         * bus/driver.c (bus_driver_handle_message): fix check for replies
9597         sent to the bus driver, which was backward. How did this ever work
9598         at all though? I think I'm missing something.
9599
9600         * dbus/dbus-message.c (decode_header_data): require error and
9601         method return messages to have a reply serial field to be valid
9602         (_dbus_message_loader_queue_messages): break up this function;
9603         validate that reply serial and plain serial are nonzero; 
9604         clean up the OOM/error handling.
9605         (get_uint_field): don't return -1 from this
9606         (dbus_message_create_header): fix signed/unsigned bug
9607
9608         * bus/connection.c (bus_connections_expect_reply): save serial of
9609         the incoming message, not reply serial
9610
9611 2003-10-14  Havoc Pennington  <hp@redhat.com>
9612
9613         * bus/connection.c: implement pending reply tracking using
9614         BusExpireList
9615
9616         * bus/bus.c (bus_context_check_security_policy): verify that a
9617         reply is pending in order to allow a reply to be sent. Deny 
9618         messages of unknown type.
9619
9620         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9621
9622         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9623         (bus_context_get_reply_timeout): new
9624
9625 2003-10-13  Seth Nickell  <seth@gnome.org>
9626
9627         * python/Makefile.am:
9628
9629         Pass "make distcheck": remove a couple files from DIST_FILES
9630         that weren't included in the final version.
9631
9632 2003-10-12  Havoc Pennington  <hp@pobox.com>
9633
9634         Added test code that 1) starts an actual bus daemon and 2) uses
9635         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9636         more testing possible, but this is the basic framework.
9637         
9638         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9639         empty proxy lists from the proxy list hash
9640
9641         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9642         couple of return_if_fail checks
9643
9644         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9645         to allocate, so everything is cleared to NULL as it should be.
9646
9647         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9648         source as data to dbus_connection_set_timeout_functions() as the 
9649         timeout functions expected
9650
9651         * test/glib/run-test.sh: add a little script to start up a message
9652         bus and run tests using it
9653
9654         * tools/dbus-launch.1: updates
9655
9656         * tools/dbus-launch.c (main): add --config-file option
9657
9658         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9659         that could never be reached.
9660
9661         * dbus/dbus-message.c (dbus_message_new_method_return) 
9662         (dbus_message_new_error, dbus_message_new_signal): set the
9663         no-reply-expected flag on all these. Redundant, but may
9664         as well be consistent.
9665
9666 2003-10-11  Havoc Pennington  <hp@pobox.com>
9667
9668         * test/decode-gcov.c (function_solve_graph): make broken block
9669         graph a nonfatal error since it seems to be broken. Need to debug
9670         this.
9671
9672         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9673         can't just check type > INVALID < LAST anymore
9674
9675         * dbus/dbus-message.c (dbus_message_get_signature): new function
9676         (dbus_message_has_signature): new function
9677         (struct DBusMessage): add signature field (right now it isn't sent
9678         over the wire, just generated on the fly)
9679         (dbus_message_copy): copy the signature, and init strings to
9680         proper length to avoid some reallocs
9681         (dbus_message_iter_init_array_iterator): return void, since it
9682         can't fail
9683         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9684         (_dbus_message_loader_queue_messages): add silly temporary hack to
9685         fill in message->signature on load
9686
9687         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9688         characters, so they are relatively human-readable.
9689
9690 2003-10-11  Havoc Pennington  <hp@pobox.com>
9691
9692         * dbus/dbus-message.c (_dbus_message_test): add more test
9693         coverage, but #if 0 for now since they uncover a bug 
9694         not fixed yet; I think in re_align_field_recurse()
9695         (re_align_field_recurse): add FIXME about broken assertion
9696
9697         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9698
9699         * bus/connection.c: share a couple code bits with expirelist.c
9700
9701         * bus/expirelist.h, bus/expirelist.c: implement a generic
9702         expire-items-after-N-seconds facility, was going to share between
9703         expiring connections and replies, decided not to use for expiring
9704         connections for now.
9705
9706         * COPYING: include AFL 2.0 (still need to change all the file headers)
9707
9708 2003-10-09  Havoc Pennington  <hp@redhat.com>
9709
9710         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9711         gcc 3.3. Not that we do anything about it yet.
9712
9713         * bus/signals.c (bus_match_rule_parse): impose max length on the
9714         match rule text
9715
9716         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9717
9718 2003-10-09  Havoc Pennington  <hp@redhat.com>
9719
9720         Make matching rules theoretically work (add parser).
9721         
9722         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9723         the case where destination is explicitly specified as bus driver
9724         and someone else is eavesdropping.
9725         
9726         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9727         definition of eavesdropping and assertion
9728
9729         * tools/dbus-send.c (main): use dbus_message_type_from_string
9730
9731         * bus/signals.c (bus_match_rule_parse): implement
9732
9733         * dbus/dbus-message.c (dbus_message_type_from_string): new
9734
9735         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9736
9737 2003-10-02  Havoc Pennington  <hp@pobox.com>
9738
9739         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9740         dbus_gproxy_oneway_call
9741
9742         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9743         (dbus_server_setup_with_g_main): fix to allow calling them more
9744         than once on the same args
9745         (dbus_bus_get_with_g_main): new function
9746
9747 2003-10-02  Havoc Pennington  <hp@redhat.com>
9748
9749         * doc/dbus-tutorial.xml: write some stuff
9750
9751 2003-09-29  Havoc Pennington  <hp@pobox.com>
9752
9753         * configure.in: split checks for Doxygen from XML docs, check for
9754         xmlto
9755
9756         * doc/Makefile.am: XML-ify all the docs, and add a blank
9757         dbus-tutorial.xml
9758
9759 2003-09-29  Havoc Pennington  <hp@pobox.com>
9760
9761         * Merge dbus-object-names branch. To see the entire patch 
9762         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9763         it's huuuuge though.
9764         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9765         
9766 2003-09-28  Havoc Pennington  <hp@pobox.com>
9767
9768         * HACKING: update to reflect new server
9769
9770 2003-09-26  Seth Nickell  <seth@gnome.org>
9771
9772         * python/dbus.py:
9773         * python/examples/example-signals.py:
9774
9775         Start implementing some notions of signals. The API
9776         is really terrible, but they sort of work (with the
9777         exception of being able to filter by service, and to
9778         transmit signals *as* a particular service). Need to
9779         figure out how to make messages come from the service
9780         we registered :-(
9781         
9782         * python/dbus_bindings.pyx.in:
9783
9784         Removed duplicate message_handler callbacks.
9785         
9786 2003-09-25  Havoc Pennington  <hp@redhat.com>
9787
9788         * bus/session.conf.in: fix my mess
9789
9790 2003-09-25  Havoc Pennington  <hp@pobox.com>
9791
9792         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9793
9794 2003-09-25  Seth Nickell  <seth@gnome.org>
9795
9796         * python/examples/example-service.py:
9797
9798         Johan notices complete wrong code in example-service, but
9799         completely wrong in a way that works exactly the same (!).
9800         Johan is confused, how could this possibly work? Example
9801         code fails to serve purpose of making things clear.
9802         Seth fixes.
9803
9804 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9805
9806         * doc/dbus-specification.sgml: don't require header fields
9807         to be 4-byte aligned and specify that fields should be
9808         distinguished from padding by the fact that zero is not
9809         a valid field name.
9810         
9811         * doc/TODO: remove re-alignment item and add item to doc
9812         the OBJECT_PATH type.
9813         
9814         * dbus/dbus-message.c:
9815         (HeaderField): rename the original member to value_offset
9816         and introduce a name_offset member to keep track of where
9817         the field actually begins.
9818         (adjust_field_offsets): remove.
9819         (append_int_field), (append_uint_field),
9820         (append_string_field): don't align the start of the header
9821         field to a 4-byte boundary.
9822         (get_next_field): impl finding the next marhsalled field
9823         after a given field.
9824         (re_align_field_recurse): impl re-aligning a number of
9825         already marshalled fields.
9826         (delete_field): impl deleting a field of any type and
9827         re-aligning any following fields.
9828         (delete_int_or_uint_field), (delete_string_field): remove.
9829         (set_int_field), (set_uint_field): no need to re-check
9830         that we have the correct type for the field.
9831         (set_string_field): ditto and impl re-aligning any
9832         following fields.
9833         (decode_header_data): update to take into account that
9834         the fields aren't 4-byte aligned any more and the new
9835         way to distinguish padding from header fields. Also,
9836         don't exit when there is too much header padding.
9837         (process_test_subdir): print the directory.
9838         (_dbus_message_test): add test to make sure a following
9839         field is re-aligned correctly after field deletion.
9840         
9841         * dbus/dbus-string.[ch]:
9842         (_dbus_string_insert_bytes): rename from insert_byte and
9843         allow the insert of multiple bytes.
9844         (_dbus_string_test): test inserting multiple bytes.
9845
9846         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9847         warning note to docs about having to re-align any
9848         marshalled values following the string.
9849         
9850         * dbus/dbus-message-builder.c:
9851         (append_string_field), (_dbus_message_data_load):
9852         don't align the header field.
9853         
9854         * dbus/dbus-auth.c: (process_test_subdir): print the
9855         directory.
9856         
9857         * test/break-loader.c: (randomly_add_one_byte): upd. for
9858         insert_byte change.
9859         
9860         * test/data/invalid-messages/bad-header-field-alignment.message:
9861         new test case.
9862         
9863         * test/data/valid-messages/unknown-header-field.message: shove
9864         a dict in the unknown field.
9865
9866 2003-09-25  Seth Nickell  <seth@gnome.org>
9867
9868         * python/dbus.py:
9869         * python/dbus_bindings.pyx.in:
9870
9871         Handle return values.
9872         
9873         * python/examples/example-client.py:
9874         * python/examples/example-service.py:
9875
9876         Pass back return values from the service to the client.
9877         
9878 2003-09-24  Seth Nickell  <seth@gnome.org>
9879
9880         * python/dbus.py:
9881
9882         Connect Object methods (when you are sharing an object) up... pass
9883         in a list of methods to be shared. Sharing all the methods just
9884         worked out too weird. You can now create nice Services over the
9885         DBus in Python. :-)
9886         
9887         * python/dbus_bindings.pyx.in:
9888
9889         Keep references to user_data tuples passed into C functions so 
9890         Python doesn't garbage collect on us.
9891
9892         Implement MethodReturn and Error subclasses of Message for creating
9893         DBusMessage's of those types.
9894         
9895         * python/examples/example-client.py:
9896         * python/examples/example-service.py:
9897
9898         Simple example code showing both how create DBus services and objects,
9899         and how to use them.
9900
9901 2003-09-23  Havoc Pennington  <hp@pobox.com>
9902
9903         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9904
9905 2003-09-23  Havoc Pennington  <hp@redhat.com>
9906
9907         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9908         (dbus_gproxy_disconnect_signal): implement
9909         (dbus_gproxy_manager_remove_signal_match): implement
9910         (dbus_gproxy_manager_add_signal_match): implement
9911         (dbus_gproxy_oneway_call): implement
9912
9913 2003-09-23  Havoc Pennington  <hp@pobox.com>
9914
9915         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9916         subclass. This means dropping the transparent thread safety of the
9917         proxy; you now need a separate proxy per-thread, or your own
9918         locking on the proxy. Probably right anyway.
9919         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9920
9921 2003-09-22  Havoc Pennington  <hp@redhat.com>
9922
9923         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9924
9925 2003-09-21  Seth Nickell  <seth@gnome.org>
9926
9927         First checkin of the Python bindings.
9928         
9929         * python/.cvsignore:
9930         * python/Makefile.am:
9931         * python/dbus_bindings.pyx.in:
9932         * python/dbus_h_wrapper.h:
9933
9934         Pieces for Pyrex to operate on, building a dbus_bindings.so
9935         python module for low-level access to the DBus APIs.
9936         
9937         * python/dbus.py:
9938
9939         High-level Python module for accessing DBus objects.
9940
9941         * configure.in:
9942         * Makefile.am:
9943
9944         Build stuff for the python bindings.
9945
9946         * acinclude.m4:
9947
9948         Extra macro needed for finding the Python C header files.
9949
9950 2003-09-21  Havoc Pennington  <hp@pobox.com>
9951
9952         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9953         implementing the proxy manager, didn't get very far.
9954
9955         * dbus/dbus-bus.c (dbus_bus_add_match): new
9956         (dbus_bus_remove_match): new
9957
9958         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9959         path_name argument; adjust the other not-yet-implemented 
9960         gproxy constructors to be what I think they should be.
9961
9962 2003-09-21  Havoc Pennington  <hp@pobox.com>
9963
9964         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9965         by default for message bus connections.
9966
9967         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9968         exit_on_disconnect flag is set and we process the disconnected
9969         signal.
9970         (dbus_connection_set_exit_on_disconnect): new function
9971
9972 2003-09-21  Havoc Pennington  <hp@pobox.com>
9973
9974         Get matching rules mostly working in the bus; only actually
9975         parsing the rule text remains. However, the client side of
9976         "signal connections" hasn't been started, this patch is only the
9977         bus side.
9978         
9979         * dbus/dispatch.c: fix for the matching rules changes
9980         
9981         * bus/driver.c (bus_driver_handle_remove_match)
9982         (bus_driver_handle_add_match): send an ack reply from these
9983         method calls
9984
9985         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9986         arguments, reported by Seth Nickell
9987
9988         * bus/config-parser.c (append_rule_from_element): support
9989         eavesdrop=true|false attribute on policies so match rules 
9990         can be prevented from snooping on the system bus.
9991
9992         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9993         and "destination" in attribute names; fix some docs bugs; 
9994         add eavesdrop=true|false attribute
9995
9996         * bus/driver.c (bus_driver_handle_add_match)
9997         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9998         messages
9999
10000         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
10001         rid of broadcast service concept, signals are just always broadcast
10002
10003         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
10004         mostly implement matching rules stuff (currently only exposed as signal
10005         connections)
10006
10007 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
10008
10009         * doc/dbus-specification.sgml: Change the header field name
10010         to be an enum and update the rest of the spec to reference
10011         the fields using the conventinal name.
10012
10013         * dbus/dbus-protocol.h: update to reflect the spec.
10014
10015         * doc/TODO: add item to remove the 4 byte alignment requirement.
10016         
10017         * dbus/dbus-message.c: Remove the code to generalise the
10018         header/body length and serial number header fields as named
10019         header fields so we can reference field names using the 
10020         protocol values.
10021         (append_int_field), (append_uint_field), (append_string_field):
10022         Append the field name as a byte rather than four chars.
10023         (delete_int_or_uint_field), (delete_string_field): reflect the
10024         fact that the field name and typecode now occupy 4 bytes instead
10025         of 8.
10026         (decode_string_field), (decode_header_data): update to reflect
10027         protocol changes and move the field specific encoding from
10028         decode_string_field() back into decode_header_data().
10029         
10030         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
10031         Add utility to aid debugging.
10032         
10033         * dbus/dbus-message-builder.c:
10034         (append_string_field), (_dbus_message_data_load): Update to
10035         reflect protocol changes; Change the FIELD_NAME directive
10036         to HEADER_FIELD and allow it to take the field's conventional
10037         name rather than the actual value.
10038         
10039         * test/data/*/*.message: Update to use HEADER_FIELD instead
10040         of FIELD_NAME; Always align the header on an 8 byte boundary
10041         *before* updating the header length.
10042
10043 2003-09-15  Havoc Pennington  <hp@pobox.com>
10044
10045         * dbus/dbus-pending-call.c: add the get/set object data
10046         boilerplate as for DBusConnection, etc. Use generic object data
10047         for the notify callback.
10048
10049         * glib/dbus-gparser.c (parse_node): parse child nodes
10050
10051         * tools/dbus-viewer.c: more hacking on the dbus-viewer
10052         
10053         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
10054         contain functions shared between the convenience lib and the
10055         installed lib
10056
10057         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
10058         -export-symbols-regex to the GLib library
10059
10060         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
10061         fix the locking in here, and add a default handler for
10062         Introspect() that just returns sub-nodes.
10063
10064 2003-09-14  Havoc Pennington  <hp@pobox.com>
10065
10066         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
10067         rather than gfoo consistent
10068
10069         * glib/dbus-gproxy.h: delete for now, move contents to
10070         dbus-glib.h, because the include files don't work right since we
10071         aren't in the dbus/ subdir.
10072         
10073         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
10074         (dbus_gproxy_end_call): finish
10075         (dbus_gproxy_begin_call): finish
10076
10077         * glib/dbus-gmain.c (dbus_set_g_error): new
10078
10079         * glib/dbus-gobject.c (handle_introspect): include information
10080         about child nodes in the introspection
10081
10082         * dbus/dbus-connection.c (dbus_connection_list_registered): new
10083         function to help in implementation of introspection
10084
10085         * dbus/dbus-object-tree.c
10086         (_dbus_object_tree_list_registered_and_unlock): new function
10087
10088 2003-09-12  Havoc Pennington  <hp@pobox.com>
10089
10090         * glib/dbus-gidl.h: add common base class for all the foo_info
10091         types
10092
10093         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
10094         similar to kdcop
10095
10096         * test/Makefile.am: try test srcdir -ef . in addition to test
10097         srcdir = ., one of them should work (yeah lame)
10098         
10099         * glib/Makefile.am: build the "idl" parser stuff as a convenience
10100         library
10101         
10102         * glib/dbus-gparser.h: make description_load routines return
10103         NodeInfo* not Parser*
10104
10105         * Makefile.am (SUBDIRS): build test dir after all library dirs
10106
10107         * configure.in: add GTK+ detection
10108
10109 2003-09-07  Havoc Pennington  <hp@pobox.com>
10110
10111         * Make Doxygen contented.
10112
10113 2003-09-07  Havoc Pennington  <hp@pobox.com>
10114
10115         * doc/dbus-specification.sgml: more updates
10116
10117 2003-09-06  Havoc Pennington  <hp@pobox.com>
10118
10119         * doc/dbus-specification.sgml: partial updates
10120
10121         * bus/dbus-daemon-1.1.in: fix the config file docs for the
10122         zillionth time; hopefully I edited the right file this time.
10123
10124         * bus/config-parser.c (append_rule_from_element): support
10125         send_type, send_path, receive_type, receive_path
10126
10127         * bus/policy.c: add message type and path to the list of things
10128         that can be "firewalled"
10129
10130 2003-09-06  Havoc Pennington  <hp@pobox.com>
10131
10132         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
10133         (dbus_connection_register_object_path): make this not handle
10134         messages to paths below the given path
10135
10136 2003-09-03  Havoc Pennington  <hp@pobox.com>
10137
10138         * test/glib/Makefile.am: add this with random glib-linked test
10139         programs
10140
10141         * glib/Makefile.am: remove the random test programs from here,
10142         leave only the unit tests
10143
10144         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
10145         uscore/javacaps conversion, and fix     
10146         (get_object_property, set_object_property): change to .NET
10147         convention for mapping props to methods, set_FooBar/get_FooBar, 
10148         since one language has such a convention we may as well copy it. 
10149         Plus real methods in either getFooBar or get_foo_bar style won't 
10150         collide with this convention.
10151
10152 2003-09-01  Havoc Pennington  <hp@pobox.com>
10153
10154         * glib/dbus-gparser.c: implement
10155
10156         * glib/dbus-gobject.c: start implementing skeletons support
10157
10158         * configure.in: when disabling checks/assert, also define
10159         G_DISABLE_ASSERT and G_DISABLE_CHECKS
10160
10161 2003-09-01  Havoc Pennington  <hp@pobox.com>
10162
10163         * glib/Makefile.am: rearrange a bunch of files and get "make
10164         check" framework set up
10165
10166 2003-08-31  Havoc Pennington  <hp@pobox.com>
10167
10168         * fix build with --disable-tests
10169
10170 2003-08-30  Havoc Pennington  <hp@pobox.com>
10171
10172         * dbus/dbus-connection.c: purge DBusMessageHandler
10173
10174         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
10175         use callbacks everywhere
10176
10177 2003-08-30  Havoc Pennington  <hp@pobox.com>
10178
10179         * test/data/valid-config-files/system.d/test.conf: change to 
10180         root for the user so warnings don't get printed
10181
10182         * dbus/dbus-message.c: add dbus_message_get_path,
10183         dbus_message_set_path
10184         
10185         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
10186         dispatching to a path
10187
10188         * dbus/dbus-string.c (_dbus_string_validate_path): add
10189
10190         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
10191         (_dbus_marshal_object_path): implement
10192
10193         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
10194         to contain the path to the target object
10195         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
10196         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
10197
10198 2003-08-30  Havoc Pennington  <hp@pobox.com>
10199
10200         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
10201
10202 2003-08-29  Havoc Pennington  <hp@pobox.com>
10203
10204         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
10205         registered
10206         (struct DBusObjectSubtree): shrink this
10207         a lot, since we may have a lot of them
10208         (_dbus_object_tree_free_all_unlocked): implement
10209         (_dbus_object_tree_dispatch_and_unlock): implement
10210
10211 2003-08-29  Havoc Pennington  <hp@pobox.com>
10212
10213         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
10214
10215 2003-08-28  Havoc Pennington  <hp@pobox.com>
10216
10217         purge DBusObjectID
10218         
10219         * dbus/dbus-connection.c: port to no ObjectID, create a
10220         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10221
10222         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10223         everything except UnregisterFunction and MessageFunction
10224         
10225         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10226         add DBUS_TYPE_OBJECT_PATH
10227         
10228         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10229         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10230         path-based object IDs
10231
10232 2003-08-25  Havoc Pennington  <hp@pobox.com>
10233
10234         Just noticed that dbus_message_test is hosed, I wonder when I
10235         broke that. I thought make check was passing earlier...
10236         
10237         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10238         container tree, will replace most of dbus-object-registry
10239
10240         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10241         screwup
10242
10243 2003-08-19  Havoc Pennington  <hp@pobox.com>
10244
10245         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10246         (dbus_message_is_error): fix this function
10247
10248         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10249         match
10250
10251         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10252         reflect clarified man page
10253         (bus_client_policy_check_can_send): ditto
10254         
10255         * bus/session.conf.in: fixup
10256
10257         * bus/system.conf.in: fixup
10258
10259 2003-08-18  Havoc Pennington  <hp@redhat.com>
10260
10261         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10262
10263         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10264         dumb bug created earlier (wrong order of args to
10265         decode_header_data())
10266         
10267         * tools/dbus-send.c: port
10268
10269         * tools/dbus-print-message.c (print_message): port
10270
10271         * test/data/*messages: port all messages over
10272         
10273         * dbus/dbus-message-builder.c: support including 
10274         message type
10275         
10276         * bus/driver.c: port over
10277         
10278         * bus/dispatch.c: port over to new stuff
10279
10280         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10281         rename disconnect signal to "Disconnected"
10282
10283 2003-08-17  Havoc Pennington  <hp@pobox.com>
10284
10285         This doesn't compile yet, but syncing up so I can hack on it from
10286         work. What are branches for if not broken code? ;-)
10287         
10288         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10289         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10290         DBUS_HEADER_FIELD_ERROR_NAME
10291         
10292         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10293         for the interface+member pairs
10294         (string_hash): change to use g_str_hash algorithm
10295         (find_direct_function, find_string_function): refactor these to
10296         share most code.
10297         
10298         * dbus/dbus-message.c: port all of this over to support 
10299         interface/member fields instead of name field
10300
10301         * dbus/dbus-object-registry.c: port over
10302         
10303         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10304         from _dbus_string_validate_name
10305
10306         * bus/dbus-daemon-1.1: change file format for the 
10307         <deny>/<allow> stuff to match new message naming scheme
10308
10309         * bus/policy.c: port over
10310
10311         * bus/config-parser.c: parse new format
10312         
10313 2003-08-16  Havoc Pennington  <hp@pobox.com>
10314
10315         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10316         broken assertion
10317
10318         * glib/dbus-gproxy.c: some hacking
10319
10320 2003-08-15  Havoc Pennington  <hp@redhat.com>
10321
10322         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10323
10324         * dbus/dbus-connection.c
10325         (dbus_connection_send_with_reply_and_block): factor out internals;
10326         change to convert any error replies to DBusError instead of 
10327         returning them as a message
10328
10329 2003-08-15  Havoc Pennington  <hp@pobox.com>
10330
10331         * dbus/dbus-connection.c, 
10332         dbus/dbus-pending-call.c: Finish the pending call stuff
10333
10334 2003-08-14  Havoc Pennington  <hp@redhat.com>
10335
10336         * dbus/dbus-pending-call.c: start on new object that will replace
10337         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10338         replies
10339
10340         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10341         with remote interfaces
10342
10343         * dbus/dbus-gidl.c: do the boring boilerplate in here
10344         
10345 2003-08-12  Havoc Pennington  <hp@pobox.com>
10346
10347         * bus/dispatch.c (bus_dispatch): make this return proper 
10348         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10349
10350         * dbus/dbus-errors.c (dbus_set_error): use
10351         _dbus_string_append_printf_valist
10352
10353         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10354         (_dbus_string_append_printf): new
10355
10356         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10357         UNKNOWN_METHOD
10358
10359         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10360         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10361         message is unhandled.
10362
10363 2003-08-11  Havoc Pennington  <hp@pobox.com>
10364
10365         * bus/test.c (client_disconnect_handler): change to return
10366         HANDLED (would have been REMOVE_MESSAGE)
10367
10368         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10369         HANDLED/NOT_YET_HANDLED instead of
10370         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10371         should be used.
10372
10373 2003-08-10  Havoc Pennington  <hp@pobox.com>
10374
10375         * tools/dbus-send.c (main): add --type argument, for now
10376         supporting only method_call and signal types.
10377
10378         * tools/dbus-print-message.c: print message type
10379
10380         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10381         init connection->objects
10382
10383         * doc/dbus-specification.sgml: fix sgml
10384
10385         * bus/*.c: port over to object-instance API changes
10386
10387         * test/test-service.c: ditto
10388         
10389         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10390         name, we will have to fix up the rest of the code to also handle
10391         this
10392         (dbus_message_new): generic message-creation call
10393         (set_string_field): allow appending name field
10394
10395 2003-08-06  Havoc Pennington  <hp@pobox.com>
10396
10397         * dbus/dbus-object-registry.c: implement signal connection 
10398         and dispatch
10399
10400         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10401
10402         * dbus/dbus-internals.c (_dbus_memdup): new function
10403
10404 2003-08-02  Havoc Pennington  <hp@pobox.com>
10405
10406         * dbus/dbus-message.c (dbus_message_get_no_reply)
10407         (dbus_message_set_no_reply): add these and remove
10408         set_is_error/get_is_error
10409
10410         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10411         remove the ERROR flag, since there's now an ERROR type
10412
10413 2003-08-01  Havoc Pennington  <hp@pobox.com>
10414
10415         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10416         implement
10417
10418         * dbus/dbus-message.c (dbus_message_get_type): new function
10419
10420         * doc/dbus-specification.sgml: add "type" byte to messages
10421
10422 2003-08-01  Havoc Pennington  <hp@pobox.com>
10423
10424         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10425         a message type enum to distinguish kinds of message
10426         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10427         that need not be replied to
10428
10429 2003-08-01  Havoc Pennington  <hp@pobox.com>
10430
10431         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10432         (unpack_8_octets): fix no-64-bit-int bug
10433
10434         * dbus/dbus-object-registry.c (validate_id): validate the 
10435         connection ID bits, not just the instance ID.
10436
10437         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10438         the connection-global 33 bits of the object ID
10439
10440         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10441         object ID in the new way
10442
10443         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10444         define server/client/instance bits.
10445
10446 2003-07-30  Havoc Pennington  <hp@pobox.com>
10447
10448         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10449         build
10450
10451 2003-07-13  Havoc Pennington  <hp@pobox.com>
10452
10453         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10454         fields to DBusObjectVTable and DBusObjectInfo
10455
10456 2003-07-12  Havoc Pennington  <hp@pobox.com>
10457
10458         * dbus/dbus-object-registry.c: implement unit test,
10459         fix bugs discovered in process
10460
10461         * dbus/dbus-connection.c: remove handler_table and
10462         register_handler(), add DBusObjectRegistry usage
10463
10464         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10465         (dbus_object_id_set_null): new functions
10466
10467 2003-07-08  Havoc Pennington  <hp@pobox.com>
10468
10469         * dbus/dbus-object.c: implement some of this
10470
10471         * dbus/dbus-object-registry.c
10472         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10473         param
10474         (_dbus_object_registry_new): handle OOM
10475
10476 2003-07-08  Havoc Pennington  <hp@pobox.com>
10477
10478         * dbus/dbus-object.h: sketch out an API for registering objects
10479         with a connection, that allows us to use as little as 24 bytes
10480         per object and lets application code represent an object in 
10481         any conceivable way.
10482
10483         * dbus/dbus-object-registry.c: implement the hard bits of the
10484         DBusConnection aspect of object API. Not yet wired up.
10485         
10486 2003-07-06  Havoc Pennington  <hp@pobox.com>
10487
10488         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10489         (_dbus_marshal_object_id): new
10490         (_dbus_demarshal_object_id): new
10491         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10492         consolidate identical switch cases. Don't conditionalize handling
10493         of DBUS_TYPE_UINT64, need to handle the type always.
10494         (_dbus_marshal_validate_arg): consolidate identical cases, and
10495         handle DBUS_TYPE_OBJECT_ID
10496
10497         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10498
10499         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10500
10501 2003-09-28  Havoc Pennington  <hp@pobox.com>
10502
10503         * real 0.13 release
10504
10505 2003-09-28  Havoc Pennington  <hp@pobox.com>
10506
10507         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10508         to work with Debian db2html
10509
10510 2003-09-28  Havoc Pennington  <hp@pobox.com>
10511
10512         * configure.in: 0.13
10513
10514         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10515         stylesheet-images for benefit of Debian
10516         
10517         Change back to using filesystem-linked sockets for the system
10518         bus, so only root can create the default system bus address.
10519         
10520         * bus/system.conf.in: change to use
10521         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10522
10523         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10524         from here.
10525
10526         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10527         here, and AC_DEFINE DBUS_SYSTEM_PATH
10528
10529 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10530
10531         * doc/TODO:
10532         * doc/busconfig.dtd:
10533         Add busconfig DTD.
10534         
10535 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10536
10537         * doc/dbus-specification.sgml:
10538         Add activation reply values.
10539         
10540 2003-08-05  Havoc Pennington  <hp@redhat.com>
10541
10542         * configure.in: 0.12
10543
10544 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10545
10546         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10547         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10548         (add_watch), (remove_watch), (create_source):
10549         Refcount fds, fixes some reentrancy issues.
10550         
10551 2003-07-30  Havoc Pennington  <hp@redhat.com>
10552
10553         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10554         bus address to be abstract if we have abstract sockets
10555
10556         * NEWS: update
10557
10558 2003-07-28  Havoc Pennington  <hp@redhat.com>
10559
10560         * bus/messagebus.in: fix to avoid processname/servicename 
10561         confusion, from Michael Kearey
10562         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10563         
10564 2003-07-23  Havoc Pennington  <hp@pobox.com>
10565
10566         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10567         fix from Andy Hanton to remove broken "+1"
10568
10569 2003-07-16  Havoc Pennington  <hp@pobox.com>
10570
10571         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10572         babysitter process, as suggested by Thomas Leonard, so 
10573         an "eval `dbus-launch --exit-with-session`" will actually 
10574         return
10575
10576 2003-07-16  Havoc Pennington  <hp@pobox.com>
10577
10578         * configure.in: print out EXPANDED_* variables in the summary at
10579         the end; clean up the code that computes EXPANDED_ variables and
10580         get the ones using exec_prefix right. Should make things work
10581         when you build without --prefix
10582
10583 2003-06-29  Havoc Pennington  <hp@pobox.com>
10584
10585         * mono/Test.cs (class Test): fire up a main loop and run it
10586
10587         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10588         done once, the app has to do it
10589
10590 2003-06-26  Havoc Pennington  <hp@pobox.com>
10591
10592         * mono/Connection.cs: set up connection with the glib main loop
10593
10594 2003-07-01  Havoc Pennington  <hp@redhat.com>
10595
10596         * doc/dbus-specification.sgml: clarify the format of a type code,
10597         change suggested by Jim Blandy
10598
10599 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10600
10601         * doc/Makefile.am:
10602         * tools/Makefile.am: Don't assume srcdir == builddir.
10603
10604         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10605         the allocated block.
10606         (_dbus_memory_test): New function.
10607         * dbus/dbus-test.h: Add _dbus_memory_test ().
10608         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10609
10610         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10611         of %c%c%c%c.
10612         (dbus_message_new): Remove obsolete @todo.
10613
10614         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10615         (_dbus_marshal_set_uint64): Fix comment.
10616
10617         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10618         hardcode FIELD_REPLY_SERIAL.
10619
10620         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10621         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10622
10623         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10624         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10625
10626 2003-06-24  Havoc Pennington  <hp@pobox.com>
10627
10628         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10629
10630 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10631
10632         * configure.in:
10633         * gcj/.cvsignore:
10634         * gcj/Hello.java:
10635         * gcj/Makefile.am:
10636         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10637         * gcj/org/.cvsignore:
10638         * gcj/org/Makefile.am:
10639         * gcj/org/freedesktop/.cvsignore:
10640         * gcj/org/freedesktop/Makefile.am:
10641         * gcj/org/freedesktop/dbus/.cvsignore:
10642         * gcj/org/freedesktop/dbus/Makefile.am:
10643         * gcj/org/freedesktop/dbus/Message.java: (Message),
10644         (Message.Message):
10645         * gcj/org/freedesktop/dbus/natMessage.cc:
10646         Fix the build system.
10647
10648 2003-06-22  Havoc Pennington  <hp@pobox.com>
10649
10650         * mono/Connection.cs: add more bindings
10651
10652         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10653         more than once.
10654
10655 2003-06-22  Havoc Pennington  <hp@pobox.com>
10656
10657         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10658         Start wrapping more stuff.
10659
10660 2003-06-22  Havoc Pennington  <hp@pobox.com>
10661
10662         * mono/Message.cs: implement Message.Wrap() that ensures we only
10663         have a single C# wrapper per DBusMessage, assuming it works which
10664         it probably doesn't.
10665
10666         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10667         (dbus_message_free_data_slot): new
10668         (dbus_message_set_data): new
10669         (dbus_message_get_data): new
10670
10671 2003-06-22  Havoc Pennington  <hp@pobox.com>
10672
10673         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10674         (_dbus_data_slot_allocator_alloc): rework these to keep a
10675         reference count on each slot and automatically manage a global
10676         slot ID variable passed in by address
10677
10678         * bus/bus.c: convert to new dataslot API
10679
10680         * dbus/dbus-bus.c: convert to new dataslot API
10681
10682         * dbus/dbus-connection.c: convert to new dataslot API
10683
10684         * dbus/dbus-server.c: convert to new dataslot API
10685
10686         * glib/dbus-gmain.c: ditto
10687
10688         * bus/test.c: ditto
10689
10690         * bus/connection.c: ditto
10691
10692 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10693
10694         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10695         after the gcj checks so that the correct configuration tags
10696         will be added to libtool.
10697
10698         * dbus-glib-1.pc.in: No need to specify any includes since
10699         dbus-1.pc.in has those.
10700
10701 2003-06-22  Havoc Pennington  <hp@pobox.com>
10702
10703         * mono/*, gcj/*, configure.in, Makefile.am:
10704         Check in makefiles and subdirs for mono and gcj bindings.
10705         Neither binding actually exists, just trying to get through
10706         all the build and other boring bits.
10707
10708 2003-06-21  Philip Blundell  <philb@gnu.org>
10709
10710         * tools/dbus-monitor.1: Updated.
10711
10712         * tools/dbus-send.1: Likewise.
10713
10714 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10715
10716         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10717         for hangup and error after checking read so we won't discard
10718         pending data if both hangup and read are set.
10719
10720 2003-06-19  Philip Blundell  <philb@gnu.org>
10721
10722         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10723
10724         * tools/dbus-send.c: Accept both --system and --session.
10725
10726         * tools/dbus-monitor.c: Same here.
10727
10728 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10729
10730         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10731         from C++ (Patch by Miloslav Trmac).
10732
10733 2003-06-15  Joe Shaw  <joe@assbarn.com>
10734
10735         * configure.in: Check for socklen_t.
10736
10737         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10738
10739         * test/test-segfault.c: Add #include <sys/time.h>
10740
10741         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10742         dbus-launch needs it.
10743
10744 2003-06-09  Havoc Pennington  <hp@redhat.com>
10745
10746         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10747         SUN_LEN, it breaks abstract socket usage
10748
10749         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10750         starts of lines.
10751
10752 2003-06-04  Havoc Pennington  <hp@pobox.com>
10753
10754         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10755         using unix:abstract=/foo, and when listening in a tmpdir
10756         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10757
10758         * dbus/dbus-transport.c (_dbus_transport_open): support
10759         unix:abstract=/foo
10760
10761         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10762         support abstract sockets
10763
10764         * dbus/dbus-transport-unix.c
10765         (_dbus_transport_new_for_domain_socket): support abstract sockets
10766
10767         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10768         toggle as an argument, implement abstract namespace support
10769         (_dbus_listen_unix_socket): ditto
10770
10771         * configure.in: add --enable-abstract-sockets and implement
10772         a configure check for autodetection of the right value.
10773
10774 2003-06-01  Havoc Pennington  <hp@pobox.com>
10775
10776         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10777         in /tmp (though on Linux this will end up being useless,
10778         when we add abstract namespace support)
10779
10780         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10781         subst'ing it
10782
10783 2003-05-28  Colin Walters  <walters@verbum.org>
10784
10785         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10786
10787 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10788
10789         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10790
10791 2003-05-17  Colin Walters  <walters@gnu.org>
10792
10793         * tools/dbus-send.c: Don't exit with an error code if --help was
10794         passed.  Default to using the session bus instead of the system
10795         one.
10796
10797         * tools/dbus-launch.c: Ditto.
10798
10799         * tools/dbus-monitor.c: Ditto.
10800
10801         * tools/dbus-send.1: Update with new arguments.
10802
10803         * tools/dbus-launch.c: Emit code to export variables.  New
10804         arguments -s and -c to specify shell syntax, and a bit of code to
10805         autodetect syntax.  Also, allow specifying a program to run.
10806
10807         * tools/dbus-launch.1: Update with new arguments.
10808
10809         * tools/dbus-send.1: Ditto.
10810
10811         * tools/dbus-monitor.1: Ditto.
10812
10813 2003-05-17  Havoc Pennington  <hp@pobox.com>
10814
10815         * bus/config-parser.c (merge_included): merge in policies from
10816         child configuration file.
10817
10818         * bus/policy.c (bus_policy_merge): function to merge two policies
10819         together
10820
10821 2003-05-16  Havoc Pennington  <hp@redhat.com>
10822
10823         * dbus/dbus-connection.c: disable verbose lock spew
10824
10825         * tools/dbus-send.c: add --print-reply command line option
10826
10827         * tools/dbus-print-message.h (print_message): new util function
10828         shared by dbus-send and dbus-monitor
10829
10830         * tools/dbus-monitor.c (handler_func): exit on disconnect
10831
10832         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10833         disconnected, don't try to use the read_watch
10834
10835         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10836         so we can find this bug more easily
10837
10838 2003-05-16  Havoc Pennington  <hp@redhat.com>
10839
10840         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10841         NULL as DBusHashTable is annoyingly likely to do.
10842
10843 2003-05-16  Colin Walters  <walters@verbum.org>
10844
10845         * tools/dbus-monitor.c: Add --session argument and usage()
10846         function.
10847
10848         * tools/dbus-monitor.1: Update with new --session arg.
10849
10850         * bus/Makefile.am (install-data-hook): Create
10851         $(libdir)/dbus-1.0/services so that the session bus is happy.
10852
10853 2003-05-15  Havoc Pennington  <hp@redhat.com>
10854
10855         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10856         on non-x86. ifdef's are evil.
10857
10858 2003-05-15  Havoc Pennington  <hp@redhat.com>
10859
10860         * configure.in: 0.11
10861
10862         * NEWS: update
10863
10864         * bus/Makefile.am (initddir): apparently we are supposed to put
10865         init scripts in /etc/rc.d/init.d not /etc/init.d
10866
10867         * bus/Makefile.am: remove the "you must --enable-tests to make
10868         check" as it broke distcheck
10869
10870         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10871
10872 2003-05-13  James Willcox  <jwillcox@gnome.org>
10873
10874         * configure.in:
10875         * bus/activation.c: (bus_activation_service_created),
10876         (bus_activation_activate_service):
10877         * bus/driver.c: (bus_driver_send_service_deleted),
10878         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10879         (bus_driver_send_service_acquired),
10880         (bus_driver_send_welcome_message),
10881         (bus_driver_handle_list_services):
10882         * bus/session.conf.in:
10883         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10884         (dbus_bus_service_exists), (dbus_bus_activate_service):
10885         * dbus/dbus-bus.h:
10886
10887         Add some convenience API which lets you activate a service, and did a
10888         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10889         and dbus_message_get_args()
10890
10891 2003-05-11  Havoc Pennington  <hp@pobox.com>
10892
10893         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10894         calling _dbus_marshal_validate_arg() for every byte in a byte
10895         array, etc.
10896
10897         * dbus/dbus-message-handler.c: use atomic reference counting to
10898         reduce number of locks slightly; the global lock in here sucks
10899
10900         * dbus/dbus-connection.c
10901         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10902         update_dispatch_status that can be called with lock held; then use
10903         in a couple places to reduce locking/unlocking
10904         (dbus_connection_send): hold the lock over the whole function
10905         instead of acquiring it twice.
10906
10907         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10908
10909         * bus/connection.c (bus_connections_setup_connection): fix access
10910         to already-freed memory.
10911
10912         * dbus/dbus-connection.c: keep a little cache of linked list
10913         nodes, to avoid using the global linked list alloc lock in the
10914         normal send-message case. Instead we just use the connection lock
10915         that we already have to take.
10916
10917         * dbus/dbus-list.c (_dbus_list_find_last): new function
10918
10919         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10920         change to use a struct for the atomic type; fix docs,
10921         they return value before increment, not after increment.
10922
10923         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10924         (_dbus_string_append_8_aligned): new functions to try to
10925         microoptimize this operation.
10926         (reallocate_for_length): break this out of set_length(), to
10927         improve profile info, and also so we can consider inlining the
10928         set_length() part.
10929
10930         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10931         strings with some preallocation, cuts down on our calls to realloc
10932         a fair bit. Though if we can get the "move entire string to empty
10933         string" optimization below to kick in here, it would be better.
10934
10935         * dbus/dbus-string.c (_dbus_string_move): just call
10936         _dbus_string_move_len
10937         (_dbus_string_move_len): add a special case for moving
10938         an entire string into an empty string; we can just
10939         swap the string data instead of doing any reallocs.
10940         (_dbus_string_init_preallocated): new function
10941
10942 2003-05-11  Havoc Pennington  <hp@pobox.com>
10943
10944         Write a "test-profile" that does echo client-server with threads;
10945         profile reveals lock contention, memcpy/realloc of buffers, and
10946         UTF-8 validation as hot spots. 20% of lock contention eliminated
10947         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10948         contention is global mempool locks for GList and DBusList.
10949
10950         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10951         x86 implementation
10952
10953         * dbus/dbus-connection.c (struct DBusConnection): use
10954         dbus_atomic_t for the reference count
10955
10956         * dbus/dbus-message.c (struct DBusMessage): declare
10957         dbus_atomic_t values as volatile
10958
10959         * configure.in: code to detect ability to use atomic integer
10960         operations in assembly, from GLib patch
10961
10962         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10963         time, tired of it being wrong in threads and forked processes
10964
10965         * glib/test-profile.c: a little program to bounce messages back
10966         and forth between threads and eat CPU
10967
10968         * dbus/dbus-connection.c: add debug spew macros for debugging
10969         thread locks; include config.h at top; fix deadlock in
10970         dbus_connection_flush()
10971
10972 2003-05-08  Havoc Pennington  <hp@pobox.com>
10973
10974         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10975         data from getting written, and there wasn't a good reason to
10976         use _exit really.
10977
10978         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10979         dbus_verbose lines in test coverage
10980         (main): add list of functions sorted by # of untested blocks
10981         to the coverage report
10982
10983         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10984
10985         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10986
10987         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10988         extend test coverage
10989
10990         * test/data/auth/cancel.auth-script: test canceling an
10991         authentication
10992
10993         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10994         aren't used. in CVS history if we end up needing them.
10995
10996 2003-05-04  Havoc Pennington  <hp@pobox.com>
10997
10998         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10999         unit test
11000
11001         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
11002         function, which assumed length was in # of strings, not bytes
11003
11004         * dbus/dbus-message.c (_dbus_message_test): add tests for some
11005         missing coverage
11006
11007         * dbus/dbus-connection.c
11008         (_dbus_connection_queue_received_message): disable function for
11009         now, we are only using it in test mode
11010
11011         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11012         remove a mistaken FIXME
11013
11014 2003-05-04  Havoc Pennington  <hp@pobox.com>
11015
11016         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
11017         unlock mutex on successful return, patch from Anders Gustafsson
11018
11019 2003-05-04  Havoc Pennington  <hp@pobox.com>
11020
11021         * dbus-glib-1.pc.in (Requires): fix dependencies, from
11022         Anders Gustafsson
11023
11024 2003-05-04  Havoc Pennington  <hp@pobox.com>
11025
11026         * tools/dbus-launch.c: implement
11027
11028         * bus/main.c (main), bus/bus.c (bus_context_new):
11029         implement --print-pid and --fork
11030
11031 2003-05-03  Havoc Pennington  <hp@redhat.com>
11032
11033         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
11034         the address had no value, and add to test suite. Fix and
11035         regression test from Miloslav Trmac
11036
11037 2003-05-03  Havoc Pennington  <hp@pobox.com>
11038
11039         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
11040         watch is invalid when handled
11041
11042         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
11043         dbus-launch utility to launch the bus from a shell script.  Didn't
11044         actually implement dbus-launch yet, it's just a placeholder still.
11045
11046 2003-05-03  Havoc Pennington  <hp@pobox.com>
11047
11048         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
11049         daemon; also documents daemon config file, so replaces
11050         doc/config-file.txt. Corrected some stuff from config-file.txt in
11051         the process of moving it.
11052
11053 2003-05-03  Havoc Pennington  <hp@pobox.com>
11054
11055         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
11056         add some man pages
11057
11058 2003-05-03  Colin Walters  <walters@verbum.org>
11059
11060         * dbus/dbus-sysdeps.c (fill_user_info): Test against
11061         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
11062
11063         * Makefile.am: Update to use new .pc versioning scheme.
11064
11065 2003-05-02  Havoc Pennington  <hp@redhat.com>
11066
11067         * bus/system.conf.in: allow send/receive to/from message bus
11068         service
11069
11070 2003-04-30  Havoc Pennington  <hp@redhat.com>
11071
11072         * configure.in: print a note when building with unit tests and
11073         without assertions
11074
11075 2003-04-30  Havoc Pennington  <hp@redhat.com>
11076
11077         * Makefile.am: add a check-local that complains if you didn't
11078         configure with --enable-tests
11079
11080 2003-04-29  Havoc Pennington  <hp@redhat.com>
11081
11082         * glib/dbus-gmain.c: docs cleanups
11083
11084         * dbus/dbus-types.h: add docs on int64 types
11085
11086         * dbus/dbus-memory.c: fix docs to avoid putting private API in
11087         public API docs section
11088
11089 2003-04-29  Havoc Pennington  <hp@redhat.com>
11090
11091         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
11092         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
11093         parallel install API version, not with the D-BUS package version.
11094
11095         * HACKING: move some of README over here
11096
11097         * README: updates, and document API/ABI policy
11098
11099         * configure.in: reindentation
11100
11101 2003-04-29  Havoc Pennington  <hp@redhat.com>
11102
11103         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
11104         to use this library" to be sure people have the right
11105         expectations.
11106
11107 2003-04-28  Havoc Pennington  <hp@redhat.com>
11108
11109         * configure.in: add --enable-docs which by default is auto yes if
11110         doxygen and db2html found, no otherwise; but can be forced on/off
11111
11112         * doc/Makefile.am: conditionalize whether to build docs on
11113         --enable-docs
11114
11115 2003-04-28  Havoc Pennington  <hp@redhat.com>
11116
11117         * configure.in: 0.10
11118
11119         * NEWS: update
11120
11121         * bus/system.conf.in: add <includedir>system.d</includedir>
11122
11123         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
11124         username was provided but not uid
11125
11126         * bus/config-parser.c (struct BusConfigParser): keep track of
11127         whether the parser is toplevel or was included; change some
11128         of the error handling if it's included.
11129
11130 2003-04-27  Havoc Pennington  <hp@pobox.com>
11131
11132         Unbreak my code...
11133
11134         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11135         report correct status if we finish processing authentication
11136         inside this function.
11137
11138         * bus/activation.c (try_send_activation_failure): use
11139         bus_transaction_send_error_reply
11140
11141         * bus/connection.c (bus_connection_get_groups): return an error
11142         explaining the problem
11143
11144         * bus/bus.c (bus_context_check_security_policy): implement
11145         restriction here that inactive connections can only send the
11146         hello message. Also, allow bus driver to send anything to
11147         any recipient.
11148
11149         * bus/connection.c (bus_connection_complete): create the
11150         BusClientPolicy here instead of on-demand.
11151         (bus_connection_get_policy): don't return an error
11152
11153         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
11154         sender field in message being replied to
11155
11156         * bus/bus.c (bus_context_check_security_policy): fix silly typo
11157         causing it to return FALSE always
11158
11159         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
11160         we checked sender rather than destination
11161
11162 2003-04-25  Havoc Pennington  <hp@redhat.com>
11163
11164         test suite is slightly hosed at the moment, will fix soon
11165
11166         * bus/connection.c (bus_connections_expire_incomplete): fix to
11167         properly disable the timeout when required
11168         (bus_connection_set_name): check whether we can remove incomplete
11169         connections timeout after we complete each connection.
11170
11171         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
11172         probably still broken.
11173
11174         * bus/services.c (bus_registry_acquire_service): implement max
11175         number of services owned, and honor allow/deny rules on which
11176         services a connection can own.
11177
11178         * bus/connection.c (bus_connection_get_policy): report errors here
11179
11180         * bus/activation.c: implement limit on number of pending
11181         activations
11182
11183 2003-04-25  Havoc Pennington  <hp@redhat.com>
11184
11185         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
11186         where we used >= 0 instead of != DBUS_UID_UNSET.
11187
11188 2003-04-25  Havoc Pennington  <hp@redhat.com>
11189
11190         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
11191         were toggled without add/remove, fix from Anders Gustafsson
11192
11193 2003-04-24  Havoc Pennington  <hp@redhat.com>
11194
11195         * test/data/valid-config-files/basic.conf: add <limit> tags to
11196         this test
11197
11198         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
11199         <limit> tag in configuration file.
11200
11201 2003-04-24  Havoc Pennington  <hp@redhat.com>
11202
11203         * bus/dispatch.c: somehow missed some name_is
11204
11205         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
11206         (_dbus_timeout_set_interval): new
11207
11208         * bus/connection.c (bus_connections_setup_connection): record time
11209         when each connection is first set up, and expire them after the
11210         auth timeout passes.
11211
11212 2003-04-24  Havoc Pennington  <hp@redhat.com>
11213
11214         * dbus/dbus-message.c (dbus_message_name_is): rename
11215         (dbus_message_service_is): rename
11216         (dbus_message_sender_is): rename
11217         (dbus_message_get_service): rename
11218
11219 2003-04-24  Havoc Pennington  <hp@redhat.com>
11220
11221         * configure.in: add --enable-checks
11222
11223         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11224
11225         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11226         to use thread locks.
11227         (_dbus_connection_handler_destroyed_locked): move some private
11228         functions into proper docs group
11229
11230         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11231         _dbus_return_val_if_fail
11232
11233         Throughout: use dbus_return_if_fail
11234
11235 2003-04-23  James Willcox  <jwillcox@gnome.org>
11236
11237         * glib/dbus-glib.h:
11238         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11239         (dbus_connection_setup_with_g_main),
11240         (dbus_server_setup_with_g_main):
11241         * glib/test-dbus-glib.c: (main):
11242         * glib/test-thread-client.c: (main):
11243         * glib/test-thread-server.c: (new_connection_callback), (main):
11244         * tools/dbus-monitor.c: (main):
11245
11246         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11247         and dbus_server_setup_with_g_main().
11248
11249 2003-04-20  Havoc Pennington  <hp@pobox.com>
11250
11251         * doc/dbus-specification.sgml: document the restrictions on
11252         message and service names
11253
11254 2003-04-22  Havoc Pennington  <hp@redhat.com>
11255
11256         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11257         support, and do some code cleanups to share more code and
11258         speed up array marshal/demarshal.
11259
11260         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11261
11262         * configure.in: generate dbus-arch-deps.h
11263
11264         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11265         64-bit typecodes
11266
11267 2003-04-22  Havoc Pennington  <hp@redhat.com>
11268
11269         * test/data/valid-messages/opposite-endian.message: fix test
11270         to use proper type for rply field
11271
11272         * test/data/invalid-messages: add tests for below validation
11273
11274         * dbus/dbus-message.c (decode_header_data): validate field types,
11275         and validate that named fields are valid names
11276         (decode_name_field): consider messages in the
11277         org.freedesktop.Local. namespace to be invalid.
11278
11279         * dbus/dbus-string.c (_dbus_string_validate_name): new
11280
11281 2003-04-19  Havoc Pennington  <hp@pobox.com>
11282
11283         * bus/driver.c (bus_driver_handle_hello): check limits and
11284         return an error if they are exceeded.
11285
11286         * bus/connection.c: maintain separate lists of active and inactive
11287         connections, and a count of each. Maintain count of completed
11288         connections per user. Implement code to check connection limits.
11289
11290         * dbus/dbus-list.c (_dbus_list_unlink): export
11291
11292         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11293         number of bytes in the message queue for a connection
11294
11295 2003-04-18  Havoc Pennington  <hp@pobox.com>
11296
11297         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11298
11299         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11300         memleaks
11301
11302         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11303         on realloc be sure to update the pointer in the keyring
11304
11305         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11306         offset to avoid writing to unallocated memory
11307
11308         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11309         try the next mechanism, so we properly handle OOM
11310
11311         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11312         on OOM.
11313         (_dbus_keyring_new): fix OOM bug
11314         (_dbus_keyring_new_homedir): always set error; impose a maximum
11315         number of keys we'll load from the file, mostly to speed up the
11316         test suite and make its OOM checks more useful, but also for
11317         general sanity.
11318
11319         * dbus/dbus-auth.c (process_error_server): reject authentication
11320         if we get an error from the client
11321         (process_cancel): on cancel, send REJECTED, per the spec
11322         (process_error_client): send CANCEL if we get an error from the
11323         server.
11324
11325 2003-04-18  Havoc Pennington  <hp@pobox.com>
11326
11327         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11328         debug spew
11329
11330         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11331         handling problem
11332
11333         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11334         about DBUS_TEST_HOMEDIR once
11335
11336         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11337         the environment
11338
11339         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11340         config file so we test the right thing
11341
11342         Throughout: assorted docs improvements
11343
11344 2003-04-18  Havoc Pennington  <hp@pobox.com>
11345
11346         * glib/dbus-gmain.c: adapt to watch changes
11347
11348         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11349
11350         * dbus/dbus-server.h: remove dbus_server_handle_watch
11351
11352         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11353
11354         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11355         like DBusTimeout, so we don't need dbus_connection_handle_watch
11356         etc.
11357
11358 2003-04-17  Havoc Pennington  <hp@redhat.com>
11359
11360         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11361         database usage so it all goes via the DBusUserDatabase cache.
11362
11363 2003-04-17  Havoc Pennington  <hp@redhat.com>
11364
11365         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11366         there was an OOM watch we skipped, we always return TRUE so we
11367         iterate again to have a look at it again. Fixes test suite hang.
11368         Code rearrangement also lets us lose some memset and only iterate
11369         over callbacks once.
11370
11371         * bus/driver.c (bus_driver_handle_message): sense of test for
11372         reply was backward
11373
11374 2003-04-16  Havoc Pennington  <hp@pobox.com>
11375
11376         * doc/dbus-specification.sgml: make spec say serials are unsigned
11377
11378         * dbus/dbus-message.h: change message serials to unsigned
11379
11380         * dbus/dbus-connection.c: adapt to message serials being unsigned
11381
11382 2003-04-15  Havoc Pennington  <hp@pobox.com>
11383
11384         * bus/bus.c: create and keep around a shared DBusUserDatabase
11385         object.
11386
11387         * bus/connection.c (bus_connection_get_groups): don't cache
11388         groups for user in the connection object, since user database
11389         object now does that.
11390
11391 2003-04-16  Havoc Pennington  <hp@redhat.com>
11392
11393         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11394         list of size counters
11395         (_dbus_message_loader_putback_message_link): put back a popped link
11396
11397         * dbus/dbus-connection.c
11398         (dbus_connection_set_max_live_messages_size): rename
11399         max_received_size
11400         (dbus_connection_get_outgoing_size): get size of outgoing
11401         queue
11402         (_dbus_connection_set_connection_counter): remove this cruft
11403
11404 2003-04-14  Havoc Pennington  <hp@redhat.com>
11405
11406         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11407         caching, but at some point we might want to be able to use a
11408         different database.
11409
11410         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11411         SHA1 conf file to test the sha1 auth mechanism, since the regular
11412         test always uses EXTERNAL when available.
11413
11414         * configure.in,
11415         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11416         add conf file that requires use of sha1 auth
11417
11418 2003-04-13  Havoc Pennington  <hp@pobox.com>
11419
11420         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11421         from Philip Blundell to send messages and monitor them.
11422
11423 2003-04-13  Havoc Pennington  <hp@pobox.com>
11424
11425         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11426         callbacks
11427
11428         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11429         users
11430
11431         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11432         fix to only recover unused bytes if we're already authenticated
11433         (_dbus_transport_get_is_authenticated): fix to still mark us
11434         authenticated if there are unused bytes.
11435
11436         * bus/dispatch.c: implement security policy checking
11437
11438         * bus/connection.c (bus_transaction_send_from_driver): new
11439
11440         * bus/bus.c (bus_context_check_security_policy): new
11441
11442         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11443         now we just set the DBusError and it gets converted to an error
11444         reply.
11445
11446         * bus/connection.c (allow_user_function): enable code using actual
11447         data from the config file
11448
11449         * bus/policy.c (list_allows_user): handle wildcard rules for
11450         user/group connection perms
11451
11452 2003-04-13  Havoc Pennington  <hp@pobox.com>
11453
11454         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11455
11456         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11457
11458         * bus/policy.c (bus_policy_append_mandatory_rule)
11459         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11460         (bus_policy_append_group_rule): new functions
11461
11462 2003-04-12  Havoc Pennington  <hp@pobox.com>
11463
11464         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11465
11466         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11467         the pid/gid/uid, just for paranoia.
11468
11469         * test/break-loader.c (randomly_do_n_things): find a byte
11470         containing a type code, and randomly change it to a different
11471         type code.
11472
11473 2003-04-12  Havoc Pennington  <hp@pobox.com>
11474
11475         * bus/policy.h: change BusPolicy to be the thing from the config
11476         file, and rename old BusPolicy to BusClientPolicy
11477
11478         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11479         match change in how policy works
11480
11481         * dbus/dbus-internals.h: mark assert_not_reached as
11482         __attribute((noreturn))__
11483
11484 2003-04-11  Havoc Pennington  <hp@redhat.com>
11485
11486         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11487         the broadcast service. Use boolean return for ServiceExists.
11488
11489 2003-04-11  Havoc Pennington  <hp@redhat.com>
11490
11491         * configure.in: add another directory to look for qt in.
11492
11493 2003-04-11  Havoc Pennington  <hp@redhat.com>
11494
11495         * AUTHORS: add Colin Walters
11496
11497 2003-04-11  Havoc Pennington  <hp@redhat.com>
11498
11499         * NEWS: update
11500
11501         * configure.in: 0.9
11502
11503 2003-04-11  Havoc Pennington  <hp@redhat.com>
11504
11505         * bus/messagebus.in: remove pid file when stopping the
11506         message bus, since the bus won't have privileges to remove it
11507         itself.
11508
11509 2003-04-11  Havoc Pennington  <hp@redhat.com>
11510
11511         * bus/bus.c (bus_context_new): move credentials change after
11512         creating pidfile
11513
11514 2003-04-11  Havoc Pennington  <hp@pobox.com>
11515
11516         * test/decode-gcov.c: add "below average functions" to the
11517         coverage report, and change how some of the code works.
11518
11519         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11520         not in the coverage stats.
11521
11522         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11523         couple places so running the test suite doesn't result in megaspam.
11524
11525 2003-04-11  Havoc Pennington  <hp@pobox.com>
11526
11527         * bus/dispatch.c (check_existent_service_activation): accept a no
11528         memory error in a place we didn't before
11529
11530         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11531         in case the first one failed," since the test suite is less
11532         broken now.
11533
11534 2003-04-10  Havoc Pennington  <hp@pobox.com>
11535
11536         * bus/dispatch.c (check_segfault_service_activation): add test
11537         for launching an executable that just crashes.
11538
11539         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11540         don't leave a million cores. We'll see how portable this is.
11541
11542 2003-04-10  Havoc Pennington  <hp@pobox.com>
11543
11544         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11545         the possible parent failures before we fork, so that we don't
11546         fail to create a babysitter after creating the child.
11547
11548         * bus/activation.c (bus_activation_activate_service): kill child
11549         if we don't successfully complete the activation.
11550
11551 2003-04-10  Havoc Pennington  <hp@redhat.com>
11552
11553         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11554         the connection if it's disconnected
11555
11556         * bus/activation.c (bus_activation_service_created): use new
11557         transaction features to roll back removal of pending activation if
11558         we don't successfully create the service after all. Don't remove
11559         pending activation if the function fails.
11560
11561         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11562         (_dbus_list_insert_after_link): new code to facilitate
11563         services.c fixes
11564
11565         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11566         new functionality, so we can preallocate the ability to insert
11567         into a hash table.
11568
11569         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11570         allowing us to put custom hooks in a transaction to be used for
11571         cancelling said transaction
11572
11573         * doc/dbus-specification.sgml: add some discussion of secondary
11574         service owners, and disallow zero-length service names
11575
11576         * bus/services.c (bus_registry_acquire_service): new function,
11577         splits out part of bus_driver_handle_acquire_service() and fixes
11578         a bug where we didn't remove the service doing the acquiring
11579         from the secondary queue if we failed to remove the current owner
11580         from the front of the queue.
11581
11582 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11583
11584         * doc/dbus-specification.sgml:
11585         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11586
11587 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11588
11589         * bus/.cvsignore:
11590         * glib/.cvsignore:
11591         * test/.cvsignore:
11592         Added files to cvsignore
11593
11594         * dbus/dbus-message.h:
11595         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11596         Make get_named() take two out argument and return a boolean.
11597         (dbus_message_iter_get_args_valist):
11598         Update usage of get_named().
11599         (dbus_message_iter_append_byte):
11600         Fix typo
11601         (dbus_message_iter_append_named)
11602         Fix typo
11603         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11604         More tests.
11605
11606 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11607
11608         * dbus/dbus-marshal.[ch]:
11609         Add array_type_pos argument to _dbus_marshal_validate_arg.
11610         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11611
11612         * dbus/dbus-message.[ch]:
11613         Multi-dimensional arrays have full type specification in the
11614         outermost array. Iter code re-arranged to handle this.
11615         Added some more iter tests.
11616
11617         * doc/dbus-specification.sgml:
11618         Add me to authors.
11619         Remove old FIXME.
11620         Update new array encoding description.
11621         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11622
11623         * test/data/invalid-messages/array-with-mixed-types.message:
11624         * test/data/valid-messages/array-of-array-of-uint32.message:
11625         Change to the new array format.
11626
11627         * test/data/invalid-messages/too-short-dict.message:
11628         Fix bug in test.
11629
11630         * test/data/valid-messages/recursive-types.message:
11631         Fix up and extend test.
11632
11633 2003-04-10  Havoc Pennington  <hp@pobox.com>
11634
11635         * bus/dispatch.c: lots of fixes
11636
11637         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11638         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11639         that was crack, broke the test service.
11640
11641         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11642         handling to avoid piling up errors if we get a failure on the
11643         first address.
11644
11645         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11646         pid in assertion failures.
11647
11648         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11649         to some fixed size of file descriptor array. Don't return TRUE
11650         anytime a timeout exists, that led to lots of busy loop silliness
11651         in the tests.
11652
11653 2003-04-09  Havoc Pennington  <hp@redhat.com>
11654
11655         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11656         I'd checked this in earlier but hadn't.
11657
11658 2003-04-09  Havoc Pennington  <hp@redhat.com>
11659
11660         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11661         the activation test (man this is getting old!)
11662
11663 2003-04-09  Havoc Pennington  <hp@redhat.com>
11664
11665         * test/test-utils.c: use dispatch status function to fix this up
11666
11667         * bus/connection.c (connection_watch_callback): don't dispatch
11668         from here
11669         (connection_timeout_callback): don't dispatch from here
11670         (bus_connections_setup_connection): set the dispatch status function
11671         (bus_connection_disconnected): unset it
11672
11673         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11674         used to add a connection to be dispatched
11675         (_dbus_loop_iterate): do the dispatching at the end of each
11676         iteration
11677
11678         * dbus/dbus-connection.c
11679         (dbus_connection_set_dispatch_status_function): new function
11680         allowing us to fix up main loop usage
11681         (_dbus_connection_last_unref): free all the various function
11682         user data
11683         (dbus_connection_dispatch): call the DispatchStatusFunction
11684         whenever this function returns
11685         (dbus_connection_handle_watch): call DispatchStatusFunction
11686         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11687         (reply_handler_timeout): call DispatchStatusFunction
11688         (dbus_connection_flush): call DispatchStatusFunction
11689
11690 2003-04-09  Havoc Pennington  <hp@redhat.com>
11691
11692         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11693         a memory leak
11694
11695         * bus/dispatch.c (check_service_activated): fix bug in test
11696
11697         * dbus/dbus-mainloop.c (check_timeout): fix this up
11698
11699         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11700         verbose output so we can sort out output from different processes,
11701         e.g. in the activation case.
11702
11703 2003-04-08  Colin Walters  <walters@gnu.org>
11704
11705         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11706         the pid file.
11707         (bus_context_new): Set it.
11708         (bus_context_unref): Use it to delete the pid file.
11709
11710 2003-04-08  Havoc Pennington  <hp@redhat.com>
11711
11712         * test/data/invalid-messages/array-with-mixed-types.message:
11713         regression test that fails for the moment
11714
11715         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11716         tests for convenience
11717
11718         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11719         array of nil, it broke things.
11720
11721         * test/data/invalid-messages/array-of-nil.message: regression test
11722
11723         * test/data/valid-messages/array-of-array-of-uint32.message:
11724         happened to write this so added it to suite
11725
11726 2003-04-08  Havoc Pennington  <hp@redhat.com>
11727
11728         * bus/driver.c (bus_driver_handle_acquire_service): init
11729         retval/reply before checking name
11730
11731         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11732         recursion depth argument
11733
11734         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11735         in the public struct for future extension
11736
11737         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11738         typo
11739
11740         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11741         message
11742
11743         * doc/dbus-specification.sgml: fix typo
11744
11745 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11746
11747         Implemented recursive types, named types and new-style iters
11748
11749         * bus/driver.c:
11750         * glib/test-thread-client.c: (thread_func):
11751         * glib/test-thread-server.c: (handle_test_message):
11752         * test/test-service.c: (handle_echo):
11753         Update to new api
11754
11755         * dbus/Makefile.am:
11756         * dbus/dbus-dict.c:
11757         * dbus/dbus-dict.h:
11758         * dbus/dbus.h
11759         Remove DBusDict
11760
11761         * dbus/dbus-internals.c: (_dbus_type_to_string):
11762         Update for new types.
11763
11764         * dbus/dbus-marshal.[ch]:
11765         Implement recursive types and the new marshalling format.
11766         Remove hardcoded dict marshalling.
11767         Marshal named types.
11768
11769         * dbus/dbus-message-builder.c:
11770         Add BYTE_ARRAY.
11771         Remove references to old types
11772
11773         * dbus/dbus-message.[ch]:
11774         New non-refcounted iter API that supports recursive iters.
11775         Use iters for appending, including support for recursive
11776         iters.
11777         Add byte and named type support.
11778         Update everything to new marshalling formats.
11779         Add tests for new API.
11780
11781         * dbus/dbus-protocol.h:
11782         Remove old array types.
11783         Add types: BYTE, ARRAY, DICT, NAMED
11784
11785         * dbus/dbus-string.c:
11786         * dbus/dbus-sysdeps.c:
11787         Make parse_double locale safe.
11788
11789         * dbus/dbus-test-main.c:
11790         Call setlocale.
11791
11792         * dbus/dbus-test.c:
11793         Kill dict test
11794
11795         * doc/dbus-specification.sgml:
11796         Update spec
11797
11798         * test/data/incomplete-messages/missing-body.message:
11799         * test/data/invalid-messages/bad-boolean.message:
11800         * test/data/invalid-messages/bad-boolean-array.message:
11801         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11802         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11803         * test/data/invalid-messages/too-short-dict.message:
11804         * test/data/valid-messages/dict-simple.message:
11805         * test/data/valid-messages/dict.message:
11806         * test/data/valid-messages/emptiness.message:
11807         * test/data/valid-messages/lots-of-arguments.message:
11808         * test/data/valid-messages/no-padding.message:
11809         * test/data/valid-messages/recursive-types.message:
11810         Add missing NAME fields
11811         Fix up dicts & arrays
11812
11813         * test/data/invalid-messages/dict-with-nil-value.message:
11814         Removed, this is not invalid anymore.
11815
11816         * test/data/valid-messages/recursive-types.message:
11817         Add new test for deeply recursive types.
11818
11819 2003-04-07  Havoc Pennington  <hp@pobox.com>
11820
11821         * bus/driver.c (bus_driver_handle_acquire_service): return an
11822         error if you try to acquire a service that starts with ':'
11823
11824 2003-04-07  Havoc Pennington  <hp@redhat.com>
11825
11826         * doc/dbus-specification.sgml: require that base service names
11827         start with ':' and that the base service is created/deleted
11828         as first and last things a connection does on the bus
11829
11830         * bus/dispatch.c (check_existent_service_activation): lots more
11831         work on the activation test; it doesn't fully pass yet...
11832
11833         * test/test-service.c (main): fix so we don't memleak the
11834         connection to the message bus
11835         (filter_func): accept a message asking us to exit
11836
11837 2003-04-06  Havoc Pennington  <hp@pobox.com>
11838
11839         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11840         from Colin Walters
11841
11842         * configure.in: fixes to Qt detection from Colin Walters
11843
11844         * doc/Makefile.am: Only remove generated docbook dirs if they
11845         exist, from Colin Walters
11846
11847         * dbus/dbus-bus.c: change how we set well-known connections to
11848         NULL, so that it works if a single connection is stored in
11849         two well-known array slots.
11850
11851         * test/Makefile.am: remove a lot of stuff that isn't immediately
11852         useful, it's in CVS history if we want it.
11853
11854         * test/test-service.c: use dbus-mainloop instead of that
11855         watch.[hc] crack
11856
11857 2003-04-06  Havoc Pennington  <hp@pobox.com>
11858
11859         * dbus/Makefile.am: split lists of sources into stuff that goes in
11860         the library, util functions that go in the lib and are also used
11861         elsewhere, and util functions that are used in tests/daemon but
11862         don't go in the lib.
11863
11864         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11865         here so it can be used in test binaries also
11866
11867 2003-04-06  Havoc Pennington  <hp@pobox.com>
11868
11869         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11870         here in the parent process, so we can return an error if it
11871         fails. Also, move some of the code into the child so the parent
11872         is less hosed if we fail midway through.
11873
11874         * bus/bus.c (bus_context_new): move pidfile detection further up
11875         in the function, before we start overwriting sockets and such.
11876
11877         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11878
11879         * configure.in: add --with-system-pid-file and --with-system-socket
11880
11881 2003-04-06  Colin Walters  <walters@verbum.org>
11882
11883         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11884
11885         * bus/system.conf.in: Declare a pidfile.
11886
11887         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11888         create one (if appropriate).
11889
11890         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11891         (struct BusConfigParser) [pidfile]: New.
11892         (element_type_to_name, merge_included, start_busconfig_child)
11893         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11894         (bus_config_parser_unref): Free it.
11895         (bus_config_parser_get_pidfile): New function.
11896
11897         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11898
11899         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11900
11901         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11902
11903         * dbus/dbus-sysdeps.h: Prototype it.
11904
11905 2003-04-06  Havoc Pennington  <hp@pobox.com>
11906
11907         * bus/bus.c (bus_context_new): print the address in here, rather
11908         than in main(), because we need to do it before forking the daemon
11909
11910         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11911         on the service nonexistent error
11912
11913         * bus/driver.c (bus_driver_handle_acquire_service): set the
11914         sender on the AcquireService reply
11915
11916         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11917         server also listen on a UNIX socket so services can connect to it.
11918
11919 2003-04-06  Havoc Pennington  <hp@pobox.com>
11920
11921         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11922         so it detects deadlocks and also we actually init threads when
11923         debugging.
11924
11925 2003-04-06  Havoc Pennington  <hp@pobox.com>
11926
11927         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11928         save the domain socket name, and unlink it when we disconnect the
11929         server. Means that at least when we exit normally, we won't leave
11930         a bunch of junk in /tmp
11931
11932         * dbus/dbus-transport-unix.c
11933         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11934         memory management). (I was making a real change here but then
11935         didn't)
11936
11937 2003-04-06  Havoc Pennington  <hp@pobox.com>
11938
11939         * bus/bus.c (bus_context_new): fix wrong handling of
11940         server_data_slot_unref() in the error case.
11941
11942         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11943         "(condition) != 0" to _dbus_real_assert so that
11944         "_dbus_assert (pointer)" doesn't cause a warning
11945
11946         * bus/main.c (main): accept --print-address option to print out
11947         the message bus address
11948
11949         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11950
11951         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11952         "tmpdir" option to unix: address on client side
11953
11954         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11955         to unix: address
11956
11957         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11958         we can use to create sockets in the test suite.
11959
11960         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11961         cleanly. To be used for testing.
11962
11963         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11964
11965         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11966
11967         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11968         handle trying to call this when there's no servers active
11969
11970 2003-04-05  Havoc Pennington  <hp@pobox.com>
11971
11972         * NEWS: update
11973
11974         * configure.in: 0.8
11975
11976 2003-04-05  Havoc Pennington  <hp@pobox.com>
11977
11978         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11979         crash on startup. Need to get "try starting the daemon"
11980         in the test suite I guess. ;-)
11981
11982         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11983         tracked the number of open connections; it's better done in
11984         application-specific code as you want it to span all servers etc.
11985
11986 2003-04-05  Havoc Pennington  <hp@pobox.com>
11987
11988         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11989         patch from Colin Walters
11990
11991 2003-04-05  Havoc Pennington  <hp@pobox.com>
11992
11993         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11994         reality; in fact multiple mechanisms are allowed.
11995
11996         * dbus/dbus-internals.c (_dbus_real_assert)
11997         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11998         _dbus_assert_not_reached() into functions, so that they don't show
11999         up in basic block counts for test coverage, and don't use up as
12000         much disk space. Does mean slower execution speed though, so
12001         assumes --disable-asserts is the normal production case.
12002
12003 2003-04-05  Havoc Pennington  <hp@pobox.com>
12004
12005         * test/Makefile.am (dist-hook): also dist *.in files
12006
12007         * NEWS: update
12008
12009         * configure.in: 0.7
12010
12011 2003-04-05  Havoc Pennington  <hp@pobox.com>
12012
12013         * dbus/dbus-string.c: docs warning
12014
12015         * dbus/dbus-spawn.c: missing docs
12016
12017         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
12018
12019 2003-04-05  Havoc Pennington  <hp@pobox.com>
12020
12021         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
12022         magic from GLib
12023
12024         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
12025         to -1 once we've reaped the babysitter
12026         (_dbus_babysitter_handle_watch): do as much work as we can, not
12027         just one go of it
12028
12029         * bus/activation.c: add code using DBusBabysitter so that we
12030         handle it when a service fails to start up properly.
12031         (bus_activation_service_created): don't remove the activation
12032         entries as we go, just let them get removed when we free the pending
12033         activation. Unref reply messages after sending them.
12034
12035 2003-04-05  Havoc Pennington  <hp@pobox.com>
12036
12037         * test/decode-gcov.c (main): print per-directory stats in the report
12038
12039         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
12040
12041 2003-04-05  Havoc Pennington  <hp@pobox.com>
12042
12043         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
12044
12045         * test/decode-gcov.c: hack up a little program to suck data
12046         out of gcov files. Yes this is sort of silly.
12047
12048         * configure.in: define something in config.h and do an
12049         AM_CONDITIONAL when gcov is enabled
12050
12051 2003-04-04  Havoc Pennington  <hp@redhat.com>
12052
12053         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
12054         return a "babysitter" object that is used to monitor the status of
12055         the spawned process and reap it when required.
12056
12057         * test/test-segfault.c, test/test-exit.c,
12058         test/test-sleep-forever.c: binaries that do various lame things,
12059         used in the test suite.
12060
12061         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
12062
12063 2003-04-03  Havoc Pennington  <hp@pobox.com>
12064
12065         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
12066         in preparation for modifying it, dbus-sysdeps is getting
12067         a bit unmanageable.
12068
12069 2003-04-03  Havoc Pennington  <hp@redhat.com>
12070
12071         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
12072         have multiple ones
12073
12074         * bus/*.[hc]: adapt to mainloop change
12075
12076 2003-04-03  Havoc Pennington  <hp@redhat.com>
12077
12078         * bus/activation.c (load_directory): fix up memleaks
12079         (bus_activation_entry_free): free the entry
12080
12081         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
12082         we get one from the message bus; fix memleaks.
12083
12084         * dbus/dbus-message.c (dbus_set_error_from_message): new function
12085
12086 2003-04-03  Havoc Pennington  <hp@pobox.com>
12087
12088         * bus/config-parser.c (bus_config_parser_unref): free
12089         list of mechanisms, bug discovered by test suite enhancements
12090         (putting system.conf and session.conf into suite)
12091
12092         * test/Makefile.am, test/test-service.c: add placeholder for a
12093         test service that we'll activate as part of test suite. Doesn't
12094         do anything yet.
12095
12096         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
12097         setting NULL value, and use system malloc not dbus_malloc()
12098         when we have unavoidable memleakage.
12099
12100         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
12101         didn't work, and support DBUS_BUS_ACTIVATION.
12102
12103         * bus/activation.c (child_setup): pass our well-known bus type to
12104         the child
12105
12106         * bus/config-parser.c: support <type> to specify well-known type
12107
12108         * doc/dbus-specification.sgml: document the env variables to
12109         locate well-known buses and find service activator
12110
12111 2003-04-02  Havoc Pennington  <hp@redhat.com>
12112
12113         * test/Makefile.am (all-local): add a rule to copy tests to
12114         builddir, so we can have generated tests. Use this to remove the
12115         silly hack for testing system.conf and session.conf. Will use this
12116         shortly to generate .service files pointing to test binaries.
12117
12118 2003-04-02  Havoc Pennington  <hp@redhat.com>
12119
12120         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
12121         current alloc and needed new length, not max of the doubled
12122         allocation and needed new length. Also, when building tests,
12123         don't do the double-allocation stuff, just realloc every time.
12124
12125 2003-04-02  Havoc Pennington  <hp@redhat.com>
12126
12127         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
12128         in error messages
12129         (_dbus_string_get_dirname): new
12130         (_dbus_sysdeps_test): new
12131         (_dbus_directory_open): include dirnames in error messages
12132
12133         * bus/config-parser.c: interpret <include> and <includedir> and
12134         <servicedir> relative to config file location if the given
12135         filename is not absolute.
12136
12137         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
12138
12139 2003-04-02  Havoc Pennington  <hp@redhat.com>
12140
12141         * bus/connection.c (bus_transaction_send_error_reply): set sender
12142         service for the error, and unref the reply on success
12143
12144         * bus/activation.c: convert to use BusTransaction so OOM can be
12145         handled correctly
12146         (bus_activation_service_created): set sender of the message
12147
12148 2003-04-01  Havoc Pennington  <hp@redhat.com>
12149
12150         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
12151         <includedir> (at least mostly)
12152
12153         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
12154         first, then the user ID
12155
12156 2003-04-01  Havoc Pennington  <hp@pobox.com>
12157
12158         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
12159         function
12160
12161         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
12162
12163         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
12164
12165         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
12166         socket 0777, and unlink any existing socket.
12167
12168         * bus/bus.c (bus_context_new): change our UID/GID and fork if
12169         the configuration file so specifies; set up auth mechanism
12170         restrictions
12171
12172         * bus/config-parser.c (bus_config_parser_content): add support
12173         for <fork> option and fill in code for <auth>
12174
12175         * bus/system.conf.in: add <fork/> to default configuration,
12176         and limit auth mechanisms to EXTERNAL
12177
12178         * doc/config-file.txt (Elements): add <fork>
12179
12180         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
12181         (_dbus_change_identity): new function
12182
12183 2003-03-31  Havoc Pennington  <hp@redhat.com>
12184
12185         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
12186         (_dbus_listen_unix_socket): fix off-by-one error in null
12187         termination spotted by Nalin
12188
12189 2003-03-31  Havoc Pennington  <hp@redhat.com>
12190
12191         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
12192         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
12193         having a real home directory available.
12194
12195 2003-03-31  Havoc Pennington  <hp@redhat.com>
12196
12197         * bus/Makefile.am (install-data-hook): create /var/run/dbus
12198
12199         * bus/messagebus.in: add init script for Red Hat /etc/init.d
12200
12201         * configure.in: add support for specifying a style of init script
12202         to install
12203
12204 2003-03-31  Havoc Pennington  <hp@redhat.com>
12205
12206         Fix some annoying DBusString API and fix all affected code.
12207
12208         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
12209         max_length argument
12210         (_dbus_string_get_data): change to return string instead of using
12211         an out param
12212         (_dbus_string_get_const_data): ditto
12213         (_dbus_string_get_data_len): ditto
12214         (_dbus_string_get_const_data_len): ditto
12215
12216 2003-03-31  Havoc Pennington  <hp@redhat.com>
12217
12218         * bus/main.c (main): fix up the command line arguments to be nicer
12219
12220 2003-03-31  Havoc Pennington  <hp@redhat.com>
12221
12222         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12223         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12224         final location that lands in the config file
12225
12226         * bus/config-loader-expat.c (bus_config_load): fix type of
12227         XML_Parser variable
12228
12229         * doc/TODO: remove TODO item for dbus_bus_get()
12230
12231         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12232
12233 2003-03-31  Havoc Pennington  <hp@pobox.com>
12234
12235         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12236         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12237         argument since they are always client side
12238
12239         * dbus/dbus-server.c (dbus_server_get_address): new function
12240
12241         * bus/main.c (main): take the configuration file as an argument.
12242
12243         * test/data/valid-config-files/debug-allow-all.conf: new file to
12244         use with dispatch.c tests for example
12245
12246         * bus/test-main.c (main): require test data dir
12247
12248         * bus/bus.c (bus_context_new): change this to take a
12249         configuration file name as argument
12250
12251         * doc/config-file.txt (Elements): add <servicedir>
12252
12253         * bus/system.conf, bus/session.conf: new files
12254
12255         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12256         well-known socket if none set
12257
12258         * configure.in: create system.conf and session.conf
12259
12260 2003-03-30  Havoc Pennington  <hp@pobox.com>
12261
12262         * bus/config-parser.c: hacking
12263
12264         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12265         to shut down, since it could cause weirdness with the DBusList
12266         lock
12267
12268         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12269         link-oriented stack routines
12270         (alloc_link): free the mempool if the first alloc from it fails
12271
12272         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12273
12274         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12275         from GLib
12276         (_dbus_string_skip_white): new
12277
12278         * doc/config-file.txt (Elements): add <includedir>
12279
12280 2003-03-28  Havoc Pennington  <hp@pobox.com>
12281
12282         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12283         (_dbus_string_copy_data): new functions
12284
12285 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12286
12287         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12288         * dbus/dbus-bus.h:
12289         Add dbus_bus_get.
12290
12291         * dbus/dbus-memory.c:
12292         Fix a doc comment.
12293
12294 2003-03-28  Havoc Pennington  <hp@pobox.com>
12295
12296         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12297         I think it may have just been superstition. Not sure.
12298
12299         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12300         failures that were not being handled.
12301
12302         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12303
12304         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12305         row that will fail on out-of-memory.
12306
12307         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12308         function for testing out-of-memory handling.
12309
12310         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12311         allocation functions, they do map exactly to the expat ones.
12312
12313 2003-03-27  Havoc Pennington  <hp@redhat.com>
12314
12315         * bus/config-loader-libxml.c (bus_config_load): add another error
12316         check
12317
12318 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12319
12320         * doc/TODO:
12321         Add note about automatic service activation.
12322
12323         * doc/dbus-specification.sgml:
12324         Rename the specification and clarify a few things.
12325
12326 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12327
12328         * Doxyfile.in:
12329         * dbus/dbus-address.c:
12330         * dbus/dbus-dict.c:
12331         * dbus/dbus-marshal.c:
12332         * dbus/dbus-server-debug-pipe.c:
12333         * dbus/dbus-transport-unix.c:
12334         Fix documentation warnings.
12335
12336 2003-03-26  Havoc Pennington  <hp@pobox.com>
12337
12338         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12339         after every test so it's quick and easy to see which leaked, and
12340         so we test multiple dbus_shutdown() calls
12341
12342         * configure.in: change configure.in XML stuff to also support
12343         expat
12344
12345         * config-loader-libxml.c: some hacking
12346
12347         * config-loader-expat.c: some hacking
12348
12349         * config-parser.c: some hacking, plus tests
12350
12351 2003-03-25  Havoc Pennington  <hp@redhat.com>
12352
12353         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12354
12355         * configure.in: add --with-xml option to specify XML library,
12356         right now only libxml is supported.
12357
12358         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12359         nonworking code between home and work, still just stubs
12360
12361 2003-03-24  Havoc Pennington  <hp@redhat.com>
12362
12363         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12364         file
12365
12366         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12367         NULL argument for "message" if the error is a well-known one,
12368         fill in a generic message in this case.
12369
12370         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12371         favor of DBusError
12372
12373         * bus/test.c (bus_test_flush_bus): add
12374
12375         * bus/policy.c (bus_policy_test): test code stub
12376
12377 2003-03-24  Havoc Pennington  <hp@pobox.com>
12378
12379         * bus/connection.c (bus_connections_setup_connection): set up
12380         the "can this user connect" function, but it always returns
12381         TRUE until we have a config file parser so we can have a config
12382         file that allows connections.
12383
12384 2003-03-23  Havoc Pennington  <hp@pobox.com>
12385
12386         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12387         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12388         the mutex, so we can check for proper memory management
12389         and OOM handling.
12390
12391         * dbus/dbus-dataslot.c: remove the mutex from
12392         DBusDataSlotAllocator and lock it manually when using it,
12393         to simplify fitting it into the global slots framework.
12394
12395         * dbus/dbus-threads.c (init_static_locks): rework how we're
12396         handling global locks so they are easily shut down.
12397
12398         * bus/policy.c (bus_policy_append_rule): fix
12399
12400         * bus/test-main.c (main): check for memleaks
12401
12402         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12403         test suite check for memleaks
12404
12405         * dbus/dbus-memory.c: add support in test mode for tracking
12406         number of outstanding blocks
12407
12408 2003-03-23  Havoc Pennington  <hp@pobox.com>
12409
12410         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12411         policies code
12412
12413         * dbus/dbus-hash.h: add ULONG hash keys
12414
12415         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12416         (_dbus_get_group_id): new function
12417
12418 2003-03-20  Havoc Pennington  <hp@redhat.com>
12419
12420         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12421         new function
12422         (dbus_connection_get_unix_user): new function
12423
12424 2003-03-20  Havoc Pennington  <hp@pobox.com>
12425
12426         * bus/connection.c (bus_connection_send_oom_error): assert that
12427         message has a sender
12428         (connection_execute_transaction): ditto
12429         (bus_connection_preallocate_oom_error): fix to set the sender, and
12430         set recipient to the destination service, not the bus driver
12431
12432         * bus/policy.c: hacking
12433
12434         * dbus/dbus-message.c (dbus_message_service_is): new function
12435         (dbus_message_sender_is): new
12436
12437 2003-03-19  Havoc Pennington  <hp@redhat.com>
12438
12439         * bus/policy.c: start sketching code for policy restrictions on
12440         what connections can do.
12441
12442 2003-03-18  Havoc Pennington  <hp@redhat.com>
12443
12444         * doc/TODO: some notes on high-level todo items. Little nitpick
12445         stuff is all in @todo, so no need to add it here.
12446
12447         * doc/config-file.txt: some notes on how config file might look
12448
12449 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12450
12451         * configure.in: 0.6
12452
12453         * NEWS: Update.
12454
12455 2003-03-17  Havoc Pennington  <hp@redhat.com>
12456
12457         * dbus/dbus-internals.h: add gcc attributes so that
12458         our printf-style functions warn on bad arguments to
12459         format
12460
12461         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12462         format bug
12463
12464         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12465         printf format bug
12466
12467 2003-03-17  Havoc Pennington  <hp@redhat.com>
12468
12469         * bus/test-main.c (main): make it print something as it runs
12470         so make check doesn't look stuck
12471
12472         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12473         from CVS, now obsolete
12474
12475 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12476
12477         * bus/dispatch.c: (bus_dispatch):
12478         Refetch the service name since it may have been reallocated
12479         when dbus_message_set_sender was called.
12480
12481         * dbus/dbus-sysdeps.c: (_dbus_accept):
12482         Add address and address length variables and use them to stop
12483         valgrind from complaining.
12484
12485 2003-03-17  Havoc Pennington  <hp@pobox.com>
12486
12487         All tests pass, no memleaks, no valgrind complaints.
12488
12489         * bus/test.c: refcount handler_slot
12490
12491         * bus/connection.c (bus_connections_new): refcount
12492         connection_data_slot
12493
12494         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12495         bytes so that auth scripts pass.
12496
12497         * bus/dispatch.c: init message_handler_slot so it gets allocated
12498         properly
12499
12500         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12501
12502         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12503         dealloc server_pipe_hash when no longer used for benefit of
12504         leak checking
12505
12506         * dbus/dbus-auth.c (process_command): memleak fix
12507
12508         * bus/dispatch.c (check_hello_message): memleak fix
12509
12510 2003-03-16  Havoc Pennington  <hp@pobox.com>
12511
12512         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12513
12514 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12515
12516         * bus/activation.c (bus_activation_activate_service): Append
12517         the pending activation entry to the list of pending activations.
12518
12519 2003-03-16  Havoc Pennington  <hp@pobox.com>
12520
12521         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12522         connections
12523
12524         * dbus/dbus-address.c (create_entry): fix OOM handling when
12525         failing to alloc entry->method
12526
12527 2003-03-16  Havoc Pennington  <hp@pobox.com>
12528
12529         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12530         the watch
12531
12532         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12533         add some missing dbus_set_result
12534
12535         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12536         alloc the DBusMessageHandler
12537
12538         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12539         the transport here, since we call this from the finalizer; it
12540         resulted in a double-finalize.
12541
12542         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12543         where we tried to use transport->connection that was NULL,
12544         happened when transport was disconnected early on due to OOM
12545
12546         * bus/*.c: adapt to handle OOM for watches/timeouts
12547
12548         * dbus/dbus-transport-unix.c: port to handle OOM during
12549         watch handling
12550
12551         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12552         reference to unused bytes instead of a copy
12553
12554         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12555         out of memory
12556
12557         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12558         FALSE on OOM
12559
12560         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12561         of memory
12562
12563 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12564
12565         * doc/dbus-specification.sgml:
12566         Document reply message for ActivateService.
12567
12568 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12569
12570         * bus/activation.c: (bus_pending_activation_entry_free),
12571         (bus_pending_activation_free), (bus_activation_new),
12572         (bus_activation_unref), (bus_activation_service_created),
12573         (bus_activation_activate_service):
12574         * bus/activation.h:
12575         * bus/bus.c: (bus_context_new):
12576         * bus/desktop-file.c: (new_section):
12577         * bus/driver.c: (bus_driver_send_service_deleted),
12578         (bus_driver_handle_activate_service):
12579         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12580         * bus/services.h:
12581         * dbus/dbus-connection.c:
12582         (dbus_connection_send_with_reply_and_block):
12583         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12584         * dbus/dbus-protocol.h:
12585         Make activation work better. Now pending activations will be queued
12586         and the daemon won't try to activate services that are already registered.
12587
12588 2003-03-16  Havoc Pennington  <hp@pobox.com>
12589
12590         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12591         connection data
12592
12593         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12594         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12595
12596 2003-03-16  Havoc Pennington  <hp@pobox.com>
12597
12598         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12599         this. always run the test suite before commit...
12600
12601         * bus/*: adapt to DBusConnection API changes
12602
12603         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12604         requires renaming stuff to avoid dbus_connection_dispatch name
12605         conflict.
12606
12607         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12608         function
12609
12610         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12611         separate from _dbus_message_loader_return_buffer()
12612
12613         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12614         this, because it's now always broken to use; the number of
12615         messages in queue vs. the number still buffered by the message
12616         loader is undefined/meaningless. Should use
12617         dbus_connection_get_dispatch_state().
12618         (dbus_connection_dispatch): rename from
12619         dbus_connection_dispatch_message
12620
12621 2003-03-16  Havoc Pennington  <hp@pobox.com>
12622
12623         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12624         implementation
12625
12626 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12627
12628         * dbus/dbus-connection.c:
12629         (dbus_connection_send_with_reply_and_block):
12630         Decrease connection->n_incoming when removing an entry
12631         from the list.
12632         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12633         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12634         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12635         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12636         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12637         (dbus_dict_get_byte_array):
12638         Handle NULL arrays and strings. Also add support for byte arrays.
12639
12640         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12641         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12642         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12643         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12644         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12645         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12646         * dbus/dbus-marshal.h:
12647         Add support for marshalling and demarshalling empty arrays and strings.
12648
12649         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12650         (dbus_message_append_string_array),
12651         (dbus_message_iter_get_boolean),
12652         (dbus_message_iter_get_boolean_array),
12653         (dbus_message_iter_get_int32_array),
12654         (dbus_message_iter_get_uint32_array),
12655         (dbus_message_iter_get_double_array),
12656         (dbus_message_iter_get_byte_array),
12657         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12658         (check_message_handling):
12659         Add support for getting empty arrays and dicts.
12660
12661         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12662         Don't do any validation at all for now, that's better than just checking
12663         for ASCII.
12664
12665         * test/data/valid-messages/emptiness.message:
12666         New test message with lots of empty arrays.
12667
12668 2003-03-16  Havoc Pennington  <hp@pobox.com>
12669
12670         * dbus/dbus-connection.c
12671         (_dbus_connection_queue_received_message_link): new function that
12672         can't fail due to OOM
12673
12674         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12675         new function pops a message together with a list link
12676         containing it.
12677
12678         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12679         message queuing functions to avoid needing to alloc memory
12680
12681 2003-03-16  Havoc Pennington  <hp@pobox.com>
12682
12683         Oops - test code was only testing failure of around 30 of the
12684         mallocs in the test path, but it turns out there are 500+
12685         mallocs. I believe this was due to misguided linking setup such
12686         that there was one copy of dbus_malloc etc. in the daemon and one
12687         in the shared lib, and only daemon mallocs were tested. In any
12688         case, the test case now tests all 500+ mallocs, and doesn't pass
12689         yet, though there are lots of fixes in this patch.
12690
12691         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12692         this so that it doesn't need to allocate memory, since it
12693         has no way of indicating failure due to OOM (and would be
12694         annoying if it did).
12695
12696         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12697
12698         * bus/Makefile.am: rearrange to create two self-contained
12699         libraries, to avoid having libraries with overlapping symbols.
12700         that was resulting in weirdness, e.g. I'm pretty sure there
12701         were two copies of global static variables.
12702
12703         * dbus/dbus-internals.c: move the malloc debug stuff to
12704         dbus-memory.c
12705
12706         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12707         empty.
12708
12709         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12710
12711         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12712         on failure.
12713
12714         * bus/dispatch.c (bus_dispatch_add_connection): free
12715         message_handler_slot when no longer using it, so
12716         memory leak checkers are happy for the test suite.
12717
12718         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12719
12720         * bus/bus.c (new_connection_callback): disconnect in here if
12721         bus_connections_setup_connection fails.
12722
12723         * bus/connection.c (bus_connections_unref): fix to free the
12724         connections
12725         (bus_connections_setup_connection): if this fails, don't
12726         disconnect the connection, just be sure there are no side
12727         effects.
12728
12729         * dbus/dbus-string.c (undo_alignment): unbreak this
12730
12731         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12732         leaking
12733         (_dbus_auth_new): fix the order in which we free strings
12734         on OOM failure
12735
12736         * bus/connection.c (bus_connection_disconnected): fix to
12737         not send ServiceDeleted multiple times in case of memory
12738         allocation failure
12739
12740         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12741         get the base service name
12742         (dbus_bus_register_client): don't return base service name,
12743         instead store it on the DBusConnection and have an accessor
12744         function for it.
12745         (dbus_bus_register_client): rename dbus_bus_register()
12746
12747         * bus/dispatch.c (check_hello_message): verify that other
12748         connections on the bus also got the correct results, not
12749         just the one sending hello
12750
12751 2003-03-15  Havoc Pennington  <hp@pobox.com>
12752
12753         Make it pass the Hello handling test including all OOM codepaths.
12754         Now to do other messages...
12755
12756         * bus/services.c (bus_service_remove_owner): fix crash when
12757         removing owner from an empty list of owners
12758         (bus_registry_ensure): don't leave service in the list of
12759         a connection's owned services if we fail to put the service
12760         in the hash table.
12761
12762         * bus/connection.c (bus_connection_preallocate_oom_error): set
12763         error flag on the OOM error.
12764
12765         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12766         handle _dbus_transport_set_connection failure
12767
12768         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12769         to create watches up front and simply enable/disable them as
12770         needed.
12771         (unix_connection_set): this can now fail on OOM
12772
12773         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12774         of enabling/disabling a watch or timeout.
12775
12776         * bus/loop.c (bus_loop_iterate): don't touch disabled
12777         watches/timeouts
12778
12779         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12780
12781 2003-03-15  Havoc Pennington  <hp@pobox.com>
12782
12783         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12784         write useful test code, after all that futzing around ;-)
12785
12786         Test does not yet pass because we can't handle OOM in
12787         _dbus_transport_messages_pending (basically,
12788         dbus_connection_preallocate_send() does not prealloc the write
12789         watch). To fix this, I think we need to add new stuff to
12790         set_watch_functions, namely a SetEnabled function so we can alloc
12791         the watch earlier, then enable it later.
12792
12793         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12794         dbus-memory.c to the convenience lib
12795
12796         * bus/test.c: rename some static functions to keep them clearly
12797         distinct from stuff in connection.c. Handle client disconnection.
12798
12799 2003-03-14  Havoc Pennington  <hp@pobox.com>
12800
12801         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12802         transport, tests more of the real codepath. Set up clients
12803         with bus_setup_debug_client.
12804
12805         * bus/test.c (bus_setup_debug_client): function to set up debug
12806         "clients" on the main loop
12807
12808         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12809         support
12810
12811         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12812         server type
12813
12814         * dbus/dbus-server-debug.c: support a debug server based on pipes
12815
12816         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12817         (_dbus_close): new function
12818
12819         * configure.in: check for socketpair
12820
12821 2003-03-14  Havoc Pennington  <hp@redhat.com>
12822
12823         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12824         cheesy hack
12825
12826         * dbus/dbus-transport-debug.c: rework this a good bit to be
12827         less complicated. hopefully still works.
12828
12829         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12830         manually
12831
12832         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12833         after running it
12834
12835         * dbus/dbus-message.c (dbus_message_copy): rename from
12836         dbus_message_new_from_message, fix it up to copy
12837         all the message fields, add test case
12838
12839         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12840         not quite passing yet
12841
12842 2003-03-14  Havoc Pennington  <hp@pobox.com>
12843
12844         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12845         until no work remains" in test code. (the large diff here
12846         is just code movement, no actual changes)
12847
12848         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12849         1, no point waiting around for test code.
12850         (_dbus_server_debug_accept_transport): unref the timeout
12851         after adding it (right?)
12852
12853         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12854
12855 2003-03-13  Havoc Pennington  <hp@redhat.com>
12856
12857         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12858         out of memory
12859
12860         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12861         of memory
12862
12863         * dbus/dbus-connection.h: Make AddWatchFunction and
12864         AddTimeoutFunction return a bool so they can fail on out-of-memory
12865
12866         * bus/bus.c (bus_context_new): set up timeout handlers
12867
12868         * bus/connection.c (bus_connections_setup_connection): set up
12869         timeout handlers
12870
12871         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12872         can fail
12873
12874         * bus/bus.c (bus_context_new): adapt to changes
12875
12876         * bus/connection.c: adapt to changes
12877
12878         * test/watch.c: adapt to DBusWatch changes
12879
12880         * bus/dispatch.c (bus_dispatch_test): started adding this but
12881         didn't finish
12882
12883 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12884
12885         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12886
12887 2003-03-13  Havoc Pennington  <hp@pobox.com>
12888
12889         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12890         set up a test framework as for the library
12891
12892 2003-03-12  Havoc Pennington  <hp@pobox.com>
12893
12894         Throughout: purge global variables, introduce BusActivation,
12895         BusConnections, BusRegistry, etc. objects instead.
12896
12897         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12898         message bus object
12899
12900         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12901         going to redo this a bit differently I think
12902
12903 2003-03-12  Havoc Pennington  <hp@redhat.com>
12904
12905         Mega-patch that gets the message bus daemon initially handling
12906         out-of-memory. Work still needed. Also lots of random
12907         moving stuff to DBusError instead of ResultCode.
12908
12909         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12910
12911         * dbus/dbus-connection.c
12912         (dbus_connection_send_with_reply_and_block): use DBusError
12913
12914         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12915         DBusResultCode
12916
12917         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12918         code here, as the only failure possible is OOM.
12919
12920         * bus/connection.c (bus_connection_disconnect):
12921         rename bus_connection_disconnected as it's a notification only
12922
12923         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12924         "name" on get_args failure, should be done by get_args;
12925         don't disconnect client for bad args, just return an error.
12926         (bus_driver_handle_service_exists): ditto
12927
12928         * bus/services.c (bus_services_list): NULL-terminate returned array
12929
12930         * bus/driver.c (bus_driver_send_service_lost)
12931         (bus_driver_send_service_acquired): send messages from driver to a
12932         specific client to the client's unique name, not to the broadcast
12933         service.
12934
12935         * dbus/dbus-message.c (decode_header_data): reject messages that
12936         contain no name field
12937         (_dbus_message_get_client_serial): rename to
12938         dbus_message_get_serial and make public
12939         (_dbus_message_set_serial): rename from set_client_serial
12940         (_dbus_message_set_reply_serial): make public
12941         (_dbus_message_get_reply_serial): make public
12942
12943         * bus/connection.c (bus_connection_foreach): allow stopping
12944         iteration by returning FALSE from foreach function.
12945
12946         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12947         (dbus_connection_free_preallocated_send)
12948         (dbus_connection_preallocate_send): new API for sending a message
12949         without possibility of malloc failure.
12950         (dbus_connection_send_message): rename to just
12951         dbus_connection_send (and same for whole function family)
12952
12953         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12954
12955         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12956
12957         * bus/activation.c: handle/return errors
12958
12959         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12960
12961         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12962         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12963         (_dbus_result_from_errno): move to this file
12964
12965 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12966
12967         * dbus/dbus-marshal.c:
12968         (_dbus_marshal_set_string):
12969         Take a length argument so we can marshal the correct string
12970         length.
12971
12972         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12973         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12974         (_dbus_marshal_test):
12975         * dbus/dbus-marshal.h:
12976         Add support for marshalling and demarshalling dicts.
12977
12978         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12979         Add support for TYPE DICT.
12980
12981         * dbus/dbus-message.c: (set_string_field):
12982         Adjust header padding.
12983
12984         (dbus_message_append_args_valist), (dbus_message_append_dict),
12985         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12986         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12987         (check_message_handling), (check_have_valid_message):
12988         * dbus/dbus-message.h:
12989         Add functions for setting and getting dicts.
12990
12991         * dbus/dbus-protocol.h:
12992         Add DBUS_TYPE_DICT.
12993
12994         * dbus/dbus.h:
12995         Add dbus-dict.h
12996
12997         * doc/dbus-specification.sgml:
12998         Add information about how dicts are marshalled.
12999
13000         * test/data/invalid-messages/dict-with-nil-value.message:
13001         * test/data/invalid-messages/too-short-dict.message:
13002         * test/data/valid-messages/dict-simple.message:
13003         * test/data/valid-messages/dict.message:
13004         Add sample messages containing dicts.
13005
13006 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
13007
13008         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
13009
13010 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13011
13012         * dbus/Makefile.am:
13013         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13014         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
13015         (dbus_dict_set_int32), (dbus_dict_set_uint32),
13016         (dbus_dict_set_double), (dbus_dict_set_string),
13017         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
13018         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
13019         (dbus_dict_set_string_array), (_dbus_dict_test):
13020         * dbus/dbus-dict.h:
13021         Fix according to comments from Havoc.
13022
13023 2003-03-06  Michael Meeks  <michael@server.home>
13024
13025         * configure.in: if we don't have kde-config, disable have_qt.
13026
13027 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13028
13029         * dbus/Makefile.am:
13030         Add dbus-dict.[ch]
13031
13032         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13033         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
13034         (dbus_dict_remove), (dbus_dict_get_value_type),
13035         (dbus_dict_get_keys), (dbus_dict_put_boolean),
13036         (dbus_dict_put_int32), (dbus_dict_put_uint32),
13037         (dbus_dict_put_double), (dbus_dict_put_string),
13038         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
13039         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
13040         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
13041         (dbus_dict_get_int32), (dbus_dict_get_uint32),
13042         (dbus_dict_get_double), (dbus_dict_get_string),
13043         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
13044         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
13045         (dbus_dict_get_string_array), (_dbus_dict_test):
13046         * dbus/dbus-dict.h:
13047         Add DBusDict implementation
13048
13049         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
13050         * dbus/dbus-test.h:
13051         Add _dbus_dict_test
13052
13053 2003-03-04  Havoc Pennington  <hp@pobox.com>
13054
13055         * test/data/auth/*: adapt to changes
13056
13057         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
13058         USERID_BASE64 and change USERNAME_BASE64 to put in username not
13059         userid
13060
13061         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
13062         more stuff from being in a context name, to make the protocol
13063         simpler to deal with
13064
13065         * dbus/dbus-errors.c (dbus_error_has_name): new function
13066         (dbus_error_is_set): new function
13067
13068         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
13069         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
13070
13071         * dbus/dbus-connection.c (dbus_connection_flush): also read
13072         messages during a flush operation
13073
13074         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
13075
13076 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13077
13078         * configure.in: Check for gethostbyname on Solaris.
13079
13080         * dbus/dbus-transport.c: (_dbus_transport_open):
13081         Remove duplicate "tcp" entry.
13082
13083         * doc/dbus-specification.sgml:
13084         Clarify some things.
13085
13086 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13087
13088         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
13089         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
13090         (_dbus_keyring_test):
13091         * dbus/dbus-md5.c: (_dbus_md5_compute):
13092         * dbus/dbus-sha.c: (_dbus_sha_compute):
13093         Plug memory leaks.
13094
13095 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13096
13097         * README: Add some things.
13098
13099 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
13100
13101         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
13102         after case DBUS_TYPE_BOOELAN.
13103
13104 2003-03-02  Havoc Pennington  <hp@pobox.com>
13105
13106         * test/break-loader.c (randomly_set_extreme_ints): add test that
13107         sets really huge and small integers
13108
13109         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
13110         that length of boolean array fits in the string, and that
13111         string has room for boolean value in single-bool case.
13112
13113         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
13114         optional value to "ALIGN" command which is what to fill the
13115         alignment with.
13116
13117         * test/data/valid-messages/no-padding.message: add regression
13118         test for the message padding problem
13119
13120 2003-03-02  Havoc Pennington  <hp@pobox.com>
13121
13122         * dbus/dbus-message.c (decode_header_data): fix to always init
13123         message_padding, from Benjamin Dauvergne
13124
13125 2003-03-02  Havoc Pennington  <hp@pobox.com>
13126
13127         * configure.in: 0.5
13128
13129         * NEWS: Update.
13130
13131 2003-03-01  Joe Shaw  <joe@assbarn.com>
13132
13133         * configure.in: Check for "struct cmsgcred" and try to access its
13134         members for BSD-like unices.
13135
13136         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
13137         _dbus_read_credentials_unix_socket().
13138         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
13139         read() for reading the credential byte off the unix socket.  Use
13140         struct cmsgcred on systems that support it.
13141
13142 2003-02-27  Alexander Larsson  <alexl@redhat.com>
13143
13144         * glib/Makefile.am:
13145         * configure.in:
13146         Make gthreads-2.0 dependency optional. Don't build thread test if
13147         its not found.
13148
13149 2003-02-27  Havoc Pennington  <hp@pobox.com>
13150
13151         * dbus/dbus-connection.c
13152         (dbus_connection_send_message_with_reply_and_block): fix doh!
13153         doh! doh! bug that resulted in never removing a reply from the
13154         queue, no wonder we called get_reply_serial so much ;-)
13155
13156         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
13157         and client serial instead of demarshaling them every time
13158
13159 2003-02-27  Havoc Pennington  <hp@pobox.com>
13160
13161         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
13162         more inlined, using dbus-string-private.h, speeds things up
13163         substantially
13164
13165         * dbus/dbus-string.c (_dbus_string_free): apply align offset
13166         when freeing the string
13167         (_dbus_string_steal_data): fix for align offset
13168         (undo_alignment): new function
13169
13170 2003-02-26  Havoc Pennington  <hp@redhat.com>
13171
13172         All kinds of audit fixes from Owen, plus initial attempt to
13173         handle unaligned memory returned from malloc.
13174
13175         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
13176         leave room for align_offset and nul byte
13177         (fixup_alignment): function to track an align_offset and
13178         ensure real->str is aligned
13179         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
13180         to allow a nul byte plus align offset
13181         (_dbus_string_lock): fix overflow issue
13182         (_dbus_string_init_const_len): add assertions on sanity of len,
13183         assign allocated to be ALLOCATION_PADDING larger than len
13184         (set_length): fixup the overflow handling
13185         (_dbus_string_get_data_len): fix overflow in assertion
13186         (open_gap): detect overflow in size of gap to be opened
13187         (_dbus_string_lengthen): add overflow check
13188         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
13189         (_dbus_string_append): add overflow check
13190         (_dbus_string_append_unichar): overflow
13191         (_dbus_string_delete): fix overflow in assertion
13192         (_dbus_string_copy_len): overflow in assertion
13193         (_dbus_string_replace_len): overflows in assertions
13194         (_dbus_string_find): change to implement in terms of
13195         _dbus_string_find_to
13196         (_dbus_string_find_to): assorted fixage
13197         (_dbus_string_equal_c_str): assert c_str != NULL,
13198         fix logic so the function works
13199         (_dbus_string_ends_with_c_str): fix overflow thingy
13200         (_dbus_string_base64_encode): overflow fix
13201         (_dbus_string_validate_ascii): overflow
13202         (_dbus_string_validate_nul): overflow
13203
13204 2003-02-26  Havoc Pennington  <hp@redhat.com>
13205
13206         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
13207
13208 2003-02-26  Alexander Larsson  <alexl@redhat.com>
13209
13210         * configure.in:
13211         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
13212
13213         * dbus/dbus-connection.c:
13214         * dbus/dbus-connection.h:
13215         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13216         Add dbus_connection_set_wakeup_main_function and use it when queueing
13217         incoming and outgoing messages.
13218
13219
13220         * dbus/dbus-dataslot.c:
13221         Threadsafe usage of DBusDataSlotAllocator
13222
13223         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13224         dbus_new can fail.
13225
13226         * dbus/dbus-server-unix.c:
13227         Add todo comment
13228
13229         * glib/dbus-gmain.c:
13230         Implement the new wakeup functions for glib.
13231
13232         * glib/Makefile.am:
13233         * glib/test-thread-client.c:
13234         * glib/test-thread-server.c:
13235         * glib/test-thread.h:
13236         Initial cut at some thread test code. Not really done yet.
13237
13238 2003-02-26  Havoc Pennington  <hp@pobox.com>
13239
13240         * dbus/dbus-connection.c
13241         (dbus_connection_send_message_with_reply_and_block): fix crash
13242         where we ref'd the outgoing message instead of the returned reply
13243
13244         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13245         at the end of this function, so if we didn't need to read for
13246         authentication, we reinstall it for receiving messages
13247
13248         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13249         a NULL sender for peer-to-peer case
13250
13251         * dbus/dbus-transport-unix.c (check_read_watch): handle
13252         !authenticated case correctly
13253
13254         * glib/dbus-gmain.c: add support for DBusServer
13255
13256         * dbus/dbus-server.c: add data slot support
13257
13258         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13259         return values and handle errors
13260
13261         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13262         DBusConnection
13263
13264         * Doxyfile.in (INPUT): add glib subdir
13265
13266         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13267         setup_with_g_main instead of hookup_with_g_main; write docs
13268
13269 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13270
13271         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13272         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13273         * dbus/dbus-message.c: (dbus_message_append_boolean),
13274         (dbus_message_append_boolean_array),
13275         (dbus_message_get_args_valist), (_dbus_message_test):
13276         * dbus/dbus-message.h:
13277         * doc/dbus-specification.sgml:
13278         Various fixes as pointed out by Havoc.
13279
13280         * test/data/invalid-messages/bad-boolean-array.message:
13281         * test/data/invalid-messages/bad-boolean.message:
13282         Add invalid boolean value test cases.
13283
13284 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13285
13286         * dbus/dbus-internals.c: (_dbus_type_to_string):
13287         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13288         (_dbus_marshal_validate_arg):
13289         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13290         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13291         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13292         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13293         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13294         (dbus_message_iter_get_double),
13295         (dbus_message_iter_get_boolean_array), (message_iter_test):
13296         * dbus/dbus-message.h:
13297         * dbus/dbus-protocol.h:
13298         * doc/dbus-specification.sgml:
13299         * test/data/valid-messages/lots-of-arguments.message:
13300         Add support for boolean and boolean array types.
13301
13302 2003-02-23  Havoc Pennington  <hp@pobox.com>
13303
13304         * dbus/dbus-keyring.c: finish most of this implementation and
13305         simple unit test
13306
13307         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13308         these barf if the error isn't cleared to NULL
13309
13310         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13311         (_dbus_create_directory): new function
13312
13313         * dbus/dbus-errors.c (dbus_set_error): fix warning
13314
13315         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13316         (_dbus_string_hex_decode): new function
13317         (test_hex_roundtrip): test code
13318
13319         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13320
13321         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13322
13323         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13324         the save-to-temp/rename trick to atomically write the new file
13325         (_dbus_string_parse_uint): new function
13326
13327 2003-02-22  Havoc Pennington  <hp@pobox.com>
13328
13329         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13330
13331 2003-02-22  Havoc Pennington  <hp@pobox.com>
13332
13333         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13334         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13335
13336         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13337
13338         * dbus/test/data/sha-1: add US government test suite for SHA-1
13339
13340 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13341
13342         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13343         Make string arrays NULL-terminated.
13344
13345         * dbus/dbus-memory.c: (dbus_free_string_array):
13346         * dbus/dbus-memory.h:
13347         New function for freeing NULL-terminated string arrays.
13348
13349         * dbus/dbus-message-builder.c: (append_quoted_string),
13350         (_dbus_message_data_load):
13351         Add support for array types.
13352
13353         * dbus/dbus-message.c: (check_message_handling):
13354         Add more types as test cases.
13355
13356         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13357         (_dbus_string_parse_double):
13358         Add the start offset to the end offset.
13359
13360         * test/data/valid-messages/lots-of-arguments.message:
13361         New test message with lots of arguments.
13362
13363 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13364
13365         * dbus/dbus-message.c: (dbus_message_append_nil),
13366         (dbus_message_append_int32), (dbus_message_append_uint32),
13367         (dbus_message_append_double), (dbus_message_append_string),
13368         (dbus_message_append_int32_array),
13369         (dbus_message_append_uint32_array),
13370         (dbus_message_append_double_array),
13371         (dbus_message_append_byte_array),
13372         (dbus_message_append_string_array):
13373         Fix all out-of-memory handling in these functions.
13374
13375 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13376
13377         * dbus/dbus-message.c: (dbus_message_append_nil):
13378         Fix a silly.
13379
13380 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13381
13382         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13383         (dbus_message_append_nil), (dbus_message_append_int32_array),
13384         (dbus_message_append_uint32_array),
13385         (dbus_message_append_double_array),
13386         (dbus_message_append_byte_array),
13387         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13388         (dbus_message_iter_get_int32_array),
13389         (dbus_message_iter_get_uint32_array),
13390         (dbus_message_iter_get_double_array),
13391         (dbus_message_iter_get_byte_array),
13392         (dbus_message_iter_get_string_array):
13393
13394         * dbus/dbus-message.h:
13395         Add functions for appending and getting arrays.
13396
13397 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13398
13399         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13400         element size at least 8 bytes, fixes mempool tests on
13401         64-bit machines.
13402
13403 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13404
13405         * dbus/dbus-transport-unix.c (unix_do_iteration):
13406         Unlock the connection mutex during a blocking select call.
13407         Add todo about how we need a way to wake up the select.
13408
13409         * dbus/dbus-connection-internal.h:
13410         * dbus/dbus-connection.c:
13411         Add _dbus_connection_lock and _dbus_connection_unlock.
13412
13413 2003-02-19  Havoc Pennington  <hp@pobox.com>
13414
13415         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13416         Doxyfile.in, not Doxyfile
13417
13418         * dbus/dbus-keyring.c: do some hacking on this
13419
13420         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13421
13422         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13423         dbus_error_init
13424         (dbus_set_error): remove dbus_error_init, check for message ==
13425         NULL *before* we sprintf into it, and add @todo about including
13426         system headers in this file
13427
13428         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13429
13430         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13431
13432         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13433         get various bits of user information based on either username
13434         or user ID
13435         (_dbus_homedir_from_username): new function
13436
13437 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13438
13439         * configure.in:
13440         Add check for nonposix getpwnam_r
13441
13442         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13443         Align the pool element size to a sizeof (void *) boundary.
13444
13445         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13446         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13447         General Solaris fixes.
13448
13449         * test/data/valid-messages/simplest-manual.message:
13450         Explicitly state that we want little-endian packing.
13451
13452 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13453
13454         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13455
13456         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13457         Added to create a transport connecting using a tcp/ip socket.
13458
13459         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13460         to a tcp socket at given host and port.
13461         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13462         hostname and port.
13463
13464         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13465
13466         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13467         Added to create a server listening on a TCP/IP socket.
13468
13469 2003-02-19  Havoc Pennington  <hp@pobox.com>
13470
13471         Throughout: mop up all the Doxygen warnings and undocumented
13472         stuff.
13473
13474         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13475         to search any paths.
13476
13477         * dbus/dbus-threads.c: move global mutex initializers to
13478         dbus-internals.h, multiple prototypes was confusing doxygen
13479         besides being kind of ugly
13480
13481         * Doxyfile (PREDEFINED): have Doxygen define
13482         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13483         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13484         (do not abuse the feature! it's for stuff like the autogenerated
13485         macros in dbus-md5.c, not just for things you don't feel like
13486         documenting...)
13487
13488 2003-02-18  Havoc Pennington  <hp@pobox.com>
13489
13490         * dbus/dbus-string.c (_dbus_string_zero): new function
13491
13492         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13493         wrap it in some dbus-friendly API
13494
13495         * dbus/dbus-types.h: add 16-bit types
13496
13497 2003-02-18  Joe Shaw  <joe@assbarn.com>
13498
13499         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13500         credentials from our currently running process.
13501         (get_word): Fix a buglet where we were copying the entire length
13502         instead of relative to our position.
13503
13504         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13505         keys on the stack... it's 640k of data.
13506
13507         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13508         read the credentials byte off the socket, even if we don't have
13509         SO_PEERCRED.
13510         (_dbus_poll): Implement poll() using select() for systems which
13511         don't have it.
13512
13513         * glib/test-dbus-glib.c (main): Print out an error if no
13514         parameters are given.
13515
13516         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13517         can fallback to a secondary auth mechanism if the first fails.
13518
13519 2003-02-18  Havoc Pennington  <hp@pobox.com>
13520
13521         * AUTHORS: add Alex
13522
13523 2003-02-17  Havoc Pennington  <hp@pobox.com>
13524
13525         * doc/dbus-specification.sgml: lots of cosmetic
13526         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13527         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13528         s/server/bus/ (except in authentication section). Add a section
13529         "Message Bus Message Routing"
13530
13531 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13532
13533         Release 0.4
13534
13535         * NEWS: Update
13536
13537 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13538
13539         * doc/dbus-specification.sgml:
13540         Specification updates.
13541
13542 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13543
13544         * bus/activation.c: (bus_activation_init), (child_setup),
13545         (bus_activation_activate_service):
13546         * bus/activation.h:
13547         * bus/main.c: (main):
13548         Set DBUS_ADDRESS environment variable.
13549
13550         * dbus/dbus-errors.c: (dbus_set_error):
13551         Don't use va_copy since that's a C99 feature.
13552
13553         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13554         (_dbus_spawn_async):
13555         * dbus/dbus-sysdeps.h:
13556         Add child_setup_func to _dbus_spawn_async.
13557
13558         * doc/dbus-specification.sgml:
13559         Update specification.
13560
13561         * test/spawn-test.c: (setup_func), (main):
13562         Fix test.
13563
13564 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13565
13566         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13567         Added todo.
13568
13569 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13570
13571         * doc/.cvsignore:
13572         * doc/Makefile.am:
13573         * doc/dbus-test-plan.sgml:
13574         Add test plan document.
13575
13576         * test/Makefile.am:
13577         Fix distcheck.
13578
13579 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13580
13581         * dbus/dbus-message.c: (decode_header_data),
13582         (_dbus_message_loader_return_buffer):
13583         Set the header padding amount when loading a message.
13584
13585 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13586
13587         * bus/dispatch.c: (send_one_message):
13588         Only send broadcast messages to registered connections.
13589
13590         * dbus/dbus-message.c: (dbus_message_name_is):
13591         * dbus/dbus-message.h:
13592         New convenience function.
13593
13594         * dbus/dbus-transport-debug.c: (do_reading):
13595         Only dispatch one message per run.
13596
13597         * test/Makefile.am:
13598         * test/bus-test.c: (new_connection_callback), (die),
13599         (test_hello_client1_handler), (test_hello_client2_handler),
13600         (test_hello_replies), (main):
13601
13602         * test/bus-test-loop.[ch]:
13603         Add these.
13604
13605 2003-02-16  Havoc Pennington  <hp@pobox.com>
13606
13607         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13608         backward conditional
13609
13610 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13611
13612         * dbus/dbus-connection.c:
13613         Implement sent_message_with_reply. (with_reply_and block is still
13614         busted).
13615         Made dispatch_message not lose message if OOM.
13616
13617         * dbus/dbus-errors.h:
13618         Add NoReply error (for reply timeouts).
13619
13620 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13621
13622         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13623         Actually free keys and values when destroying hashtable.
13624
13625 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13626
13627         * dbus/dbus-auth.c: (client_try_next_mechanism):
13628         Plug a leak.
13629
13630         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13631         Return TRUE if there's no thread implementation around.
13632
13633         * glib/dbus-gmain.c: (free_source),
13634         (dbus_connection_hookup_with_g_main):
13635         Make sure to remove the GSource when the connection is finalized.
13636
13637 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13638
13639         * bus/dispatch.c: (bus_dispatch_message_handler):
13640         * dbus/dbus-errors.h:
13641         Return an error if someone tries to send a message to a service
13642         that doesn't exist.
13643
13644 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13645
13646         * bus/activation.c: (load_directory), (bus_activation_init),
13647         (bus_activation_activate_service):
13648         * bus/activation.h:
13649         * bus/driver.c:
13650         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13651         More work on the activation handling.
13652
13653         * dbus/dbus-errors.h:
13654         Add some error messages
13655
13656         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13657         * dbus/dbus-message.h:
13658         New function that creates an error message.
13659
13660         * dbus/dbus-protocol.h:
13661         Add ACTIVATE_SERVER message.
13662
13663         * dbus/dbus-server-unix.c: (unix_handle_watch),
13664         (_dbus_server_new_for_domain_socket):
13665         Call _dbus_fd_set_close_on_exec.
13666
13667         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13668         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13669         (_dbus_fd_set_close_on_exec):
13670         * dbus/dbus-sysdeps.h:
13671         Add _dbus_fd_set_close_on exec function. Also add function that checks
13672         that all open fds are set to close-on-exec and warns otherwise.
13673
13674         * dbus/dbus-transport-unix.c:
13675         (_dbus_transport_new_for_domain_socket):
13676         Call _dbus_fd_set_close_on_exec.
13677
13678 2003-02-16  Havoc Pennington  <hp@pobox.com>
13679
13680         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13681         allow people to avoid setting SIGPIPE to SIG_IGN
13682         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13683         we've been asked not to
13684
13685 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13686
13687         * dbus/dbus-list.c: (_dbus_list_append_link),
13688         (_dbus_list_prepend_link):
13689         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13690         (dbus_realloc):
13691         Warning fixes.
13692
13693 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13694
13695         * bus/Makefile.am:
13696         * bus/activation.c: (bus_activation_entry_free),
13697         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13698         * bus/activation.h:
13699         * bus/main.c: (main):
13700         Add simple activation support, doesn't work yet though.
13701
13702 2003-02-15   Zack Rusin  <zack@kde.org>
13703
13704         * qt/dbus-qthread.cpp:  small casting fix
13705
13706 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13707
13708         * dbus/dbus-errors.c: (dbus_set_error):
13709         * dbus/dbus-errors.h:
13710         Add a few errors and make dbus_set_error void.
13711
13712         * dbus/dbus-sysdeps.c:
13713         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13714         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13715         * dbus/dbus-sysdeps.h:
13716         Add _dbus_spawn_async.
13717
13718         * test/spawn-test.c: (main):
13719         Test for _dbus_spawn_async.
13720
13721 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13722
13723         * dbus/dbus-internals.h:
13724         Fix build without tests.
13725
13726         * dbus/dbus-list.c: (alloc_link):
13727         Fix a segfault when a malloc fails.
13728
13729         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13730         (dbus_malloc0), (dbus_realloc):
13731         Add support for malloc debugging.
13732
13733 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13734
13735         * dbus/dbus-threads.c:
13736         * dbus/dbus-threads.h:
13737         Add condvars. Remove static mutext from API.
13738         Implement static mutexes by initializing them from threads_init.
13739
13740         * glib/dbus-gthread.c:
13741         * qt/dbus-qthread.cpp:
13742         Update with the thread api changes.
13743
13744
13745         * dbus/dbus-list.c:
13746         * dbus/dbus-list.h:
13747         Turn StaticMutex into normal mutex + init function.
13748         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13749         _dbus_list_append_link, _dbus_list_prepend_link
13750
13751
13752         * dbus/dbus-sysdeps.c:
13753         * dbus/dbus-sysdeps.h:
13754         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13755         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13756
13757         * dbus/dbus-protocol.h:
13758         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13759
13760         * dbus/dbus-message.c:
13761         Make ref/unref atomic.
13762         Fix some docs.
13763
13764         * dbus/dbus-connection-internal.h:
13765         * dbus/dbus-connection.c:
13766         * dbus/dbus-connection.h:
13767         Make threadsafe.
13768         Change _peek to _borrow,_return & _steal_borrowed.
13769         Change disconnect callback to event.
13770         Make dbus_connection_dispatch_messages reentrant.
13771
13772         * dbus/dbus-transport.c:
13773         Don't ref the connection on calls to the transport
13774         implementation.
13775
13776         * dbus/dbus-message-handler.c:
13777         Make threadsafe.
13778
13779         * glib/dbus-gmain.c:
13780         Don't use peek_message anymore
13781
13782         * test/Makefile.am:
13783         * test/debug-thread.c:
13784         * test/debug-thread.h:
13785         Simple thread implementation that asserts() on deadlocks in
13786         single-threaded code.
13787
13788         * test/bus-test.c:
13789         (main) Call debug_threads_init.
13790
13791         * test/watch.c:
13792         Use disconnect message instead of disconnect callback.
13793
13794         * bus/connection.c:
13795         * bus/connection.h:
13796         Don't call dbus_connection_set_disconnect_function. Instead export
13797         bus_connection_disconnect.
13798
13799         * bus/dispatch.c:
13800         Call bus_connection_disconnect when we get a disconnected message.
13801
13802 2003-02-15  Havoc Pennington  <hp@pobox.com>
13803
13804         * dbus/dbus-message.c (dbus_message_new): fool around with the
13805         docs
13806
13807 2003-02-14  Havoc Pennington  <hp@pobox.com>
13808
13809         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13810
13811         * dbus/dbus-memory.c: fail if the debug functions indicate we
13812         should
13813
13814         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13815         (_dbus_decrement_fail_alloc_counter): debug functions to
13816         simulate memory allocation failures
13817
13818 2003-02-14  Havoc Pennington  <hp@pobox.com>
13819
13820         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13821         to DBusError
13822
13823 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13824
13825         * bus/driver.c: (bus_driver_handle_hello):
13826         * bus/driver.h:
13827         * bus/services.c: (bus_service_lookup):
13828         Reorder message sending so we get a more sane order.
13829
13830         * test/bus-test.c: (message_handler):
13831         Fix tyop.
13832
13833 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13834
13835         * bus/driver.c: (bus_driver_send_service_deleted),
13836         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13837         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13838         (bus_driver_send_welcome_message),
13839         (bus_driver_handle_list_services),
13840         (bus_driver_handle_acquire_service),
13841         (bus_driver_handle_service_exists):
13842         * dbus/dbus-bus.c: (dbus_bus_register_client),
13843         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13844         * dbus/dbus-errors.c: (dbus_result_to_string):
13845         * dbus/dbus-errors.h:
13846         * dbus/dbus-message.c: (dbus_message_append_args),
13847         (dbus_message_append_args_valist), (dbus_message_get_args),
13848         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13849         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13850         (dbus_message_iter_get_byte_array),
13851         (dbus_message_iter_get_string_array), (message_iter_test),
13852         (check_message_handling), (_dbus_message_test):
13853         * dbus/dbus-message.h:
13854         * test/bus-test.c: (main):
13855         Change fields to arguments in messages, so that they won't be
13856         confused with header fields.
13857
13858         * glib/test-dbus-glib.c: (main):
13859         Remove append_fields from hello message.
13860
13861 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13862
13863         * dbus/dbus-errors.c:
13864         * dbus/dbus-message.c:
13865         * dbus/dbus-string.c:
13866         Documentation fixes.
13867
13868 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13869
13870         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13871         (remove_timeout):
13872         Implement support for timeouts in dbus-glib.
13873
13874 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13875
13876         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13877         * dbus/dbus-message.c: (process_test_subdir):
13878         * test/break-loader.c: (find_breaks_based_on):
13879         Plug some memory leaks.
13880
13881 2003-02-13  Richard Hult  <rhult@codefactory.se>
13882
13883         * bus/main.c: Fix build.
13884
13885         * dbus/dbus-errors.h:
13886         * dbus/dbus-errors.c: Fix copyright for Anders.
13887
13888 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13889
13890         * bus/Makefile.am:
13891         Add utils.[ch]
13892
13893         * bus/connection.c: (bus_connection_foreach):
13894         Fix a warning.
13895
13896         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13897         (unescape_string), (new_section), (parse_section_start),
13898         (parse_key_value), (report_error), (bus_desktop_file_load),
13899         (bus_desktop_file_get_string):
13900         * bus/desktop-file.h:
13901         Use DBusError for error reporting.
13902
13903         * bus/dispatch.c: (send_one_message),
13904         (bus_dispatch_message_handler):
13905         * bus/driver.c: (bus_driver_send_service_deleted),
13906         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13907         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13908         (bus_driver_send_welcome_message),
13909         (bus_driver_handle_list_services),
13910         (bus_driver_handle_acquire_service),
13911         (bus_driver_handle_service_exists):
13912         * bus/loop.c: (bus_loop_run):
13913         * bus/main.c:
13914         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13915
13916         * bus/utils.c: (bus_wait_for_memory):
13917         * bus/utils.h:
13918         New files with general utility functions.
13919
13920         * dbus/dbus-internals.h:
13921         Remove _DBUS_HANDLE_OOM.
13922
13923 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13924
13925         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13926         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13927         * dbus/dbus-errors.h:
13928         Add DBusError structure.
13929
13930 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13931
13932         * test/data/valid-messages/standard-acquire-service.message:
13933         * test/data/valid-messages/standard-hello.message:
13934         * test/data/valid-messages/standard-list-services.message:
13935         * test/data/valid-messages/standard-service-exists.message:
13936         Add some standard messages.
13937
13938 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13939
13940         * bus/driver.c: (bus_driver_send_welcome_message),
13941         (bus_driver_handle_list_services),
13942         (bus_driver_handle_acquire_service),
13943         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13944         Update for API changes in libdbus.
13945
13946         * dbus/dbus-message.c: (dbus_message_new_reply):
13947         * dbus/dbus-message.h:
13948         Remove the name argument. The spec states that replies shouldn't
13949         have a name.
13950
13951 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13952
13953         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13954         (report_error), (bus_desktop_file_load), (lookup_section),
13955         (lookup_line), (bus_desktop_file_get_raw),
13956         (bus_desktop_file_get_string):
13957         * bus/desktop-file.h:
13958         Some fixes, and new functions for getting a key value from a section.
13959
13960 2003-02-13  Havoc Pennington  <hp@pobox.com>
13961
13962         * test/data/auth/fail-after-n-attempts.auth-script: new test
13963
13964         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13965         reject the client.
13966
13967 2003-02-13  Havoc Pennington  <hp@pobox.com>
13968
13969         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13970         dbus_credentials_match were backward
13971
13972         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13973         NO_CREDENTIALS and ROOT_CREDENTIALS
13974
13975         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13976         into here. Never process more commands after we've reached an
13977         end state; store further data as unused bytes.
13978
13979         * test/data/auth/*: add more auth tests
13980
13981         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13982         command to match exact string and EXPECT_UNUSED to match unused
13983         bytes
13984
13985         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13986
13987 2003-02-12  Havoc Pennington  <hp@pobox.com>
13988
13989         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13990         \r off of popped lines
13991
13992         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13993         scripts
13994
13995         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13996         SEND, append \r\n
13997
13998 2003-02-12  Havoc Pennington  <hp@pobox.com>
13999
14000         * dbus/Makefile.am: remove break-loader from the build, since it
14001         moved.
14002
14003         * configure.in: add --enable-gcov to turn on coverage profiling
14004         flags and disable optimization
14005
14006 2003-02-10  Havoc Pennington  <hp@pobox.com>
14007
14008         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
14009         initial cut at test framework for DBusAuth from laptop.
14010         Doesn't quite work yet but it compiles and I need to get
14011         it off the 266mhz laptop. ;-)
14012
14013         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
14014         fix a memleak in error case
14015
14016 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
14017
14018         * bus/Makefile.am:
14019         * bus/desktop-file.c:
14020         * bus/desktop-file.h:
14021         Add a desktop file parser.
14022
14023 2003-02-11  Zack Rusin  <zack@kde.org>
14024
14025         * qt/message.[h|cpp]: sample implementation
14026         of the KDE wrapper for DBusMessage
14027
14028 2003-02-09  Zack Rusin  <zack@kde.org>
14029
14030         * test/bus-test.c: make_it_compile
14031         * doc/dbus-specification.sgml: minimal semantic fix
14032
14033 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14034
14035         Release 0.3
14036
14037         * NEWS: Update
14038
14039 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14040
14041         * dbus/Makefile.am:
14042         * dbus/dbus-break-loader.c:
14043         * test/Makefile.am:
14044         * test/break-loader.c:
14045         Move dbus-break-loader to test/ and rename it to break-loader.
14046
14047 2003-02-02  Havoc Pennington  <hp@pobox.com>
14048
14049         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
14050         for code to manage cookies in your home directory
14051
14052         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
14053
14054         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
14055         to authenticate, then disconnect the client.
14056
14057 2003-02-03  Alexander Larsson  <alexl@redhat.com>
14058
14059         * dbus/dbus-message.c (dbus_message_append_fields):
14060         Correct docs.
14061
14062 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14063
14064         * doc/dbus-specification.sgml:
14065         Update address format section.
14066
14067 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14068
14069         * test/Makefile.am:
14070         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
14071         (message_handler), (new_connection_callback), (loop_quit),
14072         (loop_run), (main):
14073         Add bus test.
14074
14075 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14076
14077         * bus/driver.c: (bus_driver_handle_service_exists):
14078         Simplify the code a bit.
14079
14080         * dbus/dbus-bus.c: (dbus_bus_service_exists):
14081         Fix a silly.
14082
14083 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14084
14085         * bus/Makefile.am:
14086         Add libdbus-daemon.la and link to it.
14087
14088 2003-02-01  James Willcox  <jwillcox@gnome.org>
14089
14090         * bus/driver.c: (bus_driver_handle_own_service):
14091         Actually include the service reply code in the message.
14092
14093 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14094
14095         * bus/driver.c: (bus_driver_handle_service_exists):
14096         Don't unref the incoming message.
14097
14098 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14099
14100         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
14101
14102 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14103
14104         * dbus/dbus-server.c: (dbus_server_listen):
14105         * dbus/dbus-transport.c: (_dbus_transport_open):
14106         ifdef out the calls to the debug transport and server.
14107
14108 2003-02-02  Alexander Larsson  <alexl@redhat.com>
14109
14110         * dbus/dbus-watch.c (dbus_watch_get_flags):
14111         Add note in the docs that ERROR or HANGUP won't be returned
14112         and are assumed always on.
14113
14114         * glib/dbus-gmain.c (add_watch):
14115         Always add IO_ERR | IO_HUP
14116
14117         * dbus/dbus-message.h:
14118         Add semicolon after dbus_message_iter_get_string_array().
14119         Makes qt code build again
14120
14121 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
14122
14123         * bus/driver.c: (create_unique_client_name),
14124         (bus_driver_handle_hello):
14125         Don't take a name, just use a numeric id to identify
14126         each client.
14127
14128         * dbus/Makefile.am:
14129         * dbus/dbus-bus.c: (dbus_bus_register_client),
14130         (dbus_bus_acquire_service), (dbus_bus_service_exists):
14131         * dbus/dbus-bus.h:
14132         Add new convenience functions for communicating with the bus.
14133
14134         * dbus/dbus-message.h:
14135
14136         * dbus/dbus-protocol.h:
14137         Fix a typo.
14138
14139 2003-02-01  Alexander Larsson  <alexl@redhat.com>
14140
14141         * dbus/dbus-message.c (dbus_message_append_fields):
14142         Add some more doc comments.
14143
14144 2003-02-01  Havoc Pennington  <hp@pobox.com>
14145
14146         * dbus/dbus-break-loader.c (randomly_modify_length): change
14147         a 4-byte value in the message as if it were a length
14148
14149         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
14150         execute bit on saved files
14151
14152 2003-02-01  Havoc Pennington  <hp@pobox.com>
14153
14154         * dbus/dbus-break-loader.c (main): new program to find messages
14155         that break the loader.
14156
14157         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
14158         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
14159
14160         * dbus/dbus-string.c (_dbus_string_set_byte): new
14161
14162 2003-01-31  Havoc Pennington  <hp@pobox.com>
14163
14164         * dbus/dbus-message.c: refactor the test code to be more general,
14165         in preparation for writing a "randomly permute test cases to
14166         try to break the loader" program.
14167
14168 2003-01-31  Havoc Pennington  <hp@pobox.com>
14169
14170         * doc/dbus-specification.sgml: work on the specification
14171
14172         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
14173         the protocol version of the message.
14174
14175         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
14176         no longer specifies that.
14177         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
14178         1/2/3/4)
14179
14180         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
14181         "break" for DBUS_TYPE_NIL, remove @todo
14182
14183 2003-01-31  Havoc Pennington  <hp@pobox.com>
14184
14185         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
14186         just set_is_error/get_is_error as this is a commonly-used
14187         function, and write docs.
14188
14189 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
14190
14191         * dbus/dbus-address.c: (dbus_address_entry_free):
14192         Free key and value lists.
14193
14194         * dbus/dbus-internals.c: (_dbus_type_to_string):
14195         Add the types we didn't have.
14196
14197         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
14198         (_dbus_marshal_validate_arg):
14199         Add NIL types.
14200
14201         * dbus/dbus-message.c: (dbus_message_set_sender):
14202         Remove todo about being able to set sender to NULL.
14203
14204         (dbus_message_set_is_error_reply),
14205         (dbus_message_get_is_error_reply):
14206         * dbus/dbus-message.h:
14207         New functions.
14208
14209         * dbus/dbus-protocol.h:
14210         Add error reply flag.
14211
14212         * test/data/valid-messages/opposite-endian.message:
14213         Add NIL type to test.
14214
14215 2003-01-31  Havoc Pennington  <hp@pobox.com>
14216
14217         * doc/dbus-specification.sgml: fully specify the header.  Add
14218         flags and major protocol version, and change header/body len to
14219         unsigned.
14220
14221         * dbus/dbus-message-builder.c (append_saved_length): append length
14222         as uint32
14223
14224         * dbus/dbus-message.c (dbus_message_create_header): change header
14225         length and body length to unsigned. Add the new fields from the
14226         spec
14227         (_dbus_message_loader_return_buffer): unsigned header/body len
14228
14229 2003-01-30  Havoc Pennington  <hp@pobox.com>
14230
14231         * dbus/dbus-auth.c: rework to use only REJECTED, no
14232         MECHANISMS
14233
14234         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14235         use REJECTED, suggested by Mark McLoughlin
14236
14237 2003-01-30  Havoc Pennington  <hp@pobox.com>
14238
14239         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14240         a better way to report errors here. e.g.  "unix address lacks
14241         path" or something. also "no such file" when the path doesn't
14242         exist, etc.
14243
14244         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14245         leaking list nodes
14246         (dbus_parse_address): add @todo about documenting address format,
14247         and allowing , and ; to be escaped
14248
14249 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14250
14251         * dbus/Makefile.am:
14252         Add dbus-address.[ch]
14253
14254         * dbus/dbus-address.c: (dbus_address_entry_free),
14255         (dbus_address_entries_free), (create_entry),
14256         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14257         (dbus_parse_address), (_dbus_address_test):
14258         * dbus/dbus-address.h:
14259         New files for dealing with address parsing.
14260
14261         * dbus/dbus-connection.c:
14262         Document timeout functions.
14263
14264         * dbus/dbus-message.c:
14265         Document dbus_message_new_from_message.
14266
14267         * dbus/dbus-server-debug.c:
14268         Document.
14269
14270         * dbus/dbus-server.c: (dbus_server_listen):
14271         Parse address and use correct server implementation.
14272
14273         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14274         * dbus/dbus-string.h:
14275         New function with test.
14276
14277         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14278         * dbus/dbus-test.h:
14279         Add address tests.
14280
14281         * dbus/dbus-transport-debug.c:
14282         Document.
14283
14284         * dbus/dbus-transport.c: (_dbus_transport_open):
14285         Parse address and use correct transport implementation.
14286
14287 2003-01-30  Havoc Pennington  <hp@pobox.com>
14288
14289         * dbus/dbus-message.c: use message->byte_order instead of
14290         DBUS_COMPILER_BYTE_ORDER throughout.
14291         (dbus_message_create_header): pad header to align the
14292         start of the body of the message to 8-byte boundary
14293
14294         * dbus/dbus-marshal.h: make all the demarshalers take const
14295         DBusString arguments.
14296
14297         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14298         validate message args here, so we don't have to do slow validation
14299         later, and so we catch bad messages as they are incoming. Also add
14300         better checks on header_len and body_len. Also fill in
14301         message->byte_order
14302
14303         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14304         implemented properly)
14305         (_dbus_string_validate_nul): new function to check all-nul
14306
14307         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14308         get_arg_end_pos and remove all validation
14309         (_dbus_marshal_validate_arg): actually do validation here.
14310
14311 2003-01-29  Havoc Pennington  <hp@pobox.com>
14312
14313         * dbus/dbus-message.c (check_message_handling): fix assertion
14314         failure on set_client_serial
14315
14316 2003-01-28  Havoc Pennington  <hp@pobox.com>
14317
14318         * dbus/dbus-server-debug.c: Add doc section comments
14319
14320         * dbus/dbus-transport-debug.c: add doc section comments
14321
14322 2003-01-28  Havoc Pennington  <hp@redhat.com>
14323
14324         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14325         the reverse order from how I had it
14326         (_dbus_string_base64_encode): reverse encoding order. I was
14327         basically byteswapping everything during encoding.
14328
14329 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14330
14331         * dbus/dbus-connection-internal.h:
14332         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14333         (_dbus_connection_remove_timeout):
14334         Add functions for adding and removing timeouts.
14335
14336         * dbus/dbus-message.c: (dbus_message_new_from_message):
14337         Add new function that takes a message and creates an exact
14338         copy of it, but with the refcount set to 1.
14339         (check_message_handling):
14340         Fix build error.
14341
14342         * dbus/dbus-server-protected.h:
14343         * dbus/dbus-server.c: (_dbus_server_init_base),
14344         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14345         (dbus_server_set_timeout_functions):
14346         (_dbus_server_remove_timeout):
14347         New functions so that a server can add and remove timeouts.
14348
14349         (dbus_server_listen):
14350         Add commented out call to dbus_server_debug_new.
14351
14352         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14353         Actually set the handler, doh.
14354
14355         * dbus/dbus-transport.c: (_dbus_transport_open):
14356         Add commented out call to dbus_transport_debug_client_new.
14357
14358         * dbus/Makefile.am:
14359         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14360
14361 2003-01-28  Havoc Pennington  <hp@pobox.com>
14362
14363         * dbus/dbus-message.c (check_message_handling): function to check
14364         on the loaded message, iterates over it etc.
14365
14366 2003-01-28  Havoc Pennington  <hp@pobox.com>
14367
14368         * test/Makefile.am (dist-hook): fix make distdir
14369
14370         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14371
14372 2003-01-27  Havoc Pennington  <hp@pobox.com>
14373
14374         * dbus/dbus-mempool.c (time_for_size): replace printf with
14375         _dbus_verbose
14376
14377         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14378         empty lines; fix the SAVE_LENGTH stuff to be
14379         START_LENGTH/END_LENGTH so it actually works; couple other
14380         bugfixes
14381
14382         * test/Makefile.am (dist-hook): add dist-hook for .message files
14383
14384         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14385         can be constant or locked.
14386         (_dbus_string_free): allow freeing a const string as
14387         documented/intended
14388
14389         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14390
14391         * dbus/dbus-test-main.c (main): take an argument which is the
14392         directory containing test data
14393
14394         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14395         argument to this and load all the messages in test/data/
14396         checking that they can be loaded or not loaded as appropriate.
14397
14398 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14399
14400         * bus/dispatch.c: (bus_dispatch_message_handler):
14401         Dispatch messages sent to services.
14402
14403         * bus/driver.c: (bus_driver_send_service_deleted),
14404         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14405         (bus_driver_send_service_acquired):
14406         Add helper functions for sending service related messages.
14407
14408         (bus_driver_send_welcome_message):
14409         Send HELLO_REPLY instead of WELCOME.
14410
14411         (bus_driver_handle_list_services):
14412         Send LIST_SERVICES_REPLY instead of SERVICES.
14413
14414         (bus_driver_handle_own_service),
14415         (bus_driver_handle_service_exists):
14416         New message handlers.
14417
14418         (bus_driver_handle_message):
14419         Invoke new message handlers.
14420
14421         (bus_driver_remove_connection):
14422         Don't remove any services here since that's done automatically
14423         by bus_service_remove_owner now.
14424
14425         * bus/driver.h:
14426         New function signatures.
14427
14428         * bus/services.c: (bus_service_add_owner):
14429         Send ServiceAcquired message if we're the only primary owner.
14430
14431         (bus_service_remove_owner):
14432         Send ServiceAcquired/ServiceLost messages.
14433
14434         (bus_service_set_prohibit_replacement),
14435         (bus_service_get_prohibit_replacement):
14436         Functions for setting prohibit replacement.
14437
14438         (bus_service_has_owner):
14439         New function that checks if a connection is in the owner queue of
14440         a certain service.
14441
14442         * bus/services.h:
14443         Add new function signatures.
14444
14445         * dbus/dbus-list.c: (_dbus_list_test):
14446         Add tests for _dbus_list_remove_last and traversing the list backwards.
14447
14448         * dbus/dbus-list.h:
14449         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14450         go any further, so return NULL then.
14451
14452         * dbus/dbus-protocol.h:
14453         Add new messages, service flags and service replies.
14454
14455 2003-01-26  Havoc Pennington  <hp@pobox.com>
14456
14457         * dbus/dbus-message-builder.c: implement, completely untested.
14458
14459         * test/data/*: add data to be used in testing.
14460         ".message" files are our simple loadable text format.
14461         ".message-raw" will be binary dumps of messages.
14462
14463         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14464
14465 2003-01-26  Havoc Pennington  <hp@pobox.com>
14466
14467         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14468
14469         * dbus/dbus-errors.c (dbus_result_to_string): add
14470         file errors
14471
14472         * dbus/dbus-message-builder.c: new file, will contain code to load
14473         up messages from files. Not implemented yet.
14474
14475 2003-01-26  Havoc Pennington  <hp@pobox.com>
14476
14477         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14478         the sender by setting to NULL
14479
14480 2003-01-26  Havoc Pennington  <hp@pobox.com>
14481
14482         The unit tests pass, but otherwise untested.  If it breaks, the
14483         tests should have been better. ;-)
14484
14485         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14486         the connection.
14487
14488         * dbus/dbus-message.c: redo everything so we maintain
14489         message->header as the only copy of the various fields.
14490         This avoids the possibility of out-of-memory in some cases,
14491         for example dbus_message_lock() can't run out of memory anymore,
14492         and avoids extra copying. Figured I may as well go ahead and do
14493         this since it was busted for dbus_message_lock to not return
14494         failure on OOM, and dbus_message_write_header was totally
14495         unchecked for OOM. Also fixed some random other bugs.
14496
14497         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14498         that strings are nul-terminated. Also, end_pos can be equal
14499         to string length just not greater than, I think.
14500         (_dbus_marshal_set_int32): new function
14501         (_dbus_marshal_set_uint32): new function
14502         (_dbus_marshal_set_string): new function
14503
14504         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14505         a warning, init timeout_list to NULL
14506         (dbus_connection_send_message): don't use uninitialized variable
14507         "serial"
14508
14509         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14510
14511 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14512
14513         * bus/driver.c: (bus_driver_handle_hello),
14514         (bus_driver_send_welcome_message):
14515         Plug leaks
14516
14517 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14518
14519         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14520         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14521         (dbus_connection_unref):
14522         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14523         * dbus/dbus-message.c: (dbus_message_unref),
14524         Plug memory leaks.
14525
14526         (dbus_message_get_fields):
14527         Remove debugging printout.
14528
14529         (_dbus_message_loader_return_buffer):
14530         Don't store the header string.
14531
14532         (_dbus_message_test):
14533         Plug leaks.
14534
14535 2003-01-26  Richard Hult  <rhult@codefactory.se>
14536
14537         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14538         the file descriptor list, since it can change under us.
14539
14540 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14541
14542         * glib/dbus-gmain.c: (dbus_connection_prepare),
14543         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14544         (remove_watch), (dbus_connection_hookup_with_g_main):
14545         Rewrite the glib handling to use its own GSource instead of a
14546         GIOChannel so we can catch messages put in the queue while waiting
14547         for a reply.
14548
14549 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14550
14551         * bus/Makefile.am:
14552         * bus/connection.c: (connection_disconnect_handler),
14553         (connection_watch_callback), (bus_connection_setup):
14554         * bus/dispatch.c: (send_one_message),
14555         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14556         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14557         * bus/dispatch.h:
14558         * bus/driver.c: (bus_driver_send_service_deleted),
14559         (bus_driver_send_service_created), (bus_driver_handle_hello),
14560         (bus_driver_send_welcome_message),
14561         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14562         (bus_driver_handle_message):
14563         * bus/driver.h:
14564         Refactor code, put the message dispatching in its own file. Use
14565         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14566         is disconnected.
14567
14568 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14569
14570         * dbus/dbus-internals.h:
14571         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14572
14573         * dbus/dbus-message.c: (dbus_message_get_sender):
14574         * dbus/dbus-message.h:
14575         Implement dbus_message_get_sender.
14576
14577         * dbus/dbus-protocol.h:
14578         Add message and service defines.
14579
14580 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14581
14582         * dbus/dbus-connection.c: (dbus_connection_send_message):
14583         * dbus/dbus-message-internal.h:
14584         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14585         (dbus_message_write_header):
14586         Remove _dbus_messag_unlock and don't set the client serial on a
14587         message if one already exists.
14588
14589 2003-01-24  Havoc Pennington  <hp@pobox.com>
14590
14591         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14592         list_pool
14593
14594         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14595         on OOM
14596
14597 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14598
14599         * dbus/dbus-list.c: (alloc_link), (free_link):
14600         Use a memory pool for the links.
14601
14602 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14603
14604         * bus/connection.c: (bus_connection_foreach):
14605         * bus/connection.h:
14606         Add new bus_connection_foreach function.
14607
14608         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14609         Add function that broadcasts a message to all clients.
14610
14611         (bus_driver_send_service_created), (bus_driver_handle_hello),
14612         (bus_driver_send_welcome_message),
14613         (bus_driver_handle_list_services), (bus_driver_message_handler):
14614         Implement functions that take care of listing services, and notifying
14615         clients when new services are created.
14616
14617         * bus/services.c: (bus_services_list):
14618         * bus/services.h:
14619         Add new function that returns an array of strings with the currently
14620         registered services.
14621
14622         * glib/dbus-glib.h:
14623         * glib/dbus-gmain.c:
14624         Update copyright year.
14625
14626 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14627
14628         * dbus/dbus-connection.c: (dbus_connection_send_message):
14629         Unlock the message in case it was sent earlier.
14630
14631         (dbus_connection_send_message_with_reply_and_block):
14632         Remove the reply message from the list.
14633
14634         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14635         Set array_len and new_pos correctly.
14636
14637         (_dbus_marshal_test):
14638         Remove debug output.
14639
14640         * dbus/dbus-message-internal.h:
14641         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14642         New function that returns the reply serial.
14643
14644         (_dbus_message_unlock):
14645         New function that unlocks a message and resets its header.
14646
14647         (dbus_message_append_string_array),
14648         (dbus_message_get_fields_valist),
14649         (dbus_message_iter_get_field_type),
14650         (dbus_message_iter_get_string_array),
14651         (dbus_message_get_fields),
14652         (dbus_message_append_fields_valist):
14653         Handle string arrays.
14654
14655         (dbus_message_set_sender):
14656         Make this function public since the bus daemon needs it.
14657
14658         (decode_header_data):
14659         Set the reply serial to -1 initially.
14660
14661         * dbus/dbus-message.h:
14662         Add dbus_message_set_sender.
14663
14664 2003-01-24  Havoc Pennington  <hp@pobox.com>
14665
14666         * doc/dbus-specification.sgml: add some stuff
14667
14668 2003-01-22  Havoc Pennington  <hp@pobox.com>
14669
14670         * doc/dbus-specification.sgml: Start to document the protocol.
14671
14672 2003-01-22  Havoc Pennington  <hp@pobox.com>
14673
14674         * dbus/dbus-connection.c
14675         (dbus_connection_send_message_with_reply_and_block): add some @todo
14676
14677         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14678
14679 2003-01-21  Havoc Pennington  <hp@pobox.com>
14680
14681         (patch untested because can't compile)
14682
14683         * bus/driver.c (create_unique_client_name): make this function
14684         never recycle client names. Also, caller should initialize
14685         the DBusString.
14686
14687         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14688
14689 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14690
14691         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14692         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14693         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14694         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14695         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14696         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14697         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14698         * dbus/dbus-marshal.h:
14699         * dbus/dbus-protocol.h:
14700         Add support for marshalling and demarshalling integer, double
14701         and string arrays.
14702
14703 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14704
14705         * bus/Makefile.am:
14706         Add driver.[ch]
14707
14708         * bus/connection.c: (connection_disconnect_handler):
14709         Remove the connection from the bus driver's list.
14710
14711         (connection_watch_callback): Dispatch messages.
14712
14713         (free_connection_data): Free connection name.
14714
14715         (bus_connection_setup): Add connection to the bus driver's list.
14716         (bus_connection_remove_owned_service):
14717         (bus_connection_set_name), (bus_connection_get_name):
14718         Add functions for setting and getting the connection's name.
14719
14720         * bus/connection.h:
14721         Add function headers.
14722
14723         * bus/driver.c: (create_unique_client_name),
14724         (bus_driver_handle_hello_message),
14725         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14726         (bus_driver_add_connection), (bus_driver_remove_connection):
14727         * bus/driver.h:
14728         * bus/main.c:
14729         * bus/services.c: (bus_service_free):
14730         * bus/services.h:
14731         New file that handles communication and registreation with the bus
14732         itself.
14733
14734 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14735
14736         * dbus/dbus-connection.c: (dbus_connection_send_message):
14737         Add a new client_serial parameter.
14738
14739         (dbus_connection_send_message_with_reply):
14740         Remove a @todo since we've implemented the blocking function.
14741
14742         (dbus_connection_send_message_with_reply_and_block):
14743         New function that sends a message and waits for a reply and
14744         then returns the reply.
14745
14746         * dbus/dbus-connection.h:
14747         Add new functions.
14748
14749         * dbus/dbus-errors.c: (dbus_result_to_string):
14750         * dbus/dbus-errors.h:
14751         Add new DBUS_RESULT.
14752
14753         * dbus/dbus-message-internal.h:
14754         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14755         (_dbus_message_set_sender), (dbus_message_write_header),
14756         (dbus_message_new_reply), (decode_header_data),
14757         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14758         * dbus/dbus-message.h:
14759         Add new functions that set the reply serial and sender.
14760         Also marshal and demarshal them correctly and add test.
14761
14762         * dbus/dbus-protocol.h:
14763         Add new DBUS_MESSAGE_TYPE_SENDER.
14764
14765         * glib/dbus-glib.h:
14766         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14767         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14768         (dbus_connection_hookup_with_g_main):
14769         * glib/test-dbus-glib.c: (main):
14770         Rewrite to use GIOChannel and remove the GSource crack.
14771
14772         * test/echo-client.c: (main):
14773         * test/watch.c: (check_messages):
14774         Update for changed APIs
14775
14776 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14777
14778         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14779
14780         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14781         Create a DBusTimeoutList.
14782         (dbus_connection_set_timeout_functions): Add new function to
14783         set timeout callbacks
14784
14785         * dbus/dbus-connection.h: Add public DBusTimeout API.
14786
14787         * dbus/dbus-message.c: (dbus_message_get_service):
14788         * dbus/dbus-message.h:  New function.
14789
14790         * dbus/dbus-server.c: Fix small doc typo.
14791
14792         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14793
14794 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14795
14796         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14797         of the string, just as long as specified.
14798
14799 2003-01-19  Havoc Pennington  <hp@pobox.com>
14800
14801         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14802         new function
14803
14804         * dbus/dbus-server.c (dbus_server_set_max_connections)
14805         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14806         keep track of current number of connections, and add API for
14807         setting a max (but haven't implemented enforcing the max yet)
14808
14809 2003-01-18  Havoc Pennington  <hp@pobox.com>
14810
14811         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14812         reading/writing if read_watch != NULL or write_watch != NULL.
14813
14814         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14815         the message loader code to actually load message->header and
14816         message->body into the newly-created message.
14817
14818         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14819         in OOM case
14820
14821         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14822         (dbus_connection_get_max_message_size)
14823         (dbus_connection_set_max_live_messages_size)
14824         (dbus_connection_get_max_live_messages_size): implement some
14825         resource limitation functions
14826
14827         * dbus/dbus-resources.c: new file implementing some of the
14828         resource limits stuff
14829
14830         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14831         missing docs, add @todo to handle OOM etc.
14832
14833         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14834         docs
14835
14836 2003-01-18  Havoc Pennington  <hp@pobox.com>
14837
14838         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14839         connection if it hasn't been already.
14840
14841         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14842         replace with DisconnectFunction.
14843
14844 2003-01-18  Havoc Pennington  <hp@pobox.com>
14845
14846         Building --disable-verbose-mode --disable-asserts --disable-tests
14847         cuts the library from 112K to 45K or so
14848
14849         * configure.in: check for varargs macro support,
14850         add --enable-verbose-mode, --enable-asserts.
14851
14852         * dbus/dbus-internals.h (_dbus_assert): support
14853         DBUS_DISABLE_ASSERT
14854         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14855
14856 2003-01-18  Havoc Pennington  <hp@pobox.com>
14857
14858         * dbus/dbus-test.c: include config.h so that tests actually run
14859
14860         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14861         so the failure mode when that assumption fails will be plenty
14862         obvious.
14863
14864 2003-01-18  Havoc Pennington  <hp@pobox.com>
14865
14866         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14867
14868         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14869         the distribution
14870
14871         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14872         since we don't want to use those in make check
14873
14874 2003-01-15  Havoc Pennington  <hp@redhat.com>
14875
14876         Release 0.2
14877
14878         * NEWS: update
14879
14880 2003-01-15  Havoc Pennington  <hp@redhat.com>
14881
14882         * test/Makefile.am: fix so that test source code ends up in the
14883         distribution on make distcheck
14884
14885 2003-01-15  Havoc Pennington  <hp@redhat.com>
14886
14887         Release 0.1.
14888
14889         * NEWS: update
14890
14891 2003-01-15  Havoc Pennington  <hp@redhat.com>
14892
14893         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14894         fix build when --disable-tests
14895
14896         * Makefile.am (EXTRA_DIST): put HACKING in here
14897
14898         * HACKING: document procedure for making a tarball release.
14899
14900 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14901
14902         * bus/connection.c: (connection_error_handler),
14903         (bus_connection_setup):
14904         * bus/main.c: (main):
14905         Make sure that the DBusConnectionData struct is NULLed
14906         out to prevent a segfault.
14907
14908         * dbus/dbus-errors.c: (dbus_result_to_string):
14909         * dbus/dbus-errors.h:
14910         * dbus/dbus-message.c: (dbus_message_get_fields),
14911         (dbus_message_get_fields_valist), (_dbus_message_test):
14912         * dbus/dbus-message.h:
14913         Make dbus_message_get_fields return a result code so we can
14914         track invalid fields as well as oom.
14915
14916 2003-01-11  Havoc Pennington  <hp@pobox.com>
14917
14918         * configure.in: change --enable-test/--enable-ansi action-if-given
14919         to enable_foo=$enableval instead of enable_foo=yes
14920
14921 2003-01-08  Havoc Pennington  <hp@pobox.com>
14922
14923         * dbus/dbus-string.c (_dbus_string_align_length): new function
14924
14925         * dbus/dbus-test-main.c: move main() for test app here
14926         * dbus/dbus-test.c
14927         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14928         symbol to run tests, because dbus-test isn't in the main
14929         library
14930
14931         Code review nitpicks.
14932
14933         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14934         for people with narrow emacs ;-). Assert client_serial was filled
14935         in. Assert message->name != NULL.
14936         (dbus_message_append_fields): have "first_field_type" arg separate
14937         from va list, needed for C++ binding that also uses varargs IIRC
14938         and helps with type safety
14939         (dbus_message_new): add @todo about using DBusString to store
14940         service/name internally
14941         (dbus_message_new): don't leak ->service and ->name on OOM later
14942         in the function
14943         (dbus_message_unref): free the service name
14944         (dbus_message_get_fields): same change to varargs
14945         i.e. first_field_type
14946         (_dbus_message_loader_return_buffer): assert that the message data
14947         is aligned (if not it's a bug in our code). Put in verbose griping
14948         about why we set corrupted = TRUE.
14949         (decode_header_data): add FIXME that char* is evil.  Was going to
14950         add FIXME about evil locale-specific string.h strncmp, but just
14951         switched to wacky string-as-uint32 optimization. Move check for
14952         "no room for field name" above get_const_data_len() to avoid
14953         assertion failure in get_const_data_len if we have trailing 2
14954         bytes or the like. Check for service and name fields being
14955         provided twice. Don't leak service/name on error. Require field
14956         names to be aligned to 4 bytes.
14957
14958         * dbus/dbus-marshal.c: move byte swap stuff to header
14959         (_dbus_pack_int32): uscore-prefix
14960         (_dbus_unpack_int32): uscore-prefix
14961         (_dbus_unpack_uint32): export
14962         (_dbus_demarshal_string): add @todo complaining about use of
14963         memcpy()
14964         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14965         handling allowing corrupt data to go unchecked
14966
14967 2003-01-08  Havoc Pennington  <hp@redhat.com>
14968
14969         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14970         to the select() as needed for authentication. (should be using
14971         _dbus_poll() not select, but for another day)
14972
14973         * dbus/dbus.h: include dbus/dbus-protocol.h
14974
14975 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14976
14977         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14978         dbus-connection.h
14979
14980 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14981
14982         * dbus/dbus-internals.c: (_dbus_type_to_string):
14983         New function that returns a string describing a type.
14984
14985         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14986         * dbus/dbus-marshal.h:
14987         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14988         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14989         (dbus_message_iter_get_byte_array):
14990         * dbus/dbus-message.h:
14991         Add new convenience functions for appending and getting message fields.
14992         Also add demarshalling routines for byte arrays.
14993
14994 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14995
14996         * dbus/dbus-connection-internal.h:
14997         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14998         (_dbus_connection_get_next_client_serial),
14999         (dbus_connection_send_message):
15000         * dbus/dbus-internals.h:
15001         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
15002         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
15003         (_dbus_marshal_uint32), (_dbus_demarshal_double),
15004         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
15005         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
15006         (_dbus_verbose_bytes), (_dbus_marshal_test):
15007         * dbus/dbus-marshal.h:
15008         * dbus/dbus-message-internal.h:
15009         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
15010         (dbus_message_write_header), (_dbus_message_lock),
15011         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
15012         (dbus_message_get_name), (dbus_message_append_int32),
15013         (dbus_message_append_uint32), (dbus_message_append_double),
15014         (dbus_message_append_string), (dbus_message_append_byte_array),
15015         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
15016         (dbus_message_iter_unref), (dbus_message_iter_has_next),
15017         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
15018         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
15019         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
15020         (decode_header_data), (_dbus_message_loader_return_buffer),
15021         (message_iter_test), (_dbus_message_test):
15022         * dbus/dbus-message.h:
15023         * dbus/dbus-protocol.h:
15024         * dbus/dbus-test.c: (main):
15025         * dbus/dbus-test.h:
15026         * glib/test-dbus-glib.c: (message_handler), (main):
15027         * test/echo-client.c: (main):
15028         * test/watch.c: (check_messages):
15029         Make messages sendable and receivable for real.
15030
15031 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15032
15033         * dbus/dbus-marshal.c: (_dbus_marshal_double),
15034         (_dbus_marshal_string), (_dbus_marshal_byte_array):
15035         * dbus/dbus-message.c: (dbus_message_append_int32),
15036         (dbus_message_append_uint32), (dbus_message_append_double),
15037         (dbus_message_append_string), (dbus_message_append_byte_array):
15038         Handle OOM restoration.
15039
15040 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15041
15042         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15043         (_dbus_demarshal_string), (_dbus_marshal_test):
15044         * dbus/dbus-marshal.h:
15045         * dbus/dbus-message.c: (dbus_message_get_name),
15046         Document these functions.
15047
15048         (dbus_message_append_int32), (dbus_message_append_uint32),
15049         (dbus_message_append_double), (dbus_message_append_string),
15050         (dbus_message_append_byte_array):
15051         * dbus/dbus-message.h:
15052         Add functions for adding message fields of different types.
15053
15054         * dbus/dbus-protocol.h:
15055         Add the different types.
15056
15057 2003-01-05  Havoc Pennington  <hp@pobox.com>
15058
15059         * bus/connection.c: implement routines for handling connections,
15060         first thing is keeping a list of owned services on each connection
15061         and setting up watches etc.
15062
15063         * bus/services.c: implement a mapping from service names to lists
15064         of connections
15065
15066         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
15067
15068         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
15069         to use static mutexes for global data
15070
15071         * dbus/dbus-connection.c (dbus_connection_set_data): add new
15072         collection of functions to set/get application-specific data
15073         on the DBusConnection.
15074
15075 2003-01-04  Havoc Pennington  <hp@pobox.com>
15076
15077         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
15078         (_dbus_poll): new function
15079
15080         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
15081         copied from GLib
15082
15083         * bus/loop.c: initial code for the daemon main loop
15084
15085 2003-01-04  Havoc Pennington  <hp@pobox.com>
15086
15087         * test/watch.c (error_handler): make it safe if the error handler
15088         is called multiple times (if we s/error handler/disconnect
15089         handler/ we should just guarantee it's called only once)
15090
15091         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
15092         error handler on disconnect (it's quite possible we should
15093         just change the error handler to a "disconnect handler," I'm
15094         not sure we have any other meaningful errors)
15095
15096         * configure.in: check for getpwnam_r
15097
15098         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
15099         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
15100         mechanism as in SASL spec, using socket credentials
15101
15102         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
15103         (_dbus_send_credentials_unix_socket): new function
15104
15105         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
15106         dbus_accept()
15107         (_dbus_write): only check errno if <0 returned
15108         (_dbus_write_two): ditto
15109
15110 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
15111
15112         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
15113         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
15114         (_dbus_marshal_test):
15115         * dbus/dbus-marshal.h:
15116         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
15117         to _dbus_marshal_utf8_string. Also fix some tests.
15118
15119 2002-12-28  Harri Porten  <porten@kde.org>
15120
15121         * configure.in: added check for C++ compiler and a very cheesy
15122         check for the Qt integration
15123
15124         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
15125
15126         * qt/Makefile.am: added
15127
15128         * qt/.cvsignore: added
15129
15130         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
15131         latter, added #ifdef QT_THREAD_SUPPORT guard.
15132
15133         * dbus/Makefile.am: added missing headers for make dist
15134
15135 2002-12-28  Kristian Rietveld  <kris@gtk.org>
15136
15137         * dbus/Makefile.am: fixup export-symbols-regex.
15138
15139 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15140
15141         * acinclude.m4: Add this file and put the
15142         PKG_CHECK_MODULE macro in it.
15143
15144 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15145
15146         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15147         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15148         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15149         (_dbus_marshal_test):
15150         Make the demarshalling routines align the pos argument.
15151         Add string marshalling tests and fix the obvious bugs
15152         discovered.
15153
15154 2002-12-26  Havoc Pennington  <hp@pobox.com>
15155
15156         * dbus/dbus-auth.c: fixes fixes fixes
15157
15158         * dbus/dbus-transport-unix.c: wire up support for
15159         encoding/decoding data on the wire
15160
15161         * dbus/dbus-auth.c (_dbus_auth_encode_data)
15162         (_dbus_auth_decode_data): append to target string
15163         instead of nuking it.
15164
15165 2002-12-26  Havoc Pennington  <hp@pobox.com>
15166
15167         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
15168         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
15169         doh
15170
15171         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
15172         avoid swap_bytes() overhead (ignoring possible assembly stuff for
15173         now). Main point is because I wanted unpack_uint32 to implement
15174         _dbus_verbose_bytes
15175         (_dbus_verbose_bytes): new function
15176
15177         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
15178
15179         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
15180         mechanism to handle a corrupt message stream
15181         (_dbus_message_loader_new): fix preallocation to only prealloc,
15182         not prelengthen
15183
15184         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
15185         (_dbus_string_test): enhance tests for copy/move and fix the
15186         functions
15187
15188         * dbus/dbus-transport-unix.c: Hold references in more places to
15189         avoid reentrancy problems
15190
15191         * dbus/dbus-transport.c: ditto
15192
15193         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
15194         leak reference count in no-message case
15195
15196         * test/watch.c (do_mainloop): handle adding/removing watches
15197         during iteration over the watches. Also, ref the connection/server
15198         stored on a watch, so we don't try to mangle a destroyed one.
15199
15200         * dbus/dbus-transport-unix.c (do_authentication): perform
15201         authentication
15202
15203         * dbus/dbus-auth.c (get_state): add a state
15204         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
15205         (_dbus_auth_get_unused_bytes): append the unused bytes
15206         to the passed in string, rather than prepend
15207
15208         * dbus/dbus-transport.c (_dbus_transport_init_base): create
15209         the auth conversation DBusAuth
15210
15211         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
15212         (_dbus_transport_new_for_domain_socket): when creating a
15213         transport, pass in whether it's a client-side or server-side
15214         transport so we know which DBusAuth to create
15215
15216 2002-12-03  Havoc Pennington  <hp@pobox.com>
15217
15218         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15219         _after_ finalizing the derived members
15220         (unix_connection_set): unref watch if we fail to add it
15221
15222         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15223         transport first, so that the connection owned by the
15224         transport will be valid as the transport finalizes.
15225
15226         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15227         if necessary, and remove watches from the connection.
15228
15229         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15230
15231 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15232
15233         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15234         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15235         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15236         (_dbus_marshal_test):
15237         * dbus/dbus-marshal.h:
15238         Add string marshal functions and have the demarshal functions
15239         return the new position.
15240
15241 2002-12-25  Havoc Pennington  <hp@pobox.com>
15242
15243         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15244         it is a simple protocol that just maps directly to SASL.
15245
15246         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15247         initial implementation, not actually used yet.
15248
15249         * dbus/dbus-string.c (_dbus_string_find): new function
15250         (_dbus_string_equal): new function
15251         (_dbus_string_base64_encode): new function
15252         (_dbus_string_base64_decode): new function
15253
15254 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15255
15256         * dbus/Makefile.am:
15257         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15258         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15259         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15260         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15261         * dbus/dbus-marshal.h:
15262         * dbus/dbus-protocol.h:
15263         * dbus/dbus-test.c: (main):
15264         * dbus/dbus-test.h:
15265         Add un-optimized marshalling/demarshalling routines.
15266
15267 2002-12-25  Harri Porten  <porten@kde.org>
15268
15269         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15270
15271 2002-12-24  Zack Rusin  <zack@kde.org>
15272
15273         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15274         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15275         main loop stuff
15276
15277 2002-12-24  Havoc Pennington  <hp@pobox.com>
15278
15279         * glib/dbus-gthread.c: fix include
15280
15281         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15282         I think glib API needs to change, though, as you don't
15283         want to use DBusMessageFunction, you want to use the
15284         DBusMessageHandler object. Probably
15285         dbus_connection_open_with_g_main_loop()
15286         and dbus_connection_setup_g_main_loop() or something like that
15287         (but think of better names...) that just create a connection
15288         that has watch/timeout functions etc. already set up.
15289
15290         * dbus/dbus-connection.c
15291         (dbus_connection_send_message_with_reply): new function just to
15292         show how the message handler helps us deal with replies.
15293
15294         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15295
15296         * dbus/dbus-string.c (_dbus_string_test): free a string that
15297         wasn't
15298
15299         * dbus/dbus-hash.c: use memory pools for the hash entries
15300         (rebuild_table): be more paranoid about overflow, and
15301         shrink table when we can
15302         (_dbus_hash_test): reduce number of sprintfs and write
15303         valid C89. Add tests for case where we grow and then
15304         shrink the hash table.
15305
15306         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15307
15308         * dbus/dbus-connection.c (dbus_connection_register_handler)
15309         (dbus_connection_unregister_handler): new functions
15310
15311         * dbus/dbus-message.c (dbus_message_get_name): new
15312
15313         * dbus/dbus-list.c: fix docs typo
15314
15315         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15316         an object representing a handler for messages.
15317
15318 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15319
15320         * glib/dbus-glib.h:
15321         * glib/dbus-gthread.c: (dbus_gthread_init):
15322         Don't use the gdbus prefix for public functions.
15323
15324 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15325
15326         * Makefile.am:
15327         * configure.in:
15328         Add GLib checks and fixup .pc files
15329
15330         * glib/Makefile.am:
15331         * glib/dbus-glib.h:
15332         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15333         (gdbus_connection_check), (gdbus_connection_dispatch),
15334         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15335         (dbus_connection_gsource_new):
15336         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15337         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15338         * glib/test-dbus-glib.c: (message_handler), (main):
15339         Add GLib support.
15340
15341 2002-12-15  Harri Porten  <porten@kde.org>
15342
15343         * autogen.sh: check for libtoolize before attempting to use it
15344
15345         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15346         struct.
15347
15348         * .cvsignore: ignore more stamp files
15349
15350         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15351
15352         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15353         without make install.
15354
15355 2002-12-15  Havoc Pennington  <hp@pobox.com>
15356
15357         * dbus/dbus-threads.c: add thread stubs that a higher library
15358         layer can fill in. e.g. the GLib wrapper might fill them in with
15359         GThread stuff. We still need to use this thread API to
15360         thread-safe-ize the library.
15361
15362 2002-12-12  Havoc Pennington  <hp@pobox.com>
15363
15364         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15365         below new interfaces and include fewer system headers.
15366
15367         * dbus/dbus-sysdeps.c (_dbus_read): new function
15368         (_dbus_write): new function
15369         (_dbus_write_two): new function
15370         (_dbus_connect_unix_socket): new function
15371         (_dbus_listen_unix_socket): new function
15372
15373         * dbus/dbus-message-internal.h: change interfaces to use
15374         DBusString
15375
15376 2002-12-11  Havoc Pennington  <hp@pobox.com>
15377
15378         * dbus/dbus-types.h: add dbus_unichar
15379
15380         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15381
15382         * dbus/dbus-connection.c (dbus_connection_send_message): return
15383         TRUE on success
15384
15385         * dbus/dbus-transport.c: include dbus-watch.h
15386
15387         * dbus/dbus-connection.c: include dbus-message-internal.h
15388
15389         * HACKING: add file with coding guidelines stuff.
15390
15391         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15392         handling here, for security purposes (as in vsftpd). Not actually
15393         using this class yet.
15394
15395         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15396         system/libc usage here, as in vsftpd, for ease of auditing (and
15397         should also simplify portability). Haven't actually moved all the
15398         system/libc usage into here yet.
15399
15400 2002-11-25  Havoc Pennington  <hp@pobox.com>
15401
15402         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15403         always print the first verbose message.
15404
15405 2002-11-24  Havoc Pennington  <hp@pobox.com>
15406
15407         * test/echo-client.c, test/echo-server.c: cheesy test
15408         clients.
15409
15410         * configure.in (AC_CHECK_FUNCS): check for writev
15411
15412         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15413         function
15414
15415         * dbus/dbus-list.c (_dbus_list_foreach): new function
15416
15417         * dbus/dbus-internals.c (_dbus_verbose): new function
15418
15419         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15420         representing a server that listens for connections.
15421
15422         * dbus/.cvsignore: create
15423
15424         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15425         public API for reporting errors
15426
15427         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15428         public object representing a connection that
15429         sends/receives messages. (Same object used for
15430         both client and server.)
15431
15432         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15433         Basic abstraction for different kinds of stream
15434         that we might read/write messages from.
15435
15436 2002-11-23  Havoc Pennington  <hp@pobox.com>
15437
15438         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15439         _DBUS_INT_MAX
15440
15441         * dbus/dbus-test.c (main): add list test, and include
15442         dbus-test.h as intended
15443
15444         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15445         (_dbus_hash_table_remove_int): return value indicates
15446         whether the entry existed to remove
15447
15448         * dbus/dbus-list.c: add linked list utility class,
15449         with docs and tests
15450
15451         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15452         array sometimes.
15453
15454 2002-11-23  Havoc Pennington  <hp@pobox.com>
15455
15456         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15457         DBUS_END_DECLS to nothing, that should fix this once and for all
15458
15459         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15460
15461         * dbus/dbus-message.c, dbus/dbus-hash.c:
15462         add some missing @brief
15463
15464 2002-11-23  Havoc Pennington  <hp@pobox.com>
15465
15466         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15467         to avoid confusing Doxygen
15468
15469         * dbus/dbus-hash.c: @} not }@
15470
15471         * dbus/dbus-message.c (struct DBusMessage): split out
15472         internals docs
15473
15474 2002-11-23  Havoc Pennington  <hp@pobox.com>
15475
15476         * configure.in: pile on more warning flags if using gcc
15477
15478         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15479         to document static functions
15480
15481         * configure.in: add summary to end of configure so it
15482         looks nice and attractive
15483
15484         * dbus/dbus-hash.c: finish implementation and write unit
15485         tests and docs
15486
15487         * configure.in: add --enable-tests to enable unit tests
15488
15489         * dbus/dbus-test.c: test program to run unit tests
15490         for all files in dbus/*, initially runs a test for
15491         dbus-hash.c
15492
15493         * dbus/dbus-internals.h: file to hold some internal utility stuff
15494
15495 2002-11-22  Havoc Pennington  <hp@redhat.com>
15496
15497         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15498         "ported" away from Tcl
15499
15500         * dbus/dbus-types.h: header for types such as dbus_bool_t
15501
15502 2002-11-22  Havoc Pennington  <hp@redhat.com>
15503
15504         * dbus/dbus.h: fixups for doc warnings
15505
15506         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15507         macros
15508         (QUIET): make it quiet so we can see warnings
15509
15510         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15511
15512 2002-11-22  Havoc Pennington  <hp@redhat.com>
15513
15514         * Makefile.am: include "Doxyfile" target in all-local
15515
15516         * configure.in: generate the Doxyfile
15517
15518         * Doxyfile.in: move Doxyfile here, so we can use
15519         configure to generate a Doxyfile with the right
15520         version number etc.
15521
15522 2002-11-22  Havoc Pennington  <hp@redhat.com>
15523
15524         * dbus/dbus-message.c: move inline docs into .c file
15525
15526         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15527         so all docs are under doc/
15528         (MAN_EXTENSION): generate man pages. Use extension
15529         ".3dbus" which matches ".3qt" on my system,
15530         I guess this is OK, I don't know really.
15531         (FILE_PATTERNS): look for .c files not .h, makes sense
15532         for plain C I think
15533
15534 2002-11-22  Havoc Pennington  <hp@pobox.com>
15535
15536         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15537         because any app can be a server, and any app can be a client,
15538         the bus is a special kind of server.
15539
15540 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15541
15542         * Doxyfile : adding. Still needs Makefile rules to be generated
15543         automatically (just run "doxygen" in the toplevel dir for now to
15544         generate docs)
15545
15546         * dbus/dbus-message.h : Adding sample docs (javadoc since
15547         resembles gtk-doc a little more)
15548
15549         * dbus/dbus.h : Adding sample docs
15550
15551 2002-11-21  Havoc Pennington  <hp@redhat.com>
15552
15553         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15554         so we can allow ourselves to include files directly,
15555         instead of having to use dbus.h
15556
15557         * dbus/dbus.h: fill in
15558
15559         * dbus/dbus-message.h: sketch out a sample header file.
15560         Include griping if you include it directly instead of
15561         via dbus.h
15562
15563         * dbus/dbus-macros.h: new file with macros for extern "C",
15564         TRUE/FALSE, NULL, etc.
15565
15566         * doc/file-boilerplate.c: put include guards in here
15567
15568 2002-11-21  Havoc Pennington  <hp@redhat.com>
15569
15570         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15571
15572         * COPYING: include the GPL as well, and license code
15573         under both AFL and GPL.
15574
15575 2002-11-21  Havoc Pennington  <hp@redhat.com>
15576
15577         * acconfig.h: get rid of this
15578
15579         * autogen.sh (run_configure): add --no-configure option
15580
15581         * configure.in: remove AC_ARG_PROGRAM to make
15582         autoconf complain less. add AC_PREREQ.
15583         add AC_DEFINE third arg.
15584
15585 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15586
15587         * doc/Makefile.am:
15588         Fix references so we can distcheck.
15589
15590 2002-11-21  Havoc Pennington  <hp@redhat.com>
15591
15592         * Initial module creation
15593