* dbus/dbus-sysdeps-win.c (_dbus_printf_string_upper_bound): compile fix for MS Platf...
[platform/upstream/dbus.git] / ChangeLog
1 2007-05-14  Ralf Habacker <ralf.habacker@freenet.de>
2
3         * dbus/dbus-sysdeps-win.c (_dbus_printf_string_upper_bound):
4         compile fix for MS Platform SDK 6 
5         patch from Michael Luschas <mluschas@gmail.com>
6
7 2007-05-10  John (J5) Palmieri <johnp@redhat.com>
8
9         * dbus-1.pc.in: add daemondir to pc file
10         patch from Brian Cameron <brian.cameron at sun.com>
11
12 2007-05-04  Simon McVittie <simon.mcvittie@collabora.co.uk>
13
14         * doc/dbus-specification.xml: mention the reserved o.fd.DBus.Local
15         interface and the corresponding /o/fd/DBus/Local object path;
16         describe them as reserved and forbid using them in a sent message,
17         mentioning that in the reference implementation this will cause the
18         connection to be dropped. Patch approved by Havoc.
19
20 2007-04-28  Ralf Habacker <ralf.habacker@freenet.de>
21
22         * cmake/: don't install test applications and service files,
23         moved CMAKE_DEBUG_POSTFIX to top level CMakeLists.txt
24
25 2007-04-27  Havoc Pennington  <hp@redhat.com>
26
27         * dbus/dbus-sysdeps-unix.c (_dbus_open_socket): fix #10781 from
28         Tobias Nygren, checking pointer to fd vs. 0 rather than checking
29         the fd itself
30
31 2007-04-26 Ralf Habacker  <ralf.habacker@freenet.de>
32
33         * cmake/: added debug postfixes to debug exe's for 
34         easier debugging.
35         * dbus\dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error): 
36         print error code in case no string message is available.
37
38 2007-04-06 Simon McVittie <simon.mcvittie@collabora.co.uk>
39
40         * dbus/dbus-message-util.c, dbus/dbus-message.c,
41         dbus/dbus-message.h: Add API to convert a DBusMessage to/from a
42         byte array. Patch from Dafydd Harries <dafydd.harries@collabora.co.uk>,
43         approved by Havoc Pennington.
44
45 2007-04-03  Timo Hoenig  <thoenig@suse.de>
46
47         * dbus/dbus-address.c (dbus_parse_address): Do not accept zero-
48           length address.
49         * dbus/dbus-address.c (_dbus_address_test): Add test for zero-
50           length address.
51
52 2007-03-25 Ralf.Habacker  <ralf.habacker@freenet.de>
53
54         * cmake/dbus/CMakeLists.txt: debug postfix also for mingw.
55
56 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
57
58         * cmake/modules/FindExpat.cmake: fix package detection on win32.
59
60         * README.win: update install instructions. 
61
62 2007-03-16 Ralf.Habacker  <ralf.habacker@freenet.de>
63
64         * dbus/dbus-sysdeps.h (_dbus_split_paths_and_append):
65         new prototyp
66         (_DBUS_PATH_SEPARATOR): new macro. 
67
68         * dbus/dbus-sysdeps.c (_dbus_split_paths_and_append): merged 
69         from dbus/dbus-sysdeps-unix.c and dbus/dbus-sysdeps-win.c. 
70
71 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
72
73         * bus/config-parser.c, bus/policy.c,  
74         bus/policy.h, bus/dbus-daemon.1.in,
75         bus/session.conf.in: added eavesdrop support 
76         for replies - patch by olli.salli at collabora.co.uk
77         approved by Havoc Pennington. 
78
79 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
80
81         * dbus\dbus-sysdeps-win-thread.c: renamed to 
82         dbus-sysdeps-thread-win.c, it is a platform depending file 
83         similar to dbus-sysdeps-pthread.c.
84
85 2007-03-15 Ralf.Habacker  <ralf.habacker@freenet.de>
86
87         * cmake\doc\CMakeLists.txt: added prelimary xml doc 
88         support, needs cmake Find script.
89
90 2007-03-14 Ralf.Habacker  <ralf.habacker@freenet.de>
91
92         * cmake: add doxygen support
93
94 2007-03-14  Ralf.Habacker  <ralf.habacker@freenet.de>
95
96         * cmake/config.h.cmake: WINCE fixes, defined DBUS_UNIX.
97
98 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
99
100         * dbus/dbus-sysdeps-util-win.c (dbus_become_daemon): 
101         win32 compile fix. 
102
103 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
104
105         * dbus-win.patch: removed obsolate patches. 
106
107 2007-03-13  Ralf.Habacker  <ralf.habacker@freenet.de>
108
109         * dbus/dbus-sysdeps-win.c: added zero byte sending 
110         and receiving after connection start up
111
112 2007-03-11  Havoc Pennington  <hp@redhat.com>
113
114         * tools/dbus-launch.c (do_close_stderr): fix C89 problem and
115         formatting problem
116
117         * Mostly fix the DBusPipe mess.
118         - put line break after function return types
119         - put space before parens
120         - do not pass structs around by value
121         - don't use dbus_strerror after calling supposedly cross-platform
122         api
123         - don't name pipe variables "fd"
124         - abstract special fd numbers like -1 and 1
125
126 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
127
128         * dbus/dbus-sysdeps-win.h, dbus/dbus-sysdeps-win.c, 
129         dbus/dbus-sysdeps-util-win.c: renamed functions 
130         _dbus_xxx_file() to _dbus_file_xxx() to reflect 
131         struct name DBusFile. 
132
133 2007-03-12  Ralf Habacker  <ralf.habacker@freenet.de>
134
135         * dbus/dbus-sysdeps-util-unix.c (_dbus_become_daemon):
136         fix _dbus_pid_fd check. 
137
138 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
139
140         * tools/dbus-print-message.c (print_message):
141         added printing of the reply serial to method returns and 
142         errors, so you can actually figure out the message/reply 
143         pairs - patch by olli.salli at collabora.co.uk.
144
145 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
146
147         * dbus-win.patch: removed committed patches. 
148
149 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
150
151         * bus/bus.c, bus/bus.h, bus/main.c, bus/test.c,
152         dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-util-unix.c,
153         dbus/dbus-sysdeps-util-win.c, dbus/dbus-sysdeps-win.c,
154         dbus/dbus-sysdeps.h: renamed _dbus_xxx_pipe to _dbus_pipe_xxx,
155         completed _dbus_pipe support. 
156
157 2007-03-10  Ralf Habacker  <ralf.habacker@freenet.de>
158
159         * dbus/dbus-sysdeps.h (_dbus_listen_tcp_socket):
160         changed type or port to pointer, because the port is given back.
161
162         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
163         implemented returning tcp port. Skipping port parameter
164         and non integer port values in config <listen> statement
165         needs more effort.
166
167         * dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-win.c
168         (_dbus_listen_tcp_socket): return the real used tcp port.
169
170         * bus/dbus-daemon.1.in: added <listen> tcp examples
171
172 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
173
174         * cmake/config.h.cmake: win32 msvc bug fix
175
176 2007-03-09  Ralf Habacker  <ralf.habacker@freenet.de>
177
178         * cmake/config.h.cmake: fixed DBUS_WINxx defines,
179         using _WINCE does not work.
180
181 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
182
183         * dbus-win.patch: removed _dbus_write_pipe() patch, it is now 
184         committed.
185
186 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
187
188         * bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h:
189         rename pipe related write() function calls to _dbus_write_pipe().
190
191 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
192
193         * dbus-win.patch: added bus/config-loader-libexpat.c patch, 
194         uses DBUS_WIN for alls win32 related #ifdefs, 
195         some minor cleanups
196
197 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
198
199         * dbus-win.patch: updated patch for bus/dispatch.c.
200
201 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
202
203         * dbus-win.patch: dbus-connection.c (dbus_connection_get_unix_user,
204         dbus_connection_get_unix_process_id): Let return them valid user id's, 
205         otherwise bus-test fails. How to replace on win32 ?.
206         
207         * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir):
208         fix memory leak.
209
210 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
211
212         * dbus/dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error):
213         use dbus friendly error name.
214         (fill_win_user_info_homedir): print user name in error case too.
215
216 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
217
218         * cmake/ConfigureChecks.cmake: fixed socketpair check
219
220 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
221
222         * bus/dispatch.c: disabled segfault test on win32 for now
223
224 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
225
226         * configure.in, cmake/ConfigureChecks.cmake: added check 
227         for setrlimit. 
228         * test/test-segfault.c: only include setrlimit stuff only 
229         when available.  
230
231 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
232
233         * test/test-segfault.c: unix compile fix.
234         * dbus-win.patch: removed obsolate patches.
235
236 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
237
238         * bus/activation.c: removed obsolate include header.
239         * test/test-segfault.c: win32 compile fix, rlimit 
240         isn't available on win32.
241         * dbus-win.patch: removed some more patches, they
242         are applied or obsolate 
243
244 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
245
246         * bus-win.patch: fixes unix listen problems, dbus-test 
247         now runs.
248
249 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
250
251         * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
252         cmake/CMakeLists.txt: win32 compile fix
253
254 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
255
256         * dbus-win.patch, README.win: added available win32 
257         patches from windbus project (http://sf.net/projects/windbus)
258
259 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
260
261         * bus/activation.c: (bus_activation_activate_service):
262         fixed call to _dbus_spawn_async_with_babysitter().
263
264 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
265
266         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
267         added environment pointer as function parameter, used on win32.
268
269         * test/spawn-test.c: fixed call to above mentioned function.
270
271 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
272
273         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
274         added configure check for unistd.h.
275
276 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
277
278         * test/Makefile.am: fixed test data copy problem in 
279         out of source build, when sources came from svn or cvs. 
280
281 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
282
283         * dbus/*-win.*,bus/*-win.*: added win32 platform related
284         files. These files are only added to the cmake build system.  
285         The missing dbus-win.patch file will be added later. 
286
287 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
288
289         * cmake: new directory, contains cmake build support.
290         See http://www.cmake.org for more informations.
291         Currently only unix will be buildable because some 
292         win32 required files are still missing. 
293
294 2007-03-03  Thiago Macieira  <thiago@kde.org>
295
296         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
297         output and add it to the DBusError message we return.
298
299         * tools/dbus-launch.1:
300         * tools/dbus-launch.c: Add option --close-stderr to, well,
301         close stderr before starting dbus-daemon.
302
303 2007-01-31  Havoc Pennington  <hp@redhat.com>
304
305         * bus/dbus-daemon.1.in: write a section in the man page on running
306         a test daemon for debugging purposes
307
308 2007-01-26  Havoc Pennington  <hp@redhat.com>
309
310         * bus/session.conf.in: override all the default limits with much
311         higher limits on the session bus, there is no reason the session
312         bus should have low limits
313
314         * bus/config-parser.c (bus_config_parser_new): increase default
315         limits so they are less likely to be hit; in particular the max
316         replies per connection was way too low
317
318 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
319
320         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
321         a pointer to the tutorial maintained as part of dbus-python
322
323 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
324
325         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
326         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
327         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
328
329 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
330
331         * tools/dbus-monitor.c: gettimeofday() is not available 
332         on windows so we have to provide our own. It's taken from 
333         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
334
335 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
336
337         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
338         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
339         is in dbus-sysdeps-win.c (not in this patch).
340
341         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
342         with InterlockedInc/Decrement. 
343         - Patches from Christian Ehrlicher
344         
345 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
346
347         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
348
349 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
350
351         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
352         fix mispaced const statement. - Patch from Peter Kümmel
353
354 2006-12-19  Ray Strode  <rstrode@redhat.com>
355
356         * bus/bus.c (process_config_every_time):
357         don't overwrite existing bus context activation object
358         until after we've checked that the new activation is
359         valid.
360
361         * bus/main.c 
362         (signal_handler), (handle_reload_watch):
363         don't call exit() on failure, instead make do and keep
364         going.
365         (close_reload_pipe): new function to turn off
366         hangup-causes-config-reload behavior if an unexpected
367         error occurs
368
369 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
370
371         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
372         correctness fix. - Patch from Christian Ehrlicher
373
374 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
375
376         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
377         we should also use it. - Patch from Christian Ehrlicher
378
379 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
380   
381         * dbus-sysdeps-util.c: added win32 related tests
382
383 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
384
385         * dbus/dbus-string.c (_dbus_string_pop_line),
386         bus/desktop-file.c (parse_section_start,
387         parse_comment_or_blank,parse_key_value,): uses
388         _dbus_string_find_eol() to support platform independent eol style.
389
390 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
391
392         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
393         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
394               _dbus_string_find_eol().
395         Approved by: Havoc Pennington.
396
397 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
398
399         * configure.in: Added switch to disable user_database caching.
400
401         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
402         be able disable user_dabase caching.
403
404 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
405
406         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
407         struct. It is unnecessary we have a global one already. Also remove 
408         bus_context_get_user_database function, it is no longer needed.
409         Flush the global database on reload.
410
411         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
412         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
413
414         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
415         Add _dbus_user_database_flush_system. 
416         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
417         Small unrelated change in _dbus_is_a_number: change 
418         _dbus_string_parse_int to _dbus_string_parse_uint. 
419
420         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
421         _dbus_groups_from_uid.
422
423         * bus/policy.c, bus/policy.h: Change call to 
424         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
425         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
426         needs it.
427
428 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
429
430         * bus/signal.c: Fix match_rule_equal errata
431         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
432         <kimmo.hamalainen@nokia.com>)
433
434 2006-11-19  Thiago Macieira  <thiago@kde.org>
435
436         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
437         _dbus_pthread_condvar_wait,
438         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
439         pthread_self() after coming back from a conditional variable
440         wait as well as in one codepath where it was forgotten.
441         Approved by: Havoc Pennington.
442
443 2006-11-17  Havoc Pennington  <hp@redhat.com>
444
445         * update-dbus-docs.sh: allow setting fd.org username via env
446         variable. Make it run autogen with --enable-xml-docs=yes
447         --enable-doxygen-docs=yes so configure will fail if the required
448         tools are missing.
449
450 2006-11-17  Havoc Pennington  <hp@redhat.com>
451
452         * doc/dbus-faq.xml: minor FAQ tweaks
453
454 2006-11-14  Havoc Pennington  <hp@redhat.com>
455         
456         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
457         dbus_get_local_machine_id() to its own file, no substantive
458         changes. There are a couple other things we might want to add that
459         are "misc" so moving out of dbus-connection.[hc] which is big
460         enough already.
461         
462 2006-11-14  Havoc Pennington  <hp@redhat.com>
463
464         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
465         UUID had the timestamp last, but the implementation had it first;
466         move it to last since I think it's a tiny bit nicer (easier to
467         compare at a glance, faster to sort, less code), and will not
468         cause any practical compatibility problems. Also, always convert
469         the timestamp to big endian.
470
471         * doc/dbus-specification.xml: Clean up the docs on the UUID.
472
473         * tools/dbus-uuidgen.1: more prominently say it is not suitable
474         as a replacement for regular uuidgen/RFC4122.
475
476 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
477
478         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
479         the correct value so we don't assert when initalizing recursive threads
480
481         * test/name-test/test-thread-init.c: call dbus_threads_init_default
482         instead of _dbus_threads_init_debug since it is more of a real world
483         test
484
485 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
486
487         * Released 1.0.0
488
489 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
490
491         * AUTHORS: added Peter and Tor of windows porting fame
492
493 2006-11-08  Havoc Pennington  <hp@redhat.com>
494
495         * doc/dbus-specification.xml: add a note about protocol stability
496
497         * doc/TODO: Remove "important for 1.0" section, replace with
498         "important for 1.2" section
499         
500 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
501
502         * README: remove some of the out of date flags
503
504         * doc/TODO: Remove todo items which are done
505
506 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
507
508         * tools/dbus-monitor.c: Handle sigint so we flush stdout
509         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
510
511 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
512
513         * tools/dbus-monitor.1: update the manpage for dbus-monitor
514         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
515
516 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
517
518         * AUTHORS: Update with all people listed in the ChangeLog
519
520 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
521
522         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
523         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
524
525 2006-11-07  Havoc Pennington  <hp@redhat.com>
526
527         * HACKING: Update release instructions to include stuff about
528         stable releases, branching, etc. May not be totally correct,
529         please fix if needed, but keep instructions up-to-date so we do
530         each stable release consistently in the future.
531
532 2006-11-07  Havoc Pennington  <hp@redhat.com>
533
534         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
535         documentation updates. Bump faq/spec versions (not to 1.0; I don't
536         think the spec will be "finished"/1.0 when we ship the 1.0 library).
537
538 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
539
540         * bus/bus.c: Missed patch - pass in the context to the directory watch
541
542 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
543
544         * Released D-Bus 1.0 RC 3(0.95)
545
546 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
547
548         * bus/activation.c (bus_activation_new): don't fail if we can not read
549         the directory as it may not exist
550
551 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
552
553         * bus/config-parser.c (service_dirs_find_dir): use 
554         _dbus_list_get_next_link so we don't get stuck in an infinite loop
555         (start_busconfig_child): move processing of standard_session_servicedirs
556         tags here because they have no content
557         (bus_config_parser_content): check we don't have content in 
558         standard_session_servicedirs tag
559
560 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
561
562         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
563         Packagers need to own this directory
564
565 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
566
567         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
568         <standard_session_servicedirs> tag with a <sevicedir> tag that
569         points to the test service directory
570
571 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
572
573         * configure.in: Add a check for DIR *dirp->dd_fd
574
575         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
576         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
577         of both Solaris and Irix
578
579 2006-11-01  Havoc Pennington  <hp@redhat.com>
580
581         * bus/dbus-daemon.1.in: document standard_session_servicedirs
582
583 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
584
585         * configure.in: expose DBUS_DATADIR
586         
587         * bus/config-parser.c: add the standard_session_servicedirs element
588         to the parser
589         (bus_config_parser_content): process the standard_session_servicedirs
590         element by getting the standard directories from sysdeps and merging
591         them into the service directory list
592         (test_default_session_servicedirs): make sure we get what we expect
593
594         * bus/session.conf.in: replace the servicedir tag with the 
595         standard_session_servicedirs tag
596
597         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
598         dbus-sysdeps.h to avoid circular header dependencies
599
600         * dbus/dbus-sysdeps.h: add the typedef of DBusList
601
602         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
603         which takes a string of directories delimited by colons, parses them 
604         out, appends a suffix and puts them in a list ignoring empty elements
605         (_dbus_get_standard_session_servicedirs): returns the standard 
606         directories for a session bus to look for service activation files
607         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
608         DBUS_DATADIR directories
609
610         * test/data/valid-config-files/many-rules.conf: add the 
611         standard_session_servicedirs tag to the valid config file tests
612
613 2006-10-30  Havoc Pennington  <hp@redhat.com>
614
615         * tools/dbus-launch.1, doc/TODO: capture intent to change the
616         command line options of dbus-launch a bit post 1.0
617
618 2006-10-27  Havoc Pennington  <hp@redhat.com>
619         
620         * dbus/dbus-connection.c (dbus_connection_open_private): document
621         how to choose shared vs. private connections
622
623 2006-10-27  Havoc Pennington  <hp@redhat.com>
624
625         * dbus/dbus-test.c: enclose more of the file in the
626         DBUS_BUILD_TESTS check.
627
628         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
629         DBUS_DISABLE_ASSERT case.
630
631         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
632         that it only works on the server side
633
634         * dbus/dbus-bus.c: add a global lock covering the BusData we
635         attach to each connection
636         (internal_bus_get): lock our access to the BusData
637         (dbus_bus_register): lock the entire registration process
638         with _DBUS_LOCK(bus_datas). If we get the lock and 
639         registration is already complete, silently return (vs. previous
640         behavior of aborting).
641         (dbus_bus_set_unique_name): lock the BusData
642         (dbus_bus_get_unique_name): lock the BusData
643
644 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
645
646         * bus/config-parser.c (service_dirs_find_dir, 
647         service_dirs_append_unique_or_free, 
648         service_dirs_append_link_unique_or_free): New static methods
649         for only appending unique service directory names into
650         the service directory list
651         (merge_included, bus_config_parser_content): Only add unique
652         service directory names into the list
653
654 2006-10-27  Havoc Pennington  <hp@redhat.com>
655
656         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
657         variables volatile, suggested by Thiago. Document struct fields.
658         (PTHREAD_CHECK): remove pthread error checking if assertions are
659         disabled, should reduce the no-assertions case to the bare
660         minimum code.
661
662 2006-10-26  Havoc Pennington  <hp@redhat.com>
663         
664         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
665         to be recursive
666         (_dbus_pthread_mutex_unlock): make it recursive
667         (_dbus_pthread_condvar_wait): save/restore the recursion count
668         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
669
670 2006-10-26  Havoc Pennington  <hp@redhat.com>
671
672         * doc/dbus-specification.xml: clarify the UUID text slightly
673
674         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
675         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
676         in preparation for being able to extend them for e.g. recursive
677         mutexes.
678
679 2006-10-26  Havoc Pennington  <hp@redhat.com>
680
681         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
682         condition variables relate to recursive mutexes.
683         
684         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
685         dbus/dbus-threads.c: Split the platforms-specific thread 
686         implementations into their own files.
687         
688         * dbus/dbus-sysdeps-pthread.c
689         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
690         was backward. Not that anything uses it.
691
692 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
693
694         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
695         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
696         needs to be cleaned up more.
697
698         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
699         up the CREDS issue.
700
701 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
702
703         * configure.in, dbus-1.pc.in: Check to see if thread methods 
704         are in glibc or libpthread and add -lpthread to the link stage 
705         if it is the latter
706
707 2006-10-26  Thiago Macieira  <thiago@kde.org>
708
709         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
710         bug 8780: the connection lock is only required while recording
711         the shared connection, so protect only that code
712         section. Don't require connection_lookup_shared to return a
713         locked connection.
714
715 2006-10-26  Thiago Macieira  <thiago@kde.org>
716
717         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
718         check if get_machine_uuid() returns NULL before proceeding any
719         further: we can't init the X atoms or create a session file
720         name if there is no machine ID.
721         This solves a crash reported by some users if
722         --exit-with-session was used without --autolaunch=<machine-id>
723
724 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
725
726         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
727         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
728
729         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
730         before we run dbus-launch
731
732         * configure.in: define TEST_BUS_BINARY to be the full path to 
733         dbus-daemon in the build root 
734
735 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
736
737         * dbus/Makefile.am:
738         * tools/Makefile.am:
739         * toos/dbus-uuidgen.1:
740                 Move the machine-id file to /var/lib/dbus 
741
742 2006-10-24  David Zeuthen  <davidz@redhat.com>
743
744         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
745         _dbus_assert (thread_init_generation != _dbus_current_generation)
746         not _dbus_assert (thread_init_generation == _dbus_current_generation)
747
748 2006-10-24  Thiago Macieira  <thiago@kde.org>
749
750         * dbus/dbus-sysdeps.h:
751         * dbus/dbus-sysdeps-unix.c: Add function
752         _dbus_make_file_world_readable that chmods a file to 0644.
753
754         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
755         Avoid writing to the static "argv" array, thereby avoiding a
756         COW on the child process.
757
758         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
759         call _dbus_make_file_world_readable on the created file.
760
761 2006-10-23  David Zeuthen  <davidz@redhat.com>
762
763         * dbus/dbus-memory.c: Use atomic variable to protect
764         n_blocks_outstanding otherwise OOM will be reported using SMP on
765         some arches
766         
767         * bus/dispatch.c: Add missing end of line characters
768
769         * bus/desktop-file.c (parse_section_start, parse_key_value) 
770         (bus_desktop_file_load): Propertly handle OOM
771
772         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
773         thread_init_generation equals _dbus_current_generation, not 0
774
775 2006-10-22  Havoc Pennington  <hp@redhat.com>
776
777         * dbus/dbus-connection-internal.h: move prototype of
778         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
779         it isn't in a public header and doesn't end up in the DBusBus
780         group in Doxygen
781
782 2006-10-21  Havoc Pennington  <hp@redhat.com>
783
784         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
785         the tarball if packagers want to run it
786
787         * cleanup-man-pages.sh: Add a script which munges all the internal
788         API man pages out of the Doxygen output. This reduces the size of
789         the installed man pages from 7 to 2 megs, and avoids
790         namespace-polluting pages. Right now (like Doxygen) this script
791         isn't in the build, it's something packagers can do manually.
792
793 2006-10-21  Havoc Pennington  <hp@redhat.com>
794
795         * dbus/dbus-connection.h: don't include the watch/timeout
796         functions in connection section
797
798 2006-10-21  Havoc Pennington  <hp@redhat.com>
799
800         * Documentation! Whee! Doxygen now 100% silent. If you make it
801         angry again, you will be punished.
802         
803 2006-10-21  Havoc Pennington  <hp@redhat.com>
804
805         * More documentation - all public API now documented according to
806         Doxygen
807
808 2006-10-21  Havoc Pennington  <hp@redhat.com>
809
810         * Document a bunch of undocumented stuff
811         
812 2006-10-21  Havoc Pennington  <hp@redhat.com>
813
814         * Clean up Doxygen group markers for public API so Doxygen finds
815         everything (not comprehensively fixed for private API).
816         Means all remaining Doxygen warnings are just about missing docs
817         and thus pretty simple to resolve.
818         
819 2006-10-21  Havoc Pennington  <hp@redhat.com>
820         
821         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
822
823         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
824         as DBUS_GNUC_DEPRECATED
825
826 2006-10-21  Havoc Pennington  <hp@redhat.com>
827
828         * Move all private API into the private Doxygen group sections of
829         the files, so they don't show up in the public API docs
830         
831 2006-10-21  Havoc Pennington  <hp@redhat.com>
832
833         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
834         dbus_message_iter_get_array_len().
835
836         * throughout: documentation improvements.
837
838 2006-10-20  Havoc Pennington  <hp@redhat.com>
839
840         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
841         matter, and the message-loader-breaker thing since nobody is going
842         to do it.  Add an item to 1.0 about supporting recursive locks
843         in dbus_threads_init_default() though, since it should be easy.
844
845         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
846         Fix this in the !dispatch case to avoid busy-looping after
847         disconnection
848
849         * More misc docs improvements
850
851 2006-10-19  Havoc Pennington  <hp@redhat.com>
852
853         * more Doxygen-related fixes (lots of moving things from the
854         public to internal section in dbus-connection.c)
855
856 2006-10-19  Havoc Pennington  <hp@redhat.com>
857
858         * Fix a pile of Doxygen warnings and missing docs
859
860 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
861
862         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
863         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
864         instead of a void *.  kqueue uses this to get the context's loop
865         while the other modules ignore the parameter.  This allows us to
866         avoid platform conditionals
867
868         * bus/bus.c (process_config_postinit): Pass in the context to the 
869         watch
870
871 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
872
873         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
874         when starting the system bus
875
876 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
877
878         * configure.in: More fixups for cross compile (Patch from 
879         Marco Pracucci <development at pracucci dot com>)
880
881 2006-10-17  Havoc Pennington  <hp@redhat.com>
882
883         * tools/dbus-send.c (main): don't close shared connection, fix
884         from Timo Hoenig
885
886 2006-10-17  Havoc Pennington  <hp@redhat.com>
887
888         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
889
890         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
891         since realistically it doesn't look like we'll be changing it
892         anymore.
893
894 2006-10-17  Havoc Pennington  <hp@redhat.com>
895
896         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
897         be used for return_if_fail type warnings; prefixes the pid, and
898         fatal by default.
899
900 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
901
902         * configure.in: Released 1.0 RC 2(0.94)
903         Add check for -fPIC and enable it if available
904
905 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
906
907         * doc/TODO: Remove the check TODO item
908
909 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
910
911         * dbus-transport-socket.c (exchange_credentials):
912         Print out more detailed errors if reading or sending
913         credentials fail (Patch from Julio M. Merino Vidal 
914         <jmmv at NetBSD dot org>)
915
916 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
917
918         * configure.in: when checking for posix getpwnam_r assume true
919         for cross compiles
920
921 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
922
923         * configure.in: Check for gethostbyname first before we check for it
924         in libnsl.  On gnu systems it is implemeneted 
925
926 2006-10-13  Havoc Pennington  <hp@redhat.com>
927
928         * dbus/dbus-connection.c
929         (dbus_connection_send_with_reply_and_block): fix to handle closed
930         connections, from Tambet Ingo bug #8631
931
932 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
933
934         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
935
936 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
937
938         * test/name-test/Makefile.am: don't link against both libdbus and
939         libdbus-convenience
940
941 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
942
943         * configure.in: check for dirfd even if it is a macro
944         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
945
946 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
947
948         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
949         avoid using dirfd on systems that don't have dirfd 
950         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
951
952 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
953
954         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
955         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
956
957         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
958         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
959         macro because _dbus_abort calls it
960
961         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
962         works
963
964 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
965
966         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
967         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
968
969 2006-10-02  Thiago Macieira  <thiago@kde.org>
970
971         * tools/dbus-launch.c (main): make it complain and abort
972         execution in case an unknown option is given. Also, process
973         the '--' argument as the end of arguments.
974
975 2006-10-01  Havoc Pennington  <hp@redhat.com>
976
977         * tools/dbus-launch.c (print_variables): if no syntax is given,
978         don't print something that's sort-of-half-sh-syntax, just print
979         a plain key-value pairs thing.
980
981         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
982         the local machine representation (but still have the hostname in
983         the display). Remove the hostname from the display if it is
984         localhost. Change session files to be named
985         ~/.dbus/session-bus/machine-display. Change X atoms to be
986         underscore-prefixed so nobody whines about ICCCM compliance.
987         Otherwise name them the same as the env variables.
988         Change session file format to include key-value pairs and an
989         explanatory comment. Keys are the same as the env variables.
990         (set_address_in_x11): X property format can't depend on
991         sizeof(pid_t) on a particular machine, fix to always be 32 bits
992
993         * tools/dbus-launch.c: make --autolaunch take a machine id
994         argument. If --autolaunch is used with a program to run, complain
995         for now (but add a FIXME). Also, don't look for existing bus if 
996         there's a program to run (but add a FIXME).
997
998         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
999         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
1000         just to get this, and avoids duplicating uuid-reading code).
1001
1002         * tools/dbus-launch.1: clarify various things
1003         
1004 2006-10-01  Havoc Pennington  <hp@redhat.com>
1005
1006         * test/test-service.c (path_message_func): remove broken extra
1007         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
1008
1009         * test/test-shell-service.c (path_message_func): same fix
1010         
1011         * dbus/dbus-connection.c
1012         (_dbus_connection_get_dispatch_status_unlocked): break up the
1013         function a little for clarity and fix the notification of
1014         dbus-bus.c to not require dispatch to be complete
1015
1016         * dbus/dbus-connection.c (dbus_connection_unref): improve the
1017         warning when you try to finalize an open connection.
1018         
1019 2006-10-01  Havoc Pennington  <hp@redhat.com>
1020
1021         * dbus/dbus-bus.c
1022         (internal_bus_get): only weak ref the connection; this means 
1023         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
1024         called safely in any context
1025         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
1026         unref
1027
1028         * dbus/dbus-connection.c
1029         (_dbus_connection_get_dispatch_status_unlocked): move
1030         _dbus_bus_notify_shared_connection_disconnected_unlocked here
1031         when queuing Disconnected instead of when the Disconnected message
1032         arrives, so dbus_bus_get() won't return closed connections.
1033         
1034 2006-10-01  Havoc Pennington  <hp@redhat.com>
1035
1036         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
1037         Add a hack to make DBusNewConnectionFunction work right.
1038
1039         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
1040         the hack here. Also, fix the todo about refcount leak.
1041         
1042         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1043         and use the hack here
1044         
1045         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
1046         "shareable" flag; this was completely broken, since it meant 
1047         dbus_connection_open() returned a connection of unknown
1048         shared-ness. Now, we always hold a ref on anything opened 
1049         as shareable.
1050
1051         Move the call to notify dbus-bus.c into
1052         connection_forget_shared_unlocked, so libdbus consistently forgets
1053         all its knowledge of a connection at once. This exposed numerous
1054         places where things were totally broken if we dropped a ref inside
1055         get_dispatch_status_unlocked where
1056         connection_forget_shared_unlocked was previously, so move
1057         connection_forget_shared_unlocked into
1058         _dbus_connection_update_dispatch_status_and_unlock. Also move the
1059         exit_on_disconnect here.
1060
1061         (shared_connections_shutdown): this assumed weak refs to the
1062         shared connections; since we have strong refs now, the assertion 
1063         was failing and stuff was left in the hash. Fix it to close
1064         still-open shared connections.
1065         
1066         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
1067         debug pipe connections
1068         
1069         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
1070         dbus-bus.c if the closed connection is in fact shared
1071         (_dbus_connection_close_possibly_shared): rename from 
1072         _dbus_connection_close_internal
1073         (dbus_connection_close, dbus_connection_open,
1074         dbus_connection_open_private): Improve docs to explain the deal
1075         with when you should close or unref or both
1076
1077         * dbus/dbus-bus.c
1078         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
1079         from _dbus_bus_check_connection_and_unref_unlocked and modify to
1080         loop over all connections
1081
1082         * test/test-utils.c (test_connection_shutdown): don't try to close
1083         shared connections.
1084
1085         * test/name-test/test-threads-init.c (main): fix warnings in here
1086
1087         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
1088         env variable to cause blocking waiting for gdb; drop
1089         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
1090         unconditionally.
1091
1092         * configure.in: add -export-dynamic to libtool flags if assertions enabled
1093         so _dbus_print_backtrace works.
1094
1095         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
1096         instead of _dbus_verbose to print the backtrace, and diagnose lack 
1097         of -rdynamic/-export-dynamic
1098         
1099 2006-09-30  Havoc Pennington  <hp@redhat.com>
1100
1101         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
1102         (internal_bus_get): fix screwy code formatting. whoever committed
1103         that was not paying attention!
1104
1105 2006-09-30  Havoc Pennington  <hp@redhat.com>
1106
1107         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
1108         reflect addition of interfaces.
1109
1110         * doc/dbus-specification.xml: describe a new
1111         org.freedesktop.DBus.Peer.GetMachineId method
1112
1113         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
1114         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
1115         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
1116         at end of skip_white
1117         (_dbus_string_chop_white): new function
1118
1119         * bus/connection.c (bus_connections_setup_connection): call
1120         dbus_connection_set_route_peer_messages.
1121
1122         * dbus/dbus-connection.c
1123         (_dbus_connection_peer_filter_unlocked_no_update): modify to
1124         support a GetMachineId method.
1125
1126         Also, support a new flag to let the bus pass peer methods through
1127         to apps on the bus, which can be set with
1128         dbus_connection_set_route_peer_messages.
1129
1130         Finally, handle and return an error for anything unknown on the
1131         Peer interface, which will allow us to extend the Peer interface
1132         in the future without fear that we're now intercepting something
1133         apps were wanting to see.
1134         
1135         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
1136         dbus/dbus-uuidgen.c
1137
1138         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
1139         binary here, since most of the code is already in libdbus
1140
1141         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
1142         uuid from the system config file
1143
1144         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
1145         (_dbus_read_uuid_file_without_creating) 
1146         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
1147         uuid-related functions, partly factored out from dbus-server.c
1148
1149         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
1150         DBUS_ERROR_FILE_EXISTS instead of EEXIST
1151
1152         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
1153
1154         * tools/dbus-cleanup-sockets.1: explain what the point of this
1155         thing is a bit more
1156
1157         * autogen.sh (run_configure): add --config-cache to default
1158         configure args
1159
1160         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
1161         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
1162
1163         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
1164         don't try to save address, fixes crash in make check
1165         
1166 2006-09-30  Thiago Macieira  <thiago@kde.org>
1167
1168         * configure.in: add DBUS_BINDIR as a #define to C source code.
1169
1170         * tools/dbus-launch.c
1171         * tools/dbus-launch.h
1172         * tools/dbus-launch-x11.c:
1173         * tools/dbus-launch.1: Add the --autolaunch option to
1174         dbus-launch, which makes it scan for an existing session
1175         started with --autolaunch. With that option, it also creates
1176         an X11 window and saves the bus address and PID to it.
1177
1178         * dbus/dbus-sysdeps.h:
1179         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
1180         a function that runs "dbus-launch --autolaunch" to retrieve
1181         the running D-Bus session address (or start one if none was running)
1182
1183         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
1184         address protocol, which tries to get the running session from
1185         dbus-launch.
1186
1187         * dbus/dbus-bus.c:
1188         * dbus/dbus-internals.h: Make "autolaunch:" be the default
1189         D-Bus session bus address.
1190
1191         * dbus/dbus-connection.c: Fix horrible typo in error message.
1192
1193 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
1194
1195         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
1196
1197 2006-09-17  Havoc Pennington  <hp@redhat.com>
1198
1199         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1200         fix so that if unix_user_function is set on windows, we still
1201         do the default check that the auth identity matches the bus identity
1202
1203 2006-09-16  Havoc Pennington  <hp@redhat.com>
1204
1205         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
1206         to _dbus_transport_open_platform_specific,
1207         _dbus_transport_open_socket,
1208         and _dbus_transport_open_debug_pipe
1209
1210         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
1211
1212 2006-09-16  Havoc Pennington  <hp@redhat.com>
1213
1214         Attempt auditing public API to remove all cases where a Unix
1215         function returns weird emulated goo to Windows. This probably 
1216         breaks the bus daemon on Windows, to fix it again we may 
1217         need to stop processing unix-specific config options on Windows,
1218         and may need to add Windows-specific public API or config options.
1219         
1220         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
1221         to reflect added interfaces; should not break soname.
1222         
1223         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
1224         not invoke unix user function on Windows. Kind of a hacky fix, but 
1225         we don't want a "unix uid" leaking out on Windows.
1226
1227         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
1228         to get the socket fd on Windows or UNIX
1229         (dbus_connection_get_unix_fd): make this always fail on Windows
1230
1231 2006-09-16  Havoc Pennington  <hp@redhat.com>
1232
1233         * dbus/dbus-server.c (dbus_server_listen): change how this works
1234         to be able to delegate to a set of handlers that can succeed,
1235         fail, or choose not to handle. Allows us to have 
1236         dbus_server_listen_platform_specific.
1237
1238         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
1239         factor out the tcp socket stuff to be used on windows, leaving
1240         unix domain socket only in dbus-socket-unix.c
1241
1242         * dbus/dbus-transport-socket.c
1243         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
1244         stuff to be used on windows, leaving unix domain socket only 
1245         in dbus-transport-unix.c
1246
1247         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
1248         temporary hack to be sure this fails on windows
1249         (dbus_connection_get_unix_process_id): ditto
1250
1251 2006-09-16  Havoc Pennington  <hp@redhat.com>
1252
1253         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1254         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1255         _dbus_open_socket so the domain/type/protocol from system headers
1256         are not required. This is kind of pointless though unless we move
1257         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1258         sysdeps-unix.c, which would mean adding a wrapper around
1259         bind/listen/etc.
1260         Also, add DBusError to the socket-opening functions so they 
1261         don't require use of errno.
1262
1263 2006-09-16  Havoc Pennington  <hp@redhat.com>
1264
1265         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1266         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1267
1268         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1269         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1270         functions specifically for sockets only, and move generic 
1271         read/write/open/close into unix-specific code.
1272
1273 2006-09-14  Havoc Pennington  <hp@redhat.com>
1274
1275         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1276         complaint about accessing revents when poll returns 0, from Julian Seward.
1277
1278 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1279
1280         * Released 1.0 RC 1 (0.93) 
1281
1282 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1283
1284         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1285         use _dbus_close instead of close
1286
1287 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1288
1289         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1290         credentials.  Fixes "external" authentication under e.g. NetBSD
1291         which does not support any other socket credentials mechanism.
1292         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1293
1294 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1295
1296         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1297         dbus_threads_init and be used by the dbus mutex functions to
1298         avoid deadlocks.
1299
1300         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1301
1302 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1303
1304         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1305         use threadsafe readdir_r instead of readdir
1306
1307 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1308
1309         * dbus-threads.c (dbus_threads_init_default): New method for
1310         initializing the internal thread implementation (Patch from
1311         Alexander Larsson <alexl at redhat dot com>)
1312
1313 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1314
1315         * remove a bunch of todo items from the 1.0 list
1316
1317 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1318
1319         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1320         key not found
1321
1322 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1323
1324         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1325         complex debugging code
1326
1327         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1328         between the test suite ifdefs
1329         (_dbus_verbose_bytes): return if verbosity is not enabled 
1330
1331 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1332
1333         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1334         remove DBusMark
1335
1336 2006-09-10  Havoc Pennington  <hp@redhat.com>
1337
1338        patch mostly by Peter Kümmel, bug #8211
1339         
1340         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1341         unix-specific stuff in dbus-sysdeps.c
1342
1343         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1344         and move unix-specific stuff to dbus-sysdeps-unix.c
1345
1346         * configure.in: check HAVE_ERRNO_H
1347         
1348 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1349
1350         * bus/test-main.c (main): Initialize threading during tests
1351
1352         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1353         Unlock connection on error
1354         (generate_local_error_message): static method for generating
1355         an error message when we don't have a message to reply to
1356         (_dbus_connection_block_pending_call): Send a disconnect error
1357         instead of just a timeout (NULL) when the bus gets disconnected
1358         while blocking for a reply.
1359         
1360 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1361
1362         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1363         filters (Patch from Kimmo Hämäläinen 
1364         <kimmo dot hamalainen at nokia dot com>)
1365
1366 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1367
1368         * dbus/dbus-connection-internal.h: Add prototype for 
1369         _dbus_connection_test_get_locks to remove warning
1370
1371 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1372
1373         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1374         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1375         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1376
1377 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1378
1379         * Clean up close calls to use _dbus_close (Patch from 
1380         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1381
1382 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1383
1384         * doc/TODO:
1385         - Remove pending call locking todo item
1386         - dbus_connection_open now holds hard ref.  Remove todo item
1387         - do proper locking on _dbus_bus_check_connection_and_unref
1388           and handle DBUS_BUS_STARTER. Remove todo item
1389         - Warn on closing of a shared connection.  Remove todo item
1390
1391         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1392         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1393         so we don't get the warning when closing shared connections
1394
1395         * test/test-service.c, test/test-shell-service.c: Applications
1396         don't close shared connections themselves so we unref instead of
1397         close
1398
1399         * test/test-utils.c (test_connection_shutdown): Close the connection
1400
1401         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1402         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1403         method on a locked connection.  
1404         Make sure we call _dbus_connection_unref_unlocked instead of 
1405         dbus_connection_unref also.
1406         Handle DBUS_BUS_STARTER correctly
1407
1408         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1409         Mark as shared and hard ref the connection
1410         (connection_forget_shared_unlocked): Remove the hard ref from the 
1411         connection
1412         (_dbus_connection_close_internal_and_unlock):  New internal function
1413         which takes a locked connection and unlocks it after closing it
1414         (_dbus_connection_close_internal): New internal function which acts
1415         like the origonal dbus_connection_close method by grabbing a connection
1416         lock and calling _dbus_connection_close_internal_and_unlock
1417         (dbus_connection_close): Public close method, warns when the app
1418         trys to close a shared connection
1419
1420 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1421
1422         * bus/driver.c:
1423         (bus_driver_generate_introspect_string): New method for populating
1424         a DBusString with the introspect data
1425         (bus_driver_handle_introspect): Move introspect generation code to 
1426         bus_driver_generate_introspect_string
1427
1428         * bus/main.c:
1429         (introspect): New function which prints out the intropect data and
1430         exits
1431         (main): Add a --introspect switch
1432
1433 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1434
1435         * doc/TODO: Removed dtd publishing item.  
1436         It seems the dtd has already been added at
1437         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1438
1439 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1440
1441         * doc/TODO, various source files: Audited todo's and FIXME's and
1442         prepended the ones we should be looking at with 1.0.  Those
1443         prepended with 1.0? need clerification or might not be needed
1444         for 1.0
1445
1446 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1447
1448         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1449         NULL in the public API (Patch from Kimmo Hämäläinen 
1450         <kimmo dot hamalainen at nokia dot com>)
1451
1452 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1453
1454         * configure.in: Fix for OS-X compile time endian issues (patch from
1455         Benjamin Reed <ranger at befunk dot com>)
1456
1457 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1458
1459         * configure.in: Check for no-common compiler flag (OS-X fix from
1460         Benjamin Reed <ranger at befunk dot com>)
1461
1462 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1463
1464         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1465         <fcrozat at mandriva dot com>)
1466
1467 2006-08-29  Havoc Pennington  <hp@redhat.com>
1468
1469         * test/test-service.c (path_message_func): fix lack of return value
1470
1471         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1472         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1473         any more sense than on anything else in this file.
1474         (_dbus_get_tmpdir): add const to return value, and keep the
1475         results of the various getenv around in a static variable.
1476
1477 2006-08-29  Havoc Pennington  <hp@redhat.com>
1478
1479         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1480         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1481
1482 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1483
1484         * test/Makefile.am: change find to use syntax that works with non
1485         gnu versions of find
1486
1487 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1488
1489         * dbus/dbus-transport.c: fix invalid deref when checking if
1490         a vtable method exists (Patch from Christian Ehrlicher 
1491         <ch dot ehrlicher at gmx dot de>)
1492
1493 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1494
1495         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1496         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1497         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1498         <bernard at brenda-arkle dot demon dot co dot uk>)
1499
1500 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1501
1502         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1503         default case
1504
1505 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1506
1507         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1508         it works on any system providing this interface, not only FreeBSD.
1509         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1510
1511 2006-08-20  Havoc Pennington  <hp@redhat.com>
1512
1513         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1514         the docs
1515
1516 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1517
1518         * Released 0.92 
1519
1520 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1521
1522         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1523         to reflect the init late change
1524
1525         * bus/bus.c (bus_context_new): Check user before we fork so we can
1526         print out an error message a user will be able to see
1527
1528 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1529
1530         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1531
1532         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1533         Add two more global locks for use on windows platforms.  These are
1534         unused on non-windows platforms but are not ifdefed out to avoid
1535         potential bugs (i.e. the few bytes lost does not warrent the extra
1536         maintanence and complexity that having seperate sets of locks would
1537         cause)
1538
1539 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1540
1541         * bus/services.c (bus_registry_acquire_service): Return an error
1542         when an application tries to register the org.freedesktop.DBus Bus Name
1543
1544         * bus/services.c (bus_registry_release_service): Return an error
1545         when an application tries to release the org.freedesktop.DBus Bus Name
1546
1547 2006-08-17  Alp Toker  <alp@atoker.com>
1548
1549         * doc/dbus-specification.xml: Fix some minor typos.
1550
1551 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1552
1553         * configure.in: use $with_init_scripts instead of $operating_system
1554         to determine where to store the pid since the init scripts manipulate 
1555         the pid file (patch from Marcelo Ricardo Leitner 
1556         <marcelo dot leitner at terra dot com dot br>.  
1557
1558 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1559
1560         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1561         static DBusList *uninitialized_condvar_list to support new late 
1562         initialization threading model.  In this model threads can be initialized
1563         even after the D-Bus API has been used but still needs to be initialized 
1564         before the second thread has been started.  Mutexes and condvar addresses
1565         are stored in the two static lists and are replaced with actuall locks
1566         when threads are initalized.
1567         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1568         the location into the static list
1569         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1570         from the static list and freeing the mutex
1571         (_dbus_condvar_new_at_location): New method for creating a conditional 
1572         variable and placing the location into the static list
1573         (_dbus_condvar_free_at_location): New method for removing a conditional
1574         variable location from the static list and freeing the conditional variable 
1575         (init_uninitialized_locks): Atomic method which goes through the static 
1576         lists of mutex and condvar location and updates them with actuall locks
1577         (init_global_locks): changed to init_locks
1578         
1579         * dbus/dbus-connection.c:
1580         (_dbus_connection_test_get_locks): New method for tests to check connections
1581         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1582         condvar API
1583         (dbus_connection_allocate_data_slot): Pass in the global lock address
1584         to _dbus_data_slot_allocator_alloc
1585
1586         * dbus/dbus-dataslot.c:
1587         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1588         instead of the mutex itself
1589
1590         * dbus/dbus-message.c:
1591         (dbus_message_allocate_data_slot): Pass in the global lock address
1592         to _dbus_data_slot_allocator_alloc
1593
1594         * dbus/dbus-pending-call.c:
1595         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1596         to _dbus_data_slot_allocator_alloc
1597
1598         * dbus/dbus-server.c:
1599         (_dbus_server_init_base): Use the new at_location mutex API
1600         (dbus_server_allocate_data_slot): Pass in the global lock address
1601         to _dbus_data_slot_allocator_alloc
1602
1603         * test/name-test/test-threads-init.c: New test case for late thread
1604         initialization
1605
1606 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1607
1608         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1609         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1610         causes compile problems when asserts are turned off
1611         Keeping _dbus_warn for printing out the message so even if
1612         asserts are turned off the user gets the messages that something is 
1613         wrong 
1614
1615 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1616
1617         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1618
1619         * bus/services.c (bus_service_list_queued_owners):
1620         Add a pointer cast to fix compiler warning
1621
1622         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1623         return a NULL instead of FALSE since the return type
1624         is not expecting a boolean
1625
1626         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1627         Remove unused variable
1628
1629         * dbus/dbus-marshal-recursive-util.c (node_new):
1630         return a NULL instead of FALSE since the return type
1631         is not expecting a boolean
1632
1633         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1634         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1635         because we are expecting a pointer not a boolean
1636
1637         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1638         add void as the parameter so some compilers
1639         don't complain
1640
1641         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1642           _dbus_transport_new_for_tcp_socket):
1643         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1644         because we are expecting a pointer not a boolean
1645
1646         * test/shell-test.c (test_command_line):
1647         cast the second argument to _dbus_list_append to avoid compiler
1648         warnings
1649
1650         * test/test-names.c (main): remove unused variable
1651
1652         * test/test-service.c (check_hello_from_self_reply):
1653         Initialize echo_message and echo_reply to NULL
1654         
1655         * test/test-shell-service.c (handle_echo):
1656         Remove unused variable and cast the third parameter passed to
1657         dbus_connection_get_object_path_data to avoid compiler warrnings
1658
1659         * test/name-test/test-names.c (clear_message_queue):
1660         Remove unused function
1661
1662         * test/name-test/test-pending-call-dispatch.c:
1663         Fix format string in printf
1664
1665
1666 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1667
1668         * dbus/dbus-bus.c:
1669         * test/name-test/test-names.c:
1670         Remove test method dbus_bus_connection_get_unique_name because 
1671         we already have public method dbus_bus_get_unique_name that 
1672         does the exact same thing
1673
1674 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1675
1676         * dbus/dbus-signature.c:
1677         fix typos in Julio's previous patch which cause make check to fail
1678
1679 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1680
1681         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1682         In any case it was wrong since this is a test checking to see if
1683         address parsing is correct.  There was no need to get the true
1684         tmp directory.  
1685
1686 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1687
1688         * dbus/dbus-macros.h: Revert the addition of stddef.h
1689         as we should not be adding it to library headers 
1690
1691 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1692
1693         * dbus/dbus-signature.c:
1694         Fix the unit tests so that they work if assertions are not enabled.
1695         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1696
1697 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1698
1699         * tools/run-with-tmp-session-bus.sh:
1700         * test/name-test/run-test.sh:
1701         Remove bashisms (patch from Julio M. Merino Vidal
1702         <jmmv at NetBSD dot org>)
1703
1704 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1705
1706         * configure.in: add a version (>= 2.6.0) check for libxml2
1707
1708 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1709
1710         * configure.in: make sure the compiler supports -Wfloat-equal
1711         
1712         * bus/dir-watch-dnotify.c: move functional code after 
1713         variable declerations (C99 fix)  (patches from Jens Granseuer
1714         <jensgr at gmx dot net>
1715
1716 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1717
1718         * dbus/dbus-macros.h:
1719         add #include <stddef.h> so that Sun compilers don't complain about
1720         the defining NULL
1721
1722 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1723
1724         * dbus/dbus-sysdeps.c:
1725         * dbus/dbus-address.c:
1726         * bus/activation.c:
1727         * test/shell-test.c:
1728         don't hardcode tmp directory (patch from Dave Meikle 
1729         <dmk at davemeikle dot co dot uk>)
1730
1731 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1732
1733         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1734         Change an assert to a detailed warning and abort.  
1735         When allocator->lock != mutex it indicates that the user has failed
1736         to initalize threads before using the D-Bus library.  This warning
1737         helps the user identify the issue and fix their app.
1738
1739 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1740
1741         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1742         with cleanups of bugs found from Coverity reports:
1743
1744         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1745         close the file on error to avoid a leak
1746
1747         * bus/expirelist.c (bus_expire_list_test):
1748         Check for NULL on dbus_new0
1749
1750         * bus/activation.c (update_directory):
1751         remove dead code
1752
1753         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1754         Fix some leaks
1755
1756         * bus/bus.c (process_config_every_time):
1757         Fixed a leak
1758
1759         * bus/desktop-file.c (parse_key_value):
1760         Fixed leak
1761
1762         * bus/selinux.c (bus_selinux_id_table_insert):
1763         Fixed leak
1764
1765 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1766
1767         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1768         remove dead code
1769
1770 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1771
1772         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1773         #!/bin/bash
1774
1775 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1776
1777         * Doxyfile.in: fix the INPUT line so we can generate docs 
1778         when sourcedir != builddir (patch from Cygwin Ports maintainer
1779         <yselkowitz at users dot sourceforge dot net>
1780
1781 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1782
1783         * dbus/dbus-sysdeps.h:
1784         * dbus/dbus-sysdeps.c: 
1785         * dbus/dbus-string.c: 
1786         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1787         GLib's function which does the same thing
1788
1789         * configure.in:
1790         * bus/Makefile.am:
1791         * bus/dir-watch-default.c:
1792         * bus/dir-watch-dnotify.c:
1793         * bus/dir-watch-kqueue.c:
1794         Add kqueue directory watching for freebsd and split the directory
1795         watching code into seperate files per method/arch
1796         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1797
1798 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1799
1800         * configure.in:
1801         * tools/Makefile.am:
1802         * tools/dbus-launch.c:
1803         * bus/Makefile.am:
1804         allow --with-dbus-daemondir switch to be used to make the
1805         daemon install to a seperate bindir like /usr/libexec
1806         (patch from Brian Cameron <brian dot cameron at sun dot com)
1807
1808 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1809
1810         * bus/Makefile.am (install-data-hook): removed the slash after 
1811         $(DESTDIR) so we don't get the double slash which does not work
1812         in windows (patch from Andras Porjesz 
1813         <andras dot porjesz at siemens dot com>)
1814
1815 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1816
1817         * dbus/dbus-sysdeps.h:
1818         * dbus/dbus-sysdeps.c: 
1819           add _dbus_printf_length (patch from Peter Kümmel 
1820           <syntheticpp at gmx dot net>)
1821
1822 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1823
1824         * dbus/dbus-internals.c: unistd.h is not used 
1825         (_dbus_verbose_real): only enable verbose printing 
1826         if DBUS_VERBOSE environment var is set to '1'
1827         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1828
1829 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1830
1831         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1832         so we still compile on older gcc (patch from Frederic Peters 
1833         <fpeters at 0d dot be>
1834
1835 2006-08-04  Havoc Pennington  <hp@redhat.com>
1836
1837         * configure.in: add -Wdeclaration-after-statement
1838
1839         * dbus/dbus-connection.c: change all the pending call stuff to
1840         reflect the fact that pending call operations use the connection
1841         lock
1842
1843         * dbus/dbus-pending-call.c: add locking here
1844
1845         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1846         field const consistent with how message field is done
1847
1848 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1849
1850         * s/D-BUS/D-Bus/g
1851
1852 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1853
1854         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1855         <in7y118 at public.uni-hamburg dot de> - fix invalid
1856         read/write reported by valgrind
1857
1858 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1859
1860         * Released 0.91
1861
1862 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1863
1864         * dbus/dbus-connection.c:
1865         (_dbus_connection_attach_pending_call_unlocked):
1866         (connection_timeout_and_complete_all_pending_calls_unlocked):
1867         Make sure we set timeout_added on pending calls to FALSE when
1868         we remove the timeout from the connection
1869
1870 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1871
1872         * Removed some extra bindings stuff lingering around (thanks timo)
1873         * dbus-pendingcall.c (_dbus_pending_call_new): 
1874         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1875         when we tried to take a lock on an already locked connection
1876
1877 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1878
1879         * Released 0.90
1880
1881 2006-07-17  Havoc Pennington  <hp@redhat.com>
1882
1883         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1884         ints, reported by Owen Taylor
1885
1886 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1887
1888         * doc/TODO:
1889         * dbus/dbus-bus.c:
1890         * dbus-errors.c:
1891         * dbus/dbus-marshal-validate.c:
1892           Removed TODO items which were fixed or are no longer relevent
1893
1894 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1895
1896         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1897         Remove stray files from the stripped bindings
1898
1899 2006-07-16  Havoc Pennington  <hp@redhat.com>
1900
1901         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1902         Improve the error message on reply timeout
1903
1904 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1905
1906         * Remove all bindings
1907
1908 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1909
1910         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1911         and set pending_reply out arg to NULL is connection is disconnected
1912         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1913         static method for cleaning up pending calls on disconnect
1914         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1915         calls queued timeouts on disconnect 
1916
1917          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1918         Remove 
1919
1920 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1921
1922         * bus/activation.[ch] (bus_activation_list_services): new function to 
1923         get the list of services that can be activated
1924
1925         * bus/dispatch.c: test coverage for the new bus method
1926         ListActivatableNames
1927
1928         * bus/driver.c: new bus method ListActivatableNames to get the list of
1929         services that can be activated
1930
1931         * doc/dbus-specification.xml: ListActivatableNames method documentation
1932
1933 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1934         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1935         source files
1936
1937 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1938         * dbus/dbus-message-factory.c:
1939         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1940
1941 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1942         * dbus/dbus-connection-internal.h:
1943         * dbus/dbus-connection.c:
1944         * file dbus/dbus-pending-call.c:
1945         * dbus/dbus-pending-call.h:
1946         Make DBusPendingCall an opaque type even to D-Bus internals
1947
1948 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1949
1950         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1951         connection_close
1952
1953         * dbus/dbus-connection.c: include dbus-bus.h
1954         (_dbus_connection_read_write_dispatch): make static
1955
1956 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1957
1958         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1959         function
1960         (dbus_connection_dispatch): On disconnect unref any shared connections
1961
1962         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1963         for cleaning up shared connections on disconnect
1964         (internal_bus_get): get a hard refrence to shared connections when
1965         they are created
1966         
1967         * doc/TODO: Remove items which are no longer relevent or have been fixed
1968         Split 1.0 todo items with a 0.90 freeze todo list
1969  
1970 2006-06-14  Ross Burton  <ross@openedhand.com>
1971
1972         * glib/dbus-gobject.c:
1973         Free a leaking GArray (surely not!) in dbus_g_method_return.
1974
1975 2006-06-14  Ross Burton  <ross@openedhand.com>
1976
1977         * tools/Makefile.am:
1978         * tools/dbus-monitor.c:
1979         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1980         Habacker).
1981         
1982 2006-06-14  Ross Burton  <ross@openedhand.com>
1983
1984         * tools/dbus-print-message.c:
1985         Also print the object path when outputting signals or method calls.
1986
1987 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1988
1989         * qt/src/Makefile.am: install the qdbus.h header.
1990         This allows people to actually use the installed code.
1991
1992 2006-06-12  Ross Burton  <ross@openedhand.com>
1993
1994         * glib/dbus-gproxy.c:
1995         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1996
1997 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1998
1999         * Released 0.62
2000
2001 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2002
2003         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
2004         break pedantic builds. Closes bug 6043 (patch approved by
2005         Havoc back in February).
2006
2007 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2008
2009         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
2010         that took a QDBusMessage parameter.
2011         * qt/src/qdbusbus.h: Add a default flag for RequestName.
2012         * qt/tools/dbus.cpp: Don't use automatic call because we might
2013         be calling an async method: request a reply.
2014
2015 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
2016
2017         * test/qt/*: Update the testcases, including testing the new
2018         functionality of sending null QByteArray and QString over the
2019         bus. Add new headertest test and restore the old
2020         qdbusxmlparser test.
2021
2022 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
2023
2024         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
2025         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
2026
2027         * qt/examples/Makefile.am:
2028         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
2029         form.
2030
2031         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
2032         QByteArray() (nulls) over the bus.
2033         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
2034         the one that has the signature suffix stripped.
2035         * qt/src/qdbusreply.h: Make some methods const.
2036
2037 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
2038
2039         Patch from Timo Hoenig <thoenig@suse.de>.
2040
2041         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
2042         required during build to EXTRA_DIST.
2043         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
2044         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
2045         * configure.in: Fix "make dist", take care that the Makefile for
2046         qt/dbus is being generated.
2047
2048 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2049
2050         * bus/bus.c: Fix eavesdropping on method calls
2051
2052 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
2053
2054         * configure.in:
2055         * dbus/dbus-userdb-util.c:
2056         Add Solaris console owner patch from Artem Kachitchkine
2057
2058 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
2059
2060         * qt/Makfile.am:
2061         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
2062         reorganisation. Thanks to Timo Hoenig for pointing this out.
2063
2064 2006-06-06  Robert McQueen  <robot101@debian.org>
2065
2066         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
2067           call to dbus_g_type_get_struct.
2068
2069 2006-06-06  Robert McQueen  <robot101@debian.org>
2070
2071         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
2072           pointers were put into a GPtrArray-based specialised collection, and
2073           then freed along with the array. GValues which you add into
2074           collections or maps which have the NOCOPY flag set are assumed to not
2075           belong to the caller, so rather than the existing pointer-stealing
2076           semantics, they are copied instead. Given that the main consumers of
2077           this abstraction are the bindings themselves, I don't think this is
2078           too bad, but others should watch their choice of take vs set_static.
2079
2080 2006-06-06  Robert McQueen  <robot101@debian.org>
2081
2082         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
2083           of g_slist_prepend not being used. Fixed copying of slist-based
2084           specialised collections, then wrote a test case and found that it was
2085           all broken. Went on to fix iterating and appending too. Good thing
2086           nobody uses this code yet.
2087
2088 2006-06-06  Robert McQueen  <robot101@debian.org>
2089
2090         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
2091           the iterators use gvalue_take_ptrarray_value (the GValues themselves
2092           are discarded without unsetting, so it makes no difference whether
2093           we take or set_static). Remove cases for G_TYPE_POINTER because
2094           there really is nothing useful we can do with them in our
2095           specialised types - we *need* boxed copy/free functions at the very
2096           least.
2097
2098 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
2099
2100         * qt/dbus: Add directory. I had forgotten to add this
2101         yesterday after the move...
2102
2103         * qt/examples/Makefile.am:
2104         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
2105
2106         * qt/tools/Makefile.am:
2107         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
2108         Added feature to get and set properties.
2109         Added validation of service, object path and interface names.
2110
2111         * qt/tools/dbusidl2cpp.cpp: Two new features:
2112         1) Allow specifying both the header and the source file names,
2113         by separating them with a colon.
2114         2) Don't write an interface output if the -p switch wasn't
2115         given, but the -a was.
2116
2117         * qt/src/*: Fix usage of Iterators and ConstIterators.
2118         Fix shadowing of variables by other variables (-Wshadow).
2119         Fix keyword-cleanliness in headers.
2120         Fix ASCII-cast (QLatin1String, QLatin1Char).
2121         Fix validation of member names.
2122         Add extra checking of introspection data during XML parsing.
2123         Various bug fixes.
2124
2125 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2126
2127         * dbus/Makefile.am:
2128         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
2129         qt/dbus/qdbus.h now.
2130
2131 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2132
2133         * configure.in: Make --disable-qt actually do
2134           something. Patch inspired by Zack Rusin.
2135
2136 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2137
2138         * qt/: Update to Subversion r548032.
2139         This includes a big reorganisation of the files inside the
2140         subdir.
2141
2142 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
2143
2144         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
2145         clear:  
2146         "Failed to connect to socket <host>:<port> <error>" instead of
2147         "Failed to connect to socket <host>: <error>:<port>"
2148
2149         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
2150         for a tcp transport. 
2151
2152 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2153
2154         * qt/*: Update the QtDBus bindings up to revision 546310 in
2155         Subversion.
2156         This adds the dbuscpp2xml tool, that parses a C++ header and
2157         outputs a D-BUS Introspection XML.
2158
2159 2006-05-21  Havoc Pennington  <hp@redhat.com>
2160
2161         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
2162         is not NULL when it shouldn't be. Also a couple of possible fixes
2163         for #4637 though I don't understand why the bug happens, to be
2164         honest... also the object constructor has an assert name != NULL
2165         and the name is only currently NULL for peer-to-peer proxies that 
2166         I don't think anyone uses? So it should be asserting.
2167         Anyway, for now at least see if we get an earlier assertion failure.
2168
2169         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
2170         apparently broken code to be sure the tests fail and someone 
2171         will fix them...
2172
2173 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
2174
2175         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
2176         and arrays when they had a single element: has_next returns
2177         false, even before you read the element. So, instead, check
2178         the array length.
2179
2180 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2181
2182         * qt/qdbusmessage.cpp:
2183         * qt/qdbustypehelper_p.h:
2184         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
2185         the list is a const-reference
2186
2187 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
2188
2189         * Adding old doc patch that never got applied
2190         
2191         * dbus/bus.c (dbus_bus_add_match): Add documentation
2192
2193         * doc/dbus-specification.xml: Add documentation for the match rules
2194           and the AddMatch and RemoveMatch methods
2195
2196 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
2197
2198         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2199         call (r535506)
2200
2201         * qt/dbusidl2cpp.cpp:
2202         * qt/qdbusabstractadaptor.cpp:
2203         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
2204         sibling of the QDBusAbstractAdaptor objects instead of the
2205         parent. (r535848)
2206
2207         * qt/dbusidl2cpp.cpp:
2208         * qt/qdbusabstractinterface.cpp:
2209         * qt/qdbusabstractinterface.h:
2210         * qt/qdbusabstractinterface_p.h:
2211         * qt/qdbusinterface.cpp: Make properties in interfaces
2212         actually work. The code that was generated would not compile,
2213         due to moc calls to functions that did not exist. They now
2214         shall. (r536571)
2215
2216 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
2217
2218         * Makefile.am:
2219         * configure.in:
2220         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
2221         Thanks to Brad Hards for providing the patch
2222
2223 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2224
2225         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2226         call. (r535506)
2227
2228 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2229
2230         * qt/examples/dbus.cpp: Enhance error messages and use
2231         QDBusInterfacePtr.
2232
2233 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2234
2235         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
2236         and disable the copy operators. (r533772, r534746)
2237
2238         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
2239
2240         * qt/qdbusabstractinterface.cpp:
2241         * qt/qdbusabstractinterface.h: Change the default call mode to
2242         not use the event loop. Add convenience call() methods that
2243         take a CallMode parameter. (r534042)
2244
2245         * qt/qdbusconnection.h: Change the default call mode to not
2246         use the event loop. (r534042)
2247
2248         * qt/qdbusinterface.cpp:
2249         * qt/qdbusinterface.h: Add a method to tell us if the
2250         interface is valid (since we don't return a null pointer
2251         anymore) (r534099)
2252
2253         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2254         (r534101)
2255
2256         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2257         function in two so taht we get the chance to introspect
2258         without having a QDBusMessage (r534102)
2259
2260         * qt/qdbusbus.h:
2261         * qt/qdbusconnection.cpp:
2262         * qt/qdbusconnection_p.h:
2263         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2264         avoid a round-trip to the server when attempting to introspect
2265         one of our own objects. Also make sure the filter functions
2266         match the empty interface as well. (r534108)
2267         Don't keep the connection names. Instead, trust the unique
2268         connection name (r534111)
2269         Remove event loop usage (r534112)
2270
2271 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2272
2273         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2274         Brad Hards.
2275
2276 2006-04-28  Robert McQueen  <robot101@debian.org>
2277
2278         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2279         any order, making it easier for people who inherit from this
2280         object.
2281
2282 2006-04-28  Robert McQueen  <robot101@debian.org>
2283
2284         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2285         of memory from within pointer arrays and lists. Fixes bug #6300.
2286
2287 2006-04-28  Robert McQueen  <robot101@debian.org>
2288
2289         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2290         generating struct signatures. Fixes bug #6083.
2291
2292 2006-04-28  Robert McQueen  <robot101@debian.org>
2293
2294         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2295         to qdbusconnection_p.moc.
2296
2297 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2298
2299         * README, INSTALL: Doc fixes
2300         Patch from Brad Hards <bradh at frogmouth.net>
2301
2302 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2303
2304         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2305         the dynamic meta object. No need to guess which interface to
2306         call.
2307
2308 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2309
2310         * qt/qdbusconnection_p.h:
2311         * qt/qdbusmetaobject.cpp:
2312         * qt/qdbusmetaobject_p.h:
2313         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2314         for the dynamic meta object. No need to guess which
2315         interface to call.
2316         * qt/qdbusabstractinterface_p.h:
2317         * qt/qdbusconnection.cpp:
2318         * qt/qdbusintegrator.cpp:
2319         * qt/qdbusinterface.cpp:
2320         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2321         Add a QDBusRef that looks and behaves like DCOPRef.
2322
2323 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2324
2325         * dbus/dbus-connection.c: Interfaces are optional in method
2326         calls, so don't give up if the interface parameter is NULL.
2327         Patch reviewed by Havoc Pennington.
2328
2329 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2330
2331         * qt/qdbusreply.h: Add default constructor and operator=
2332           (r532625)
2333         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2334           in public headers (r532952)
2335         * qt/qdbusabstractinterface.cpp:
2336         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2337           make it the default (r532951)
2338
2339 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2340
2341         * dbus/dbus-connection.c: Fix asserts
2342         Patch from Tim Moloney <t.moloney at verizon.net>
2343
2344 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2345
2346         * mono/Connection.cs, mono/Message.cs: Check Target type
2347         Patch from Aaron Bockover (abockover at novell.com)
2348
2349 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2350
2351         * INSTALL: fine-tune the requirements for the Qt4 binding.
2352
2353 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2354
2355         * tools/dbus-print-message.c: Added support for printing of all 
2356           remaining data types. Fixed logic for indentation of compound
2357           data types.
2358         
2359 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2360
2361         * INSTALL: fill out content of file providing DBus specific
2362           build installations, followed by generic Auto* INSTALL file
2363           content
2364         
2365 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2366
2367         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2368           Patch by Stefan Eilers. (r529537)
2369
2370 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2371
2372         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2373           contents (r528208)
2374
2375 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2376
2377         * qt/Makefile.am: fix the dependency for
2378           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2379           not in qdbusconnection.cpp.
2380           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2381           spotting this.
2382
2383 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2384
2385         * qt/examples/listnames.cpp:
2386         * qt/examples/Makefile.am: Three ways to list the names on the
2387           bus.
2388
2389 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2390
2391         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2392           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2393
2394 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2395
2396         Merge from Subversion:
2397         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2398           something that exists (r526315)
2399         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2400           slots/signals (r526316)
2401         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2402           also return an unknown-method error if the parameters don't
2403           match for org.freedesktop.DBus.Properties. (r526842)
2404         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2405         * qt/qdbusintegrator.cpp: Restore the proper order of
2406           delivery: don't make method returns be delivered on priority
2407           (r528150)
2408
2409 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2410
2411         * configure.in qt/Makefile.am: add qt/examples
2412         * qt/examples: Add QtDBus example programs:
2413           - hello: Hello, World
2414           - ping: Simple method-calling program
2415           - pong: Simple object-exporting program (not using adaptors)
2416           - complexping: Interactive method-calling program 
2417                 (also gets and sets properties).
2418           - complexpong: Sample program exporting methods, signals and
2419                 properties, using adaptors.
2420           - dbus: Simple implementation of a generic method-calling
2421                 program, similar to 'dbus-send', but with semantics
2422                 similar to 'dcop'.
2423           - chat: Simplistic chat program, implemented using signals
2424                 and the system bus. Looks like IRC.
2425
2426 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2427
2428         * configure.in: Detect QtGui (necessary for one of the
2429           example programs). Note: this increases the minimum required
2430           version of Qt to 4.1.3.
2431
2432 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2433
2434         * test/qt/*: Sync with KDE Subversion revision 523647.
2435         Update the testcases to the new API. Remove testcases for
2436         classes that are no longer public or have been removed.
2437
2438 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2439
2440         * qt/*: 
2441         * dbus/qdbus.h: Sync with KDE Subversion revision
2442         523647. Hopefully, this will be the last of the
2443         source-incompatible changes. Documentation has been improved;
2444         support for QList<basic-types> has been added; QDBusObject is
2445         gone; QDBus(Abstract)Interface is now a QObject with
2446         auto-generated meta-object; QDBusIntrospection is marked
2447         private, since QMetaObject can be used now; lots of bugfixes.
2448
2449 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2450
2451         Patch from Milosz Derezynski <internalerror at gmail.com>
2452         
2453         * configure.in:
2454         Output the service directory in the configure summary
2455
2456         * dbus-1.pc.in:
2457         Add session_bus_services_dir
2458
2459 2006-03-10  Ross Burton  <ross@openedhand.com>
2460
2461         * tools/dbus-print-message.c:
2462         Add support for object paths and signatures.
2463
2464 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2465
2466         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2467         config reload.
2468         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2469         information caches
2470         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2471         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2472         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2473         * dbus/dbus-userdb.h: Add function to flush all user/group information
2474         caches.
2475
2476 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2477
2478         * qt/dbusidl2cpp.cpp:
2479         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2480         for dcopidl2cpp, found in the KDE installations (or the more
2481         modern kalyptus): generate Qt4 C++ code for the input XML
2482         introspection. Currently no IDL parsing.
2483
2484 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2485
2486         * test/qt/*: Update the self-tests.
2487
2488 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2489
2490         * qt/*: 
2491         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2492         represents the first feature-complete version of the Qt4
2493         bindings since I took ove maintainership.
2494
2495 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2496
2497         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2498         dir. This is C++, so we can't use the DBus ones.
2499
2500 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2501
2502         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2503         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2504
2505 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2506
2507         * dbus/dbus-connection.c: 
2508         (_dbus_connection_block_pending_call):
2509         Check to see if our data has already been read off the connection
2510         by another blocking pending call before we block in poll.
2511         (check_for_reply_and_update_dispatch_unlocked):
2512         Code taken from _dbus_connection_block_pending_call - checks for
2513         an already read reply and updates the dispatch if there is one.
2514
2515         * test/name-test/test-pending-call-dispatch.c:
2516         New test for making sure we don't get stuck polling a 
2517         dbus connection which has no data on the socket when
2518         blocking out of order on two or more pending calls.
2519
2520 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2521
2522         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2523         make/automake don't detect that we're talking about the same
2524         .lo file if I specify the full path to the source files.
2525
2526 2006-02-26  Havoc Pennington  <hp@redhat.com>
2527
2528         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2529
2530         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2531         session bus variable is unset, suggest "man dbus-launch" and "man
2532         dbus-daemon" to figure out how to fix the problem
2533
2534 2006-02-25  Havoc Pennington  <hp@redhat.com>
2535
2536         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2537         should make this thing use the new glib options parser
2538
2539 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2540
2541         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2542         .lo files taking moc sources.
2543
2544 2006-02-25  Havoc Pennington  <hp@redhat.com>
2545
2546         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2547         and install it as a public header
2548
2549 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2550
2551         * Released 0.61
2552
2553 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2554         
2555         * proxies.py: Fix the callchain
2556
2557 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2558         
2559         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2560
2561         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2562         dbus/dbus-sysdeps.c
2563
2564         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2565         call _dbus_group_info_free_allocated which causes infinite loop,
2566         correctly call _dbus_group_info_free
2567
2568 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2569
2570         * qt/qdbusinterface_p.h:
2571         * qt/qdbusinterface.cpp: Use the standard
2572         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2573         calls instead of creating one for us.
2574
2575         * qt/qdbusconnection_p.h:
2576         * qt/qdbusintegrator.cpp: Remove debugging code.
2577
2578         * qt/qdbusintegrator.cpp:
2579         * qt/qdbusmessage.cpp:
2580         * qt/qdbusmessage_p.h:
2581         * qt/qdbusmessage.h: Change the behaviour of automatic
2582         reply-sending: now a reply is always sent, unless the caller
2583         didn't request one or if the user slot has already sent one.
2584
2585 2006-02-16  Robert McQueen  <robot101@debian.org>
2586
2587         * configure.in: Patch from Debian packages by Sjoerd Simons
2588         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2589         arguments so it's possible to build both bindings in the
2590         same tree.
2591
2592         * qt/Makefile.am: Fix truncated value so that make dist works.
2593
2594 2006-02-16  Robert McQueen  <robot101@debian.org>
2595
2596         * acinclude.m4, configure.in: Patch from Brad Hards
2597         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2598         improving quoting, re-ordering a few checks, and a few other
2599         aesthetic tidy-ups.
2600
2601 2006-02-16  Robert McQueen  <robot101@debian.org>
2602
2603         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2604         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2605         assertion that the next element to read from the iter is fixed in
2606         size. This is not the case when you are at the end of the iter,
2607         because the next element type is INVALID.
2608
2609         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2610         a bogus assert which means that you may not initialise a 0-length
2611         string unless you provide a non-NULL pointer. This prevented
2612         you from marshalling messages containing zero-length arrays in
2613         some cases.
2614
2615         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2616         from Rob to correct bogus asserts when trying to demarshal an
2617         array and get_fixed_array got you 0 elements. Append nothing to
2618         the GArray in this case.
2619
2620         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2621         an empty array via the glib bindings. Without all of the above
2622         patches, this new test fails.
2623
2624 2006-02-16  Robert McQueen  <robot101@debian.org>
2625
2626         * glib/dbus-gmain.c: Make the previous commit compile.
2627
2628         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2629         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2630         specify sender_keyword="foo", path_keyword="bar" when adding
2631         a signal listener, so that you can bind to signals generically
2632         but still do something useful in your callback.
2633
2634         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2635         chars so that they're not cast to chars and made negative. Thanks
2636         to Jakub Stachowski for reporting this and testing the fix.
2637
2638 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2639
2640         * dbus/dbus-glib.h:
2641         * glib/dbus-gmain.h:
2642         (dbus_g_connection_open): new method for openning
2643         a connection to an arbitrary address in the glib bindings
2644
2645         * ChangeLog: checkin last entry which doesn't seem to be commited
2646
2647 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2648
2649         * tools/dbus-launch.c: Fixed sh syntax output
2650
2651 2006-02-13  Robert McQueen  <robot101@debian.org>
2652
2653         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2654         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2655         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2656         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2657         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2658         missing piece of the glib bindings jigsaw puzzle. This modifies
2659         the existing specialised types to have N type parameters (rather
2660         than the current 1 or 2 for arrays and dictionaries respectively).
2661         You can then use this to get a glib type to represent any arbitrary
2662         D-Bus struct type using dbus_g_type_get_struct. The only
2663         implementation of these types is with GValueArrays as before,
2664         but it's now possible to store these in arrays, emit them in
2665         signals, etc.
2666
2667 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2668
2669         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2670         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2671         <thiago.macieira at trolltech.com>
2672
2673 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2674
2675         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2676         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2677
2678 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2679
2680         * bus/connection.c (bus_connections_expect_reply): Make
2681         pending reply limit not common to all connections (Bug #5416)
2682         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2683
2684 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2685
2686         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2687
2688 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2689
2690         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2691         patch from Doug Goldstein <cardoe at gentoo.org>
2692
2693 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2694
2695         * mono/Arguments.cs: Fix a magic number in the mono bindings
2696         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2697
2698 2006-01-27  Robert McQueen  <robot101@debian.org>
2699
2700         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2701         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2702         when generating the client-side methods, instead of overloading
2703         CSymbol which broke everything horribly. My apologies.
2704
2705 2006-01-27  Robert McQueen  <robot101@debian.org>
2706
2707         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2708         by me and Rob Taylor to add a simple_free function to D-Bus map
2709         and collection types, which allows those types which can be freed
2710         with a GDestroyNotify (such as GHashTables and GArrays, but not
2711         GPtrArrays) to be stored as the values in hashtables.
2712
2713         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2714         Patch by Rob Taylor to add nested dicts to the glib tests to check
2715         the above code works, and appears not to leak when called repeatedly.
2716
2717 2006-01-27  Robert McQueen  <robot101@debian.org>
2718
2719         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2720         to free a D-Bus allocated string with dbus_free () instead of
2721         g_free ().
2722
2723 2006-01-27  Iain Holmes  <iain@openedhand.com>
2724
2725         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2726         method from being called multiple times.
2727
2728 2006-01-19  Robert McQueen  <robot101@debian.org>
2729
2730         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2731         <rob.taylor@collabora.co.uk> to add support for generating bindings
2732         to arrays that are represented as GPtrArrays rather than GArrays (ie
2733         size-variable things, such as strings, objects, structs, etc).
2734
2735 2006-01-05  Robert McQueen  <robot101@debian.org>
2736
2737         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2738         <ricardo.kekki@movial.fi> to make it possible to inherit from
2739         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2740         a private part, and moving the setting of the DBusGProxyManager into a
2741         connection property, allowing proper GObject construction.
2742
2743 2006-01-05  Robert McQueen  <robot101@debian.org>
2744
2745         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2746         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2747         annotations when generating glib client bindings.
2748
2749 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2750
2751         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2752
2753         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2754
2755 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2756
2757         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2758
2759 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2760
2761         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2762
2763 2005-12-19  Ross Burton  <ross@openedhand.com>
2764
2765         * doc/dbus-tutorial.xml:
2766         Document the Glib client-side bindings, and list all possible annotations.
2767
2768 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2769
2770         * dbus/bus.c (dbus_bus_release_name): Add documentation
2771
2772 2005-12-06  Robert McQueen  <robot101@debian.org>
2773
2774         * python/service.py: s/sucessful/successful/ so we're allocating to
2775         and reading from the same variable. Oops.
2776
2777 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2778
2779         * Released 0.60
2780
2781 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2782
2783         * test/qt/Makefile.am: build from srcdir
2784
2785         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2786         Note - this code is wrong and needs to be fixed by the Qt binding
2787         developers.  The flags should be treated as bitfields and not enums.
2788
2789         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2790
2791 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2792
2793         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2794           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2795           in production code
2796
2797 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2798
2799         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2800         method for getting messages off the bus in the absence of a
2801         mainloop.  This method is much like 
2802         dbus_connection_read_write_dispatch except it does not dispatch
2803         the messages to a registered filter function.  Instead it
2804         allows a developer to process messages by directly popping
2805         them off the bus.
2806
2807 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2808
2809         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2810         the parser to continue instead of returning error
2811         (bus_desktop_file_load): Do not free parser data when
2812         parse_section_start or parse_key_value fails because it was 
2813         already freed by parser_free (patch from Carlos Garcia Campos  
2814         <carlosgc at gnome.org>)
2815
2816 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2817
2818         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2819         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2820         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2821         test/test-segfault.c, test/test-utils.c,
2822         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2823         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2824         Various cleanup of dead code and compiler warnings (patch from
2825         Kjartan Maraas <kmaraas at gnome.org>) 
2826
2827 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2828
2829         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2830         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2831
2832 2005-11-27  Robert McQueen  <robot101@debian.org>
2833
2834         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2835         part of the preceding one. Oops. Merge patch by Johan Hedberg
2836         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2837         on big-endian platforms.
2838
2839         * test/python/test-client.py: Add some 16-bit integers to the test
2840         values.
2841
2842 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2843
2844         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2845         method return message for property getters
2846
2847 2005-11-27  Robert McQueen  <robot101@debian.org>
2848
2849         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2850         with type v of an instance of dbus.Variant(foo, type='x') caused
2851         it to be boxed twice before sending over the bus.
2852
2853         * python/dbus_bindings.pyx, python/service.py,
2854         test/python/test-client.py: Update the constants for the new
2855         request_name flags, and update comments/test cases now that queueing
2856         is the default action.
2857
2858 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2859
2860         * configure.in:
2861         - Change version to 0.60 for impending release
2862         - upped the sonames because of ABI and API breakage
2863
2864 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2865
2866         * configure.in: Add test/name-test/Makefile to the generated
2867         Makefile list
2868
2869         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2870         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2871         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2872         not to queue an ower if it can't be the primary owner
2873
2874         * bus/bus.h: Add new internal BusOwner struct
2875
2876         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2877         to bus_registry_ensure and don't set the prohibit_replacement flag
2878         since they are now set per BusOwner and not per name.
2879         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2880         that returns the list of connections in a name's connection queue
2881         
2882         * bus/services.c (struct BusService): remove prohibit_replacement field
2883         (struct BusOwner): new struct for keeping track of queued connections
2884         and their associated flags for the queue
2885         (struct BusRegistry): add a BusOwner memory pool
2886         (bus_registry_new): initialize the BusOwner memory pool
2887         (bus_registry_unref): free the BusOwner memory pool
2888         (_bus_service_find_owner_link): new internal method for
2889         searching the queue for a specific connection
2890         (bus_owner_set_flags): new method for adding setting the flags on a
2891         bus owner
2892         (bus_owner_new): new method that creates a BusOwner object from the
2893         pool and sets its flags
2894         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2895         (bus_registry_ensure): Add the flags parameter
2896         (bus_registry_acquire_service): Switch from using raw connections to
2897         using the BusOwner struct
2898         Add new state machine for dealing with the new set of flags
2899         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2900         cancel_ownership, free_ownership_cancel_data, 
2901         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2902         restore_ownership, free_ownership_restore_data, 
2903         add_restore_ownership_to_transaction): Switch to using BusOwner 
2904         instead of raw connections
2905         (bus_service_add_owner): Add flags parameter
2906         Switch to using BusOwner instead of raw connections
2907         Add state machine for dealing with the new set of flags
2908         (bus_service_swap_owner): Swaps the first and second owners in the
2909         queue.  Used to make sure proper signals are sent when a service looses 
2910         or gains primary ownership.  We never insert an owner at the top of the
2911         queue.  Instead we insert it in the second position and then swap.
2912         (bus_service_remove_owner): Remove the owner from the queue sending
2913         out the NameLost and NameOwnerChanged signals if the we were the 
2914         primary owner
2915         (bus_service_get_primary_owners_connection): New method that extracts
2916         the connection from the primary owner
2917         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2918         connection
2919         (bus_service_get_allow_replacement): Changed from the old 
2920         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2921         primary owner and returns if it can be replaced or not
2922         (bus_service_set_prohibit_replacement): removed
2923         (bus_service_has_owner): returns TRUE if and owner with
2924         the specified connection exists in the queue
2925         
2926         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2927         method that only compiles if tests are enabled.  Allows us to get the 
2928         unique name of a connection so we can check it against the queue when
2929         doing regression tests
2930
2931         * bus/activation.c (bus_activation_send_pending_auto_activate),
2932         bus/dispatch.c (bus_dispatch),  
2933         bus/driver.c (bus_driver_handle_get_service_owner, 
2934         bus_driver_handle_get_connection_unix_user, 
2935         bus_driver_handle_get_connection_unix_process_id,
2936         bus_driver_handle_get_connection_selinux_security_context),
2937         bus/signals.c (connection_is_primary_owner): 
2938         use bus_service_get_primary_owners_connection instead of
2939         bus_service_get_primary_owner
2940
2941         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2942         _dbus_listen_unix_socket): Calculate the length of the socket
2943         path and use that instead of using a fixed length which was
2944         causing socket names to contain many trailing Nul bytes.
2945
2946         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2947         (dbus_g_method_get_sender): New method for extracting the sender 
2948         from a DBusGMethodInvocation
2949         (dbus_g_method_return_get_reply): changed name to 
2950         dbus_g_method_get_reply
2951         (dbus_g_method_return_send_reply): changed name to
2952         dbus_g_method_send reply
2953
2954         * doc/dbus-specification.xml: New docs that describe how the new
2955         queueing system works and talks about the changes to the how
2956         we specify socket names
2957
2958         * glib/examples/example-service.c, 
2959         glib/examples/example-signal-emitter.c,
2960         glib/examples/statemachine/statemachine-server.c:
2961         Changed the RequestName flags to the new system
2962
2963         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2964         regression test suite for testing various states of the new
2965         queueing system
2966         
2967 2005-11-15  Robert McQueen  <robot101@debian.org>
2968
2969         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2970         Taylor to add two methods, dbus_g_method_return_get_reply and
2971         dbus_g_method_return_send_reply, to allow you to get the reply
2972         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2973         and send it. The GLib bindings can't marshal a return value of
2974         something like a(s) if the array is empty - ultimately they should be
2975         made to heed the signature of the out arguments as the Python bindings
2976         now can, but this is a workable interim solution which might have
2977         other applications.
2978
2979 2005-11-15  Robert McQueen  <robot101@debian.org>
2980
2981         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2982         method to org.freedesktop.DBus to release a bus name or give up
2983         waiting in the queue for it.
2984
2985         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2986         dbus_bus_release_name method to send the ReleaseName method calls.
2987         Add constants for the return values to dbus/dbus-shared.h.
2988
2989         * doc/dbus-specification.xml: Document the new ReleaseName method
2990         in the specification.
2991
2992         * python/dbus_bindings.pyx: Add a low-level python binding for the
2993         release name method.
2994
2995         * python/exceptions.py, python/service.py: Make freeing BusName
2996         objects release the name. Add a NameExistsException, and fix a
2997         bug with creating UnknownMethodException.
2998
2999         * test/python/test-client.py: Add tests for freeing BusName
3000         objects causing names to be released.
3001
3002 2005-11-14  Robert McQueen  <robot101@debian.org>
3003
3004         * python/service.py: Include the traceback in the error reply when we
3005         send an exception over the bus. _BEST_ _PATCH_ _EVER_
3006
3007 2005-11-14  David Zeuthen  <davidz@redhat.com>
3008
3009         Patch from Timo Hoenig <thoenig@suse.de>.
3010
3011         * bus/bus.c: I've recently investigated why the automatic reload
3012         of configuration files does not work as expected.
3013
3014         Currently, reloading configuration files does only work when
3015         running dbus-daemon with --nodaemon.  If we are running as daemon
3016         we're hitting a dnotify bug once we fork the process.
3017
3018         We're initializing the dnotify fds before calling fork().  Once
3019         the child process forked it does still have the fds (and they
3020         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
3021         getting SIGIO as changes are made to the configuration files.
3022
3023         The attached patch moves the initialization of the dnotify fds to
3024         process_config_postinit().  This is safe for all current code
3025         paths and solves the dnotify disfunction.  If we're running
3026         dbus-daemon as daemon the fds for dnotify are now being
3027         initialized after fork() for the child process.
3028
3029         * configure.in: The current configure.in check for dnotify probes
3030         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
3031         match for 'xlinux', too. Additionally I have adapted the configure
3032         option's style to match with the others.
3033
3034 2005-11-14  Robert McQueen  <robot101@debian.org>
3035
3036         * python/decorators.py, python/service.py: Add a new argument to the
3037         dbus.service.method decorator called sender_keyword, which if set,
3038         specifies the name of an argument which will be provided the bus
3039         name of the method caller.
3040
3041         * test/python/test-client.py, test/python/test-service.py: Add a
3042         method and test to check the sender_keyword functionality.
3043
3044 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
3045
3046         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
3047         empty reply so blocking calls don't block forever (Patch from Sjoerd 
3048         Simons <sjoerd at luon.net>)
3049
3050         * AUTHORS: Add Robert McQueen for his work on the Python
3051         Bindings and other parts of D-Bus
3052
3053 2005-11-07  Robert McQueen  <robot101@debian.org>
3054
3055         * python/decorators.py: Change emit_signal function to use the
3056         signature annotation of the signal when marhsalling the arguments from
3057         the service. Fix a bug where the code checking signature length
3058         against argument length referenced the wrong variable.
3059
3060         * python/introspect_parser.py: Avoid adding the type signature of
3061         signal arguments to any methods which occur after them in the
3062         introspection data (!) by making the parser a little more careful
3063         about its current state.
3064
3065         * python/service.py: Remove debug prints from last commit (again :D).
3066
3067         * test/python/test-client.py, test/python/test-service.py: Add test
3068         signals with signature decorators to test the strict marshalling code
3069         gives errors at the right time. Could do with checking the signals
3070         actually get emitted too, given that the test does nothing with
3071         signals at the moment...
3072
3073 2005-11-07  Robert McQueen  <robot101@debian.org>
3074
3075         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
3076         instances to stop madness of creating new instances representing
3077         the same bus connection all the time, rendering any tracking of
3078         match rules and bus names quite meaningless. Caught a bug where
3079         the private argument to SessionBus() and friends was being passed
3080         in as use_default_mainloop by mistake. Still some problems with
3081         multiple dbus_binding.Connection instances representing the same
3082         low-level connection (eg when you use both SessionBus() and
3083         StarterBus() in same process), but it's a lot better now than it
3084         was.
3085
3086         * python/dbus_bindings.pyx: Add constants with the return values
3087         for bus_request_name().
3088
3089         * python/service.py: Store bus name instances in a per-dbus.Bus cache
3090         and retrieve the same instances for the same name, so deletion can be
3091         done with refcounting. Also now throws some kind of error if you
3092         don't actually get the name you requested, unlike previously...
3093
3094         * test/python/test-client.py: Add tests for instance caching of buses
3095         and bus name objects.
3096
3097 2005-11-04  Robert McQueen  <robot101@debian.org>
3098
3099         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
3100         marshalling of boolean values. Add some booleans to the values in
3101         the test client.
3102
3103         * python/decorators.py, python/service.py: Add an 'async_callbacks'
3104         argument to the dbus.service.method decorator, which allows you to
3105         name arguments to take two callback functions for replying with
3106         return values or an exception.
3107
3108         * test/python/test-client.py, test/python/test-service.py: Add test
3109         case using asynchronous method reply functions, both return values and
3110         errors, and from within both the function itself and from a mainloop
3111         callback.
3112
3113         * python/decorators.py, python/service.py: Perform checking that the
3114         number of method/signal arguments matches the number of types in the
3115         signature at class loading time, not when you first introspect the
3116         class.
3117
3118         * python/service.py: Remove debug print left by the last commit.
3119
3120 2005-11-03  Robert McQueen  <robot101@debian.org>
3121
3122         * python/service.py: Heavy refactoring of method invocation, with
3123         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
3124         in favour of a new _message_cb that uses seperate functions for
3125         looking up the method to call, marshalling the return values, and
3126         sending exceptions as errors, and is easier to follow as a
3127         consequence.  Fixes some corner cases about returning things that
3128         don't match your declared out_signature, allows exceptions to define
3129         _dbus_error_name and have it be sent over the bus as the error name,
3130         and paves the way for cool stuff like heeding the message no reply
3131         flag, asynchronous method implementations, informing the method of the
3132         sender, and including backtraces in the error messages.
3133
3134         * test/python/test-client.py: Catch and print exceptions thrown in the
3135         async callback tests, rather than passing them to the low-level
3136         bindings to be ignored in a noisy and frustrating manner.
3137
3138 2005-11-03  Robert McQueen  <robot101@debian.org>
3139
3140         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
3141         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
3142         tweak others to be consistent.
3143
3144         * test/python/test-client.py: Tweak output of testInheritance.
3145
3146 2005-10-29  Robert McQueen  <robot101@debian.org>
3147
3148         * python/service.py: Major changes to allow multiple inheritance
3149         from classes that define D-Bus interfaces:
3150         
3151          1. Create a new Interface class which is the parent class of
3152             Object, and make the ObjectType metaclass into InterfaceType.
3153         
3154          2. Patch written with Rob Taylor to replace use of method_vtable
3155             with code that walks the class's __MRO__ (method resolution order)
3156             to behave like Python does when invoking methods and allow
3157             overriding as you'd expect. Code is quite tricky because
3158             we have to find two methods, the one to invoke which has the
3159             right name and isn't decorated with the /wrong/ interface,
3160             and the one to pick up the signatures from which is decorated
3161             with the right interface.
3162         
3163             The same caveats apply as to normal multiple inheritance -
3164             this has undefined behaviour if you try and inherit from two
3165             classes that define a method with the same name but are
3166             decorated with different interfaces. You should decorate
3167             your overriding method with the interface you want.
3168         
3169          3. Replace grungy introspection XML generation code in the metaclass
3170             with dictionaries that cope correctly with multiple inheritance
3171             and the overriding of methods. This also uses the signature
3172             decorations to provide correct introspection data, including
3173             the debut appearance of the types of your return values. :D
3174
3175         * test/python/test-client.py, test/python/test-service.py: Add a test
3176         case to try invoking an method that overrides one inherited from a
3177         D-Bus interface class.
3178
3179 2005-10-29  Robert McQueen  <robot101@debian.org>
3180
3181         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
3182         Add checking for the end of struct character when marshalling a
3183         struct in MessageIter.append_strict.
3184
3185         * python/examples/example-service.py,
3186         python/examples/gconf-proxy-service.py,
3187         python/examples/gconf-proxy-service2.py: Update to use gobject
3188         mainloop directly rather than appearing to depend on gtk.
3189
3190         * python/test/test-client.py, python/test/test-server.py: Remove
3191         obsolete and broken test scripts for old bindings. We have up to date
3192         and working tests in test/python/.
3193
3194 2005-10-29  Robert McQueen  <robot101@debian.org>
3195
3196         * python/decorators.py: Add optional arguments to the method and
3197         signal decorators to allow you to specify the signature of arguments
3198         and return values. Preserve the doc strings of signal functions in the
3199         decorated version, for pydoc and friends.
3200
3201         * python/dbus_bindings.pyx, python/proxies.py: Replace the
3202         parse_signature_block function with an iterable dbus.Signature()
3203         type. Fix a bug in MessageIter.append_strict where you could append
3204         anything by claiming it was a string.
3205
3206         * python/service.py: Use the out_signature decoration on methods to
3207         marshal return values, meaning you no longer require dbus.Array()
3208         or dbus.Dictionary() to indicate the type when returning empty
3209         arrays or dictionaries. Fix a bug where exceptions which are defined
3210         in __main__ are not turned into error replies.
3211
3212         * test/python/test-client.py, test/python/test-service.py: Add test
3213         for correct marshalling of return values according to out_signature.
3214         Fix a bug in the async call test where the error_handler is missing a
3215         self argument.
3216
3217 2005-10-29  Robert McQueen  <robot101@debian.org>
3218
3219         * glib/Makefile.am, glib/examples/Makefile.am,
3220         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
3221         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
3222
3223         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
3224
3225         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
3226         from Ubuntu by Daniel Silverstone to allow specifying match rules on
3227         the command line.
3228
3229 2005-10-27  Ross Burton  <ross@openedhand.com>
3230
3231         * dbus/dbus-marshal-header.c:
3232         Remove dead code.
3233
3234         * glib/dbus-gobject.c:
3235         Stop compiler warning.
3236
3237 2005-10-25  Ross Burton  <ross@openedhand.com>
3238
3239         * dbus/dbus-auth.c:
3240         * dbus/dbus-server-unix.c:
3241         * dbus/dbus-transport-unix.c:
3242         * glib/dbus-gmain.c:
3243         * glib/dbus-gobject.c:
3244         Add some const keywords.
3245
3246 2005-10-25  Ross Burton  <ross@openedhand.com>
3247
3248         * doc/dbus-specification.xml:
3249         Document the NoReply annotation.
3250
3251         * glib/dbus-binding-tool-glib.h:
3252         * glib/dbus-binding-tool-glib.c:
3253         Respect the NoReply annotation.
3254
3255 2005-10-24  Robert McQueen <robot101@debian.org>
3256
3257         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3258         derive from unicode instead of str, and encode/decode UTF-8 when
3259         marshalling/unmarshalling bus messages
3260
3261         * python/introspect_parser.py: encode introspection data as UTF-8
3262         before passing the buffer into libxml2
3263
3264         * test/python/test-client.py: add unicode test strings
3265
3266         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3267         ignore generated python test files
3268
3269 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3270
3271         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3272         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3273         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3274
3275         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3276         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3277         when constructing struct signatures
3278
3279         * python/_dbus.py (Bus): handle private connections using the
3280         private keyword in the constructor. defaults to private=False
3281         (Bus::close): new method to close a connection to the bus
3282
3283         * python/dbus_bindings.pyx (Connection::close): renamed method
3284         was previously called disconnect
3285         (bus_get): now supports getting a private connection
3286
3287         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3288         keyword is set to True.  if it is, execute the method without waiting
3289         for a reply
3290         (ProxyObject::_introspect_execute_queue): new method for executing
3291         all the pending methods that were waiting for the introspect to
3292         finish.  this is called when introspect either succeeds or fails
3293         (ProxyObject::_introspect_error_handler): call queued methods
3294
3295 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3296
3297         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3298         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3299
3300         * python/service.py (Object::_message_cb): handle exceptions correctly
3301         by sending them over the wire to the calling app.  This makes sure
3302         the client returns immediately instead of waiting the 15 seconds to
3303         timeout.
3304
3305         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3306         Add a test to benchmark how long it takes to introspect a service and 
3307         call a method which returns a large element (pretty fast)
3308
3309         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3310         method which pushes a lot of data
3311
3312 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3313
3314         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3315         reclaim memory outside of the loop and use del istead of just setting
3316         the key to None
3317
3318 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3319
3320         * python/service.py (ObjectType::_reflect_on_signal): Always close
3321         signal tag even when there are no arguments
3322
3323 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3324
3325         * configure.in: Set mono, mono-docs and Qt3 to default
3326         to no instead of auto when building.  These bindings do not
3327         have full time maintainers and will not be supported for the
3328         1.0 release.
3329
3330 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3331
3332         patches from Michael Krivoruchko <misha at sun.com>: 
3333         
3334         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3335         _dbus_connection_message_sent, 
3336         _dbus_connection_send_preallocated_unlocked_no_update, 
3337         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3338         is NULL when calling _dbus_verbose
3339
3340         * configure.in: check for functions getpeerucred and getpeereid
3341
3342         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3343         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3344         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3345         Patch was only tested on Solaris 10 x86 so it might be issues
3346         with other platforms (i.e. BSDs and MacOSX)
3347         
3348
3349 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3350
3351         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3352         instead of marshal basic so we can handle recursive types in a variant
3353
3354         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3355         in variants
3356
3357         * test/glib/test-service-glib.c, test-service-glib.xml
3358         (my_object_echo_variant [EchoVariant], 
3359         my_object_process_variant_of_array_of_ints123
3360         [ProcessVariantOfArrayOfInts123]): 
3361         Add two test methods
3362
3363         * python/introspect_parser.py: New module for parsing introspect
3364         data.
3365
3366         * python/dbus_bindings.pyx:
3367         (various places): when throwing errors fix to use errormsg instead 
3368         of message local variable because Pyrex can get confused with other 
3369         message variables (initial patch by Robert McQueen 
3370         <robert.mcqueen at collabora.co.uk>)
3371         (MessageIter::parse_signature_block): new method for getting the next
3372         block in a signiture.
3373         (MessageIter::append_strict): new method for appending values strictly
3374         using the passed in signature instead of guessing at the type
3375         (MessageItter:: append_dict, append_struct, append_array): use 
3376         signatures to marshal children if the signature is available
3377         
3378         * python/exceptions.py (IntrospectionParserException): new exception
3379
3380         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3381         introspected signatures if available, else we fall back to the
3382         old way of doing things.
3383         (ProxyObject::_introspect_reply_handler ): parse introspection data
3384         
3385         * python/service.py (ObjectType::_reflect_on_method): Properly
3386         terminate <method> if there are no args in the reflection data
3387
3388         * test/python/test-client.py: add tests for talking with the GLib
3389         test server.  This gives us better coverage for introspection since
3390         python to python will always generate arguments as variants.  It also
3391         allows us to test the robustness of the GLib bindings and interlanguage
3392         communications.
3393
3394         
3395 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3396
3397         * bus/driver.c (bus_driver_handle_introspect): Add signals
3398         to the introspect data. (patch from Daniel P. Berrange 
3399         <dan at berrange.com>)
3400
3401         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3402         
3403         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3404         _dbus_connection_run_builtin_filters): Changed these to
3405         be unlock_no_update functions and call 
3406         _dbus_connection_send_unlocked_no_update instead of
3407         dbus_connection_send to avoid locking errors.
3408         
3409         * doc/TODO: Removed the make Ping test TODO
3410         
3411 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3412
3413         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3414         We now copy the message from a DBusError and then free 
3415         the error object befor throwing the error
3416
3417         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3418         DBusBindingOutputMode enum which was causing a warning.
3419         #include <time.h> so using time_t is explicitly defined
3420
3421 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3422
3423         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3424         - dbus/dbus-bus.c
3425         (internal_bus_get): new method that take over the heavy lifting
3426         of dbus_bus_get and adds the ability to get a private connection
3427         to the bus
3428         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3429         interface as in previous versions
3430         (dbus_bus_get_private): new method that is a wrapper to 
3431         internal_bus_get to get a private connection to the bus
3432
3433         - dbus/dbus-bus.h
3434         (dbus_bus_get_private): add as a public libdbus interface
3435
3436         - dbus-1.pc.in: output system_bus_default_address and 
3437         sysconfdir variables so apps can use them when compiling
3438
3439 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3440         * dbus/qt: New Qt bindings
3441
3442 2005-09-12  Waldo Bastian  <bastian@kde.org>
3443
3444         * dbus/dbus-marshal-validate.c,
3445         doc/dbus-specification.xml, test/Makefile.am,
3446         test/test-names.c: allow hyphens in bus names.
3447
3448 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3449
3450         * test/data/auth/fallback.auth-script: we don't
3451         retry the EXTERNAL method when we know its going
3452         to fail anymore.
3453
3454 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3455
3456         * dbus/dbus-connection-internal.h: rename
3457         (add|remove|toggle)_(watch|timeout) to unlocked()
3458         
3459         * dbus/dbus-connection.c: ditto.
3460         
3461         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3462         Update some callers for the renaming.
3463
3464 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3465
3466         * dbus/dbus-auth.c: (record_mechanisms): don't
3467         retry the first auth mechanism because we know
3468         we're just going to get rejected again.
3469         
3470         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3471         Fix thinko ... and what a nasty little bugger to
3472         track down you were ...
3473
3474         * dbus/dbus-connection.c:
3475         (_dbus_connection_add_watch),
3476         (_dbus_connection_remove_watch): add note about
3477         these needing the connection to be locked.
3478         (_dbus_connection_get_dispatch_status_unlocked):
3479         set status to DATA_REMAINS when we queue the
3480         disconnected message.
3481         
3482         * bus/dispatch.c:
3483         (bus_dispatch): fix warning.
3484         (check_existent_service_no_auto_start):
3485         Expect ChildSignaled error too.
3486         (check_existent_hello_from_self): fix another
3487         couple of warnings.
3488         
3489 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3490
3491         Patches from James Willcox <snorp@snorp.net>
3492
3493         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3494
3495         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3496         support array "out" parameters.
3497
3498         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3499         for 16-bit int support.
3500
3501 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3502
3503         * Released 0.50
3504
3505         * Patch from Steve Grubb:
3506         - bus/activation.c (bus_activation_service_reload_test): clean up
3507         some indentation
3508         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3509         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3510         buffer overflows in the test suite.  This is non critical because
3511         it can not be exploited and this code is only run when doing a 
3512         make check.
3513
3514         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3515         - configure.in: Don't check and link against kdecore, only qt headers
3516         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3517         - gcj/org/freedesktop/dbus/Makefile.am:
3518         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3519         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3520         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3521         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3522         - tools/Makefile.am: Add platform extentions to binaries 
3523         (i.e. .exe on windows)
3524
3525         * configure.in: 
3526         - Make it so if no suitable version of python is found we only 
3527         disable building python instead of exiting the configure script
3528         - Require version 2.4 of glib for glib bindings
3529         - Up version to 0.50
3530
3531         * python/__init__.py: Sync version with libdbus to (0,50,0)
3532         
3533 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3534
3535         * dbus/dbus-object-tree.c (find_subtree_recurse):
3536         a couple of optimizations (bug #710):
3537         - do a binary search in the tree
3538         - insert a new child at the right place directly, no need for
3539           qsort anymore
3540         - do the "double alloc" thing when allocating children
3541
3542 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3543
3544         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3545
3546         * python/dbus_bindings.pyx: Memory management foo
3547         (global): remove hacky _user_data_references global list
3548         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3549         tuples. Unref user_data
3550         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3551         (Connection::__del__): Remove and replace with __dealloc__ method
3552         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3553         to keep tuple from being deallocated instead of the global var hack
3554         (Connection::register_object_path): Stuff user_data into a tuple.
3555         Use Py_INCREF to keep tuple from being deallocated instead of the 
3556         global var hack
3557         (Connection::register_fallback): Stuff user_data into a tuple.
3558         Use Py_INCREF to keep tuple from being deallocated instead of the 
3559         global var hack
3560         (GIL_safe_pending_call_notification): Don't unref the message
3561         because it gets unreffed when going out of scope.  Py_XDECREF
3562         the user_data
3563         (PendingCall::__del__): Remove and replace with __dealloc__ method
3564         (PendingCall::set_notify): ref the pending call because we will
3565         need it to stick around for when the notify callback gets called
3566         (Message::__del__): Remove and replace with __dealloc__ method
3567
3568         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3569         gthreads_init to match up with the dbus call
3570
3571         * python/glib.py (init_threads): Changed to threads_init to match
3572         up with gobject.threads_init().  init_threads is kept for backwards
3573         compat but will most likely be deprecated in the future
3574
3575         * test/python/test-client.py: 
3576         - revamp to use Python's unittest functionality
3577         - add async call tests
3578         - setup threads in glib and dbus so we make sure locks are working
3579         
3580 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3581
3582         * python/dbus_bindings.pyx 
3583         (_pending_call_notification, cunregister_function_handler, 
3584         cmessage_function_handler): All callback functions have been rearranged 
3585         to workaround a bug in Pyrex when working with the GIL which is Python's 
3586         global lock when dealing with threads.  They have been split into
3587         a wrapper function (which assumes the name of the old function) and
3588         a _GIL_safe_<function name> function which contains the functionality
3589         of the old function.  This ensures that Pyrex does not write code
3590         the lock is released.
3591         
3592
3593 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3594
3595         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3596         GIL global lock when calling back into Python
3597
3598 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3599
3600         * Release 0.36.2
3601
3602         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3603
3604         * bus/policy.c (bus_policy_allow_user): change default "user is
3605         allowed" to be "user has same uid as the bus itself"; any
3606         allow/deny rules will override.
3607
3608         * bus/session.conf.in: don't allow all users, since now by default
3609         the user that ran the bus can connect.
3610
3611 2005-08-26  Colin Walters  <walters@verbum.org>
3612
3613         * tools/dbus-print-message.c (print_message): Flush stdout
3614         after printing a message, so that redirecting to a file, then
3615         hitting Ctrl-C works.
3616
3617 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3618
3619         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3620         (EmptyMessage): new class that subclasses Message.  This is a workaround
3621         to a Pyrex bug that fails to call __del__ when the Message object goes out
3622         of scope.  For some reason subclassing Message fixes this bug
3623         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3624         - s/Message(_create=0)/EmptyMessage everywhere else
3625         
3626         * test/python/test-{server|client}.py: add the python/.libs directory
3627         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3628         get picked up from the system
3629
3630 2005-08-25  Colin Walters  <walters@verbum.org>
3631
3632         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3633         to Ryan Lortie for the suggestion.
3634
3635 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3636
3637         * test/python: Add python regression test
3638
3639         * configure.in: Add test/python/Makefile
3640
3641         * test/Makefile.am: Add the python directory to SUBDIRS
3642
3643 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3644
3645         * Release 0.36.1
3646
3647         * python/_dbus.py: 
3648         (Interface::connect_to_signal): propigate keywords for match on args
3649         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3650
3651         * python/proxies.py (ProxyObject::connect_to_signal):
3652         propigate keywords for match on args
3653
3654         * Makefile.am: point everything to pyexecdir since python borks
3655         on multilib
3656
3657 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3658
3659         * Release 0.36
3660
3661 2005-08-23  Colin Walters  <walters@verbum.org>
3662
3663         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3664
3665 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3666
3667         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3668         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3669         of defining DBusConnection ourselves.
3670
3671 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3672
3673         * python/dbus.pth: New path file to fix up problems when installing
3674         c libraries to lib64 and python files to lib.
3675
3676         * python/Makefile.am: install dbus.pth in the correct spot
3677
3678 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3679         * ChangeLog: clean up my last entry a bit
3680
3681         * doc/introspect.xsl: New stylesheet for converting introspection data
3682         into browser renderable xhtml. Contributed by Lennart Poettering.
3683
3684         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3685         Poettering.
3686
3687         * doc/dbus-tutorial.xml: 
3688         - Add Colin Walter to the Authors section for authoring the GLib
3689         section
3690         - Add descriptions of the new signature and type functionality
3691         in the Python complex type mapping section
3692         - Add a sidenote on the new args matching functionality in 
3693         the Python bindings
3694         - Fixed up some of the examples to use the gobject.MainLoop
3695         instead of gtk.main
3696         
3697         * python/_dbus.py:
3698         (Bus::_create_args_dict): New. Converts a hash of arg matches
3699         to a more useable format
3700         (Bus::add_signal_receiver): add a **keywords parameter for catching
3701         arg match parameters
3702         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3703         arg match parameters
3704         
3705         * python/matchrules.py:
3706         (MatchTree::exec_matches): Check for arg matches
3707         (SignalMatchRule::add_args_match): New method
3708         (SignalMatchRule::execute): Added args_list parameter as an optimization
3709         so we don't have to marshal the args more than once
3710         (SignalMatchRule::match_args_from_list): New method that checks to see
3711         if the rule's arg matches match an argument list.  Only arguments
3712         set in the rule are checked.
3713         (SignalMatchRule::match_args_from_rule): New method that checks to see
3714         if the rule's arg matches match another rule's.  All args have to match
3715         in order for this method to return true.  If either rule has more args
3716         then it is not a match.
3717         (SignalMatchRule::is_match): Add args match
3718         (SignalMatchRule::repr): Add args to the final output if they exist
3719
3720 2005-08-17  Ross Burton  <ross@burtonini.com>
3721
3722         * glib/dbus-gproxy.c:
3723         (dbus_g_proxy_call_no_reply): unref the message once sent.
3724         (dbus_g_proxy_call): protect against NULL proxy.
3725
3726 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3727
3728         * python/__init__.py: Version updated (0, 43, 0)
3729         
3730         * python/dbus_bindings.pyx: 
3731         - Fixed type objects to have self passed into __init__
3732         - Added the Variant type
3733         - Add the ability to specify types or signatures for Array, Variant 
3734         and Dictionary
3735         (Connection::send_with_reply_handlers): return a PendingCall object
3736         (_pending_call_notification): handle the case when an error is returned 
3737         without an error message in the body
3738         (MessageIter::get_boolean): return True or False instead of an integer
3739         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3740         and add checks for objects with embeded signatures or types (Array, 
3741         Variant and Dictionary)
3742         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3743         (MessageIter::append_dict): handle embeded types or signatures
3744         (MessageIter::append_array): handle embeded types or signatures
3745         (MessageIter::append_variant): new method
3746         
3747         * python/proxies.py:
3748         (DeferedMethod): New. Dummy executable object used when queuing calls 
3749         blocking on introspection data
3750         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3751         or shorter timeouts for method calls
3752         (ProxyObject): Add first pass at an introspection state machine
3753         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3754         introspection. 
3755         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3756         the usual mechanisms for sending messages.  This is to avoid a deadlock
3757         where the Intospect call would be queued waiting for the Introspect 
3758         call to finish ;-)
3759         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3760         when introspection returns with no error
3761         (ProxyObject::_introspect_error_handler): New.  This method is called 
3762         when introspection encounters an error
3763         (ProxyObject::__getattr__): Code to handle different introspection 
3764         states.  Queue async calls or block blocking calls if we are 
3765         introspecting.  Pass through as normal if we are not or are done with 
3766         introspecting.
3767         
3768         * python/service.py: Import signal and method from decorators.py
3769
3770         * python/types.py: Add Variant type
3771
3772 2005-08-16  Colin Walters  <walters@verbum.org>
3773
3774         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3775         DBusError message is NULL.
3776
3777 2005-08-09  Havoc Pennington  <hp@redhat.com>
3778
3779         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3780         malloc'd copy of the name parameter
3781
3782 2005-08-09  Havoc Pennington  <hp@redhat.com>
3783
3784         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3785         warning if the reply serial is set to 0
3786
3787 2005-08-04  Colin Walters  <walters@verbum.org>
3788
3789         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3790         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3791         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3792         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3793         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3794         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3795         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3796         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3797         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3798         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3799         
3800         Prefix name with _ to ensure they're not exported.  All callers
3801         updated.
3802
3803         * glib/dbus-gvalue.c (typecode_to_gtype)
3804         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3805         (signature_iter_to_g_type_dict)
3806         (signature_iter_to_g_type_array)
3807         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3808         (dbus_gtypes_from_arg_signature):
3809         Move to dbus-gsignature.c.
3810
3811         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3812         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3813         (dbus_binding_tool_output_glib_client): Ditto.
3814
3815         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3816         and dbus-gsignature.h
3817
3818         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3819         unused variable.
3820
3821 2005-08-03  Colin Walters  <walters@verbum.org>
3822
3823         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3824         catch any incompatible changes accidentally made.
3825
3826 2005-08-03  Havoc Pennington  <hp@redhat.com>
3827
3828         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3829         typo, from Julien Puydt
3830
3831         * bus/connection.c (bus_connection_disconnected): we were always
3832         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3833
3834 2005-08-01  Colin Walters  <walters@verbum.org>
3835
3836         Patch from Joe Markus Clarke:   
3837         
3838         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3839         use-after-free.
3840
3841 2005-08-01  Colin Walters  <walters@verbum.org>
3842         
3843         Patch from Joe Markus Clarke:   
3844         
3845         * tools/dbus-send.c (main): 
3846         
3847         Don't use C99 style initializers (bug #3933).
3848         
3849 2005-08-01  Colin Walters  <walters@verbum.org>
3850
3851         Patch from Joe Markus Clarke:   
3852
3853         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3854         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3855         * glib/dbus-gobject.c (write_interface):
3856
3857         Don't use C99 style initializers (bug #3933).
3858
3859 2005-07-31  Havoc Pennington  <hp@redhat.com>
3860
3861         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3862         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3863
3864 2005-07-30  Havoc Pennington  <hp@redhat.com>
3865
3866         * fix a bunch of Doxygen warnings and mistakes
3867
3868 2005-07-30  Havoc Pennington  <hp@redhat.com>
3869
3870         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3871         DBUS_BUILD_TESTS since it's now used in production code
3872
3873 2005-07-29  Havoc Pennington  <hp@redhat.com>
3874
3875         * test/glib/test-profile.c (write_junk): initialize the junk
3876         buffer so valgrind doesn't have a breakdown
3877
3878 2005-07-29  Havoc Pennington  <hp@redhat.com>
3879
3880         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3881         (match_rule_matches): remove unused arg
3882         (test_matching): add tests for match_rule_matches()
3883
3884         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3885         do arg0='foo' arg5='bar' in the match rules
3886         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3887
3888         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3889
3890 2005-07-29  Ross Burton  <ross@openedhand.com>
3891
3892         * dbus/dbus-connection.c:
3893         Don't create a DBusCondVar which is never used.
3894
3895 2005-07-27  Ross Burton  <ross@openedhand.com>
3896
3897         * dbus/dbus-message.c:
3898         Reduce the size of the maximum cached message to 10K.
3899
3900 2005-07-25  Ross Burton  <ross@openedhand.com>
3901
3902         * glib/dbus-gproxy.c:
3903         Remove matches when all proxies are unregistered.
3904
3905 2005-07-24  Colin Walters  <walters@verbum.org>
3906
3907         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3908         typedata; recursive arrays won't have it.
3909
3910         * test/glib/test-dbus-glib.c:
3911         * test/glib/test-service-glib.c:
3912         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3913         
3914 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3915
3916         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3917         proxies.py, service.py: Cleanup of code after running it through the
3918         pyflakes code checker mostly dealing with undefined names.  
3919         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3920
3921 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3922
3923         * NEWS: Update to 0.35.2
3924
3925 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3926
3927         * python/_dbus.py: Remove import of the dbus.services
3928         module as it no longer exists (patch from Dimitur Kirov)
3929
3930         * python/service.py (Object::__init__): Fixed typo
3931         s/name/bus_name (patch from Dimitur Kirov)
3932
3933         * python/examples/example-signal-emitter.py: import dbus.glib
3934         to get the main loop and use glib mainloop instead of gtk so
3935         X doesn't have to be running.
3936
3937         * python/examples/example-signal-recipient.py: import dbus.glib
3938         to get the main loop and use glib mainloop instead of gtk so
3939         X doesn't have to be running. Import the decorators module
3940         directly.
3941
3942         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3943         didn't pick up on but are needed to build
3944
3945         * configure.in: upped version to 0.35.2
3946
3947         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3948         added Colin Walters' SELinux API rename patch from head 
3949         s/unix sercurity context/selinux security context/
3950
3951 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3952
3953         * python/Makefile.am: dbus_binding.pxd.in should be included 
3954         in EXTRA_DIST not dbus_binding.pxd
3955         fix up $(srcdir) hopefully for the last time
3956
3957         * NEWS: Update to 0.35.1
3958
3959 2005-07-16  Colin Walters  <walters@verbum.org>
3960
3961         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3962         from bus_driver_handle_get_connection_unix_security_context.  Update for
3963         error usage.
3964         (message_handlers): Update for renames.
3965
3966         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3967         _dbus_string_init failure correctly.
3968         (bus_selinux_append_context): Convert SID to context.  Append it
3969         as a byte array.
3970         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3971         hasn't been called.
3972
3973         * bus/selinux.h: Update prototype.
3974
3975         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3976         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3977
3978 2005-07-15  Colin Walters  <walters@verbum.org>
3979
3980         * doc/TODO: Add note about convenience wrappers.
3981
3982 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3983
3984         * NEWS: Update to 0.35
3985
3986 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3987
3988         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3989         so distcheck doesn't fail
3990
3991         * glib/examples/Makefile.am: Add example-service.xml and 
3992         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3993
3994         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3995         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3996
3997         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3998         compiler looks in the right places during distcheck
3999
4000 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4001
4002         * glib/example/Makefile.am: Fix a typo which cause make distcheck
4003         to fail
4004
4005 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4006
4007         * python/examples/example-service.py,
4008         python/examples/example-signal-emitter.py: Fixed up examples
4009         for API changes
4010
4011 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4012
4013         * python/__init__.py: Upped to version (0,42,0) because of
4014         the API change
4015
4016 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4017
4018         * ChangeLog: fix date in last entry
4019
4020         * configure.in, bus/system.conf.in: add the ability to configure 
4021         the system bus user at compiletime with the --with-dbus-user flag
4022         (patch from Kristof Vansant)
4023
4024 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
4025
4026         * bus/dispatch.c, test/test-service.c: Add testcase
4027         for sending messages to oneself (TODO item).
4028
4029         * python/service.py (class Object): Swap ordering of bus_name 
4030         and object_path parameters to better support inheritance.
4031
4032         * doc/dbus-tutorial.xml: change Python docs to reflect change
4033         in parameter ordering and fix the inheritance section.
4034
4035         * doc/TODO: remove sending message to oneself TODO item
4036
4037 2005-07-15  Ross Burton  <ross@openedhand.com>
4038
4039         * glib/dbus-gproxy.c:
4040         Fix a leak when calling methods via the proxy.
4041
4042 2005-07-15  Colin Walters  <walters@verbum.org>
4043
4044         * bus/selinux.c (bus_selinux_append_context): Wrap in
4045         HAVE_SELINUX.
4046
4047 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4048
4049         * python/_dbus.py (Bus::remove_signal_receiver):
4050         don't add a callback to the match if none has been passed in
4051         
4052         * python/matchrules.py (SignalMatchTree::remove): if the rule
4053         being matched does not have a callback treat it as a wildcard
4054         fix matching logic
4055
4056         * doc/dbus-tutorial.xml: Add Python tutorial
4057
4058 2005-07-14  Colin Walters  <walters@verbum.org>
4059
4060         * bus/driver.c
4061         (bus_driver_handle_get_connection_unix_security_context): New function.
4062         (message_handlers): Add.
4063
4064         * bus/selinux.c (bus_selinux_append_context): New function; appends
4065         security context to message.
4066
4067         * bus/selinux.h: Prototype.
4068
4069         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
4070
4071 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
4072
4073         * bus/activation.c: clean up all tabs to be 8 spaces 
4074         (bus_activation_activate_service): make sure we clean up
4075         if activation fails
4076
4077         * bus/dispatch.c: clean up all tabs to be 8 spaces 
4078         (check_shell_fail_service_auto_start): New function
4079         tests to make sure we get fail properly when trying to auto start a service
4080         with a faulty command line
4081         (check_shell_service_success_auto_start): New function tests to make sure
4082         auto started services get the arguments on the command line
4083
4084         * test/test-shell-service.c: Added service for testing auto-starting with 
4085         command line arguments
4086
4087         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
4088         test/data/valid-service-files/debug-shell-echo-success.service.in:
4089         Added service files for testing auto-starting with command line arguments
4090
4091         * */.cvsignore: added a bunch of generated files to various .cvsignore files
4092
4093 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
4094
4095         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
4096         
4097         * dbus/Makefile.am: added new files to build.
4098
4099         * bus/activation.c (bus_activation_activate_service): support
4100         activation commands with parameters.
4101
4102         * test/shell-test.c: added test program for the shell parsing
4103         code.
4104
4105 2005-07-13  David Zeuthen  <davidz@redhat.com>
4106
4107         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
4108         64 bit signed and unsigned parameters
4109
4110 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
4111
4112         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
4113
4114         * python/service.py (class Name): renamed BusName to make it clearer
4115         what the object is for (a name on the bus)
4116
4117         * python/examples/example-service.py,
4118         python/examples/example-signal-emitter.py: change the Name object to
4119         BusName
4120
4121 2005-07-12  Colin Walters  <walters@verbum.org>
4122
4123         Patch from Jim Gettys <Jim.Gettys@hp.com>.
4124
4125         * tools/dbus-launch.c: Include sys/select.h.
4126
4127 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
4128         * python/dbus_bindings.pyx.in: removed
4129
4130         * python/dbus_bindings.pyx: Added.
4131         - Fixed some memleaks (patch from 
4132         Sean Meiners <sean.meiners@linspireinc.com>)
4133         - Broke out the #include "dbus_h_wrapper.h" and put it in its
4134         own pxd file (Pyrex definition)
4135         - Broke out glib dependancies into its own pyx module
4136         
4137         * python/dbus_bindings.pdx: Added.
4138         - Defines C class Connection for exporting to other modules
4139
4140         * python/dbus_glib_bindings.pyx: Added.
4141         - New module to handle lowlevel dbus-glib mainloop integration
4142
4143         * python/glib.py: Added.
4144         - Registers the glib mainloop when you import this module
4145
4146         * python/services.py: Removed (renamed to service.py)
4147         
4148         * python/service.py: Added.
4149         - (class Server): renamed Name
4150
4151         * python/__init__.py: Bump ro version (0,41,0)
4152         -don't import the decorators or service module
4153         by default.  These now reside in the dbus.service namespace
4154
4155         * python/_dbus.py (Bus::__init__): Add code run the main loop 
4156         setup function on creation 
4157
4158         * python/examples/example-service.py,
4159         python/examples/example-signal-emitter.py: update examples
4160
4161         * python/examples/gconf-proxy-service.py,
4162         python/examples/gconf-proxy-service2.py: TODO fix these up
4163
4164         * doc/TODO: Addition
4165         - Added a Python Bindings 1.0 section
4166         - added "Add match on args or match on details to match rules"
4167
4168
4169 2005-07-12  Colin Walters  <walters@verbum.org>
4170
4171         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
4172         (statemachine-glue.h): 
4173         * glib/examples/Makefile.am (example-service-glue.h) 
4174         (example-signal-emitter-glue.h): 
4175         * glib/Makefile.am (dbus-glib-error-switch.h): 
4176         Add libtool --mode=execute so we use the built library instead
4177         of any installed one.
4178
4179 2005-07-11  Colin Walters  <walters@verbum.org>
4180
4181         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
4182         (dbus_g_value_types_init): Remove assertion.
4183         (dbus_g_value_get_g_type, dbus_g_value_open)
4184         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
4185         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
4186         functions related to DBusGValue.  Now we marshal/demarshal
4187         structures as GValueArray.
4188         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
4189         structures.
4190         (signature_iter_to_g_type_array): Don't call
4191         signature_iter_to_g_type_struct.
4192         (signature_iter_to_g_type_struct): Delete.
4193         (dbus_gvalue_to_signature): Delete.
4194         (dbus_gvalue_to_signature): New function with same name as other
4195         one; we can convert structures to signatures.
4196         (demarshal_valuearray): New function.
4197         (get_type_demarshaller): Use it.
4198         (demarshal_recurse): Delete.
4199         (marshal_proxy): New function.
4200         (marshal_map): Warn if we can't determine signature from type.
4201         (marshal_collection_ptrarray): Ditto.
4202         (marshal_collection_array): Ditto.
4203         (get_type_marshaller): Use marshal_valuearray.
4204         (marshal_recurse): Delete.
4205         (_dbus_gvalue_test): Add some tests.
4206
4207         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
4208         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
4209         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4210         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4211         (dbus_g_value_free): Remove prototypes.
4212
4213         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
4214         G_TYPE_VALUE_ARRAY.
4215
4216         * glib/examples/example-service.c:
4217         * glib/examples/example-client.c: Implement GetTuple.
4218
4219         * test/glib/test-dbus-glib.c:
4220         * test/glib/test-service-glib.c:
4221         * test/glib/test-service-glib.xml: Add structure tests.
4222
4223 2005-07-10  Colin Walters  <walters@verbum.org>
4224
4225         * doc/TODO: Knock off some GLib items with this patch.
4226
4227         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
4228         (_dbus_gvalue_signals_error): New functions.
4229
4230         * glib/dbus-gvalue-utils.h: Prototype them.
4231
4232         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
4233         and change to not output const/retval flags for input args.  All
4234         callers updated.
4235         (invoke_object_method): Refactor to handle return values.  Add
4236         some more comments in various places.  Remove debug g_print.
4237
4238         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
4239
4240         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
4241         Handle G_TYPE_NONE.
4242         (compute_gsignature): New function; refactored from code from
4243         compute_marshaller and compute_marshaller_name.  Enhance to
4244         handle return values and async ops more cleanly.  Update for
4245         async ops returning NONE instead of BOOLEAN.
4246         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
4247         and output appropriate string.
4248         (generate_glue): Handle return value annotation.  Also don't dump
4249         constness flag for input arguments.
4250
4251         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
4252         files shared between installed library and utilities.
4253         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4254         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4255         binding tool can access gtype utility functions.
4256
4257         * test/glib/test-service-glib.c: 
4258         * test/glib/test-service-glib.xml: 
4259         * test/glib/test-dbus-glib.c: Add some tests for return values.
4260
4261 2005-07-09  Colin Walters  <walters@verbum.org>
4262
4263         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4264         argument if available, not method.
4265
4266         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4267         (invoke_object_method): First, remove some redundant
4268         GValues (object_value, error_value) in favor of working on
4269         array directly.  Second, rework constness to be less buggy.
4270         Now we iterate directly over the argument metadata instead
4271         of parallel iterating over output signature and metadata.
4272
4273         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4274
4275         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4276         annotation on input args.
4277         
4278 2005-07-09  Colin Walters  <walters@verbum.org>
4279
4280         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4281         Define.
4282
4283         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4284         annotation.
4285
4286         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4287         (method_dir_signature_from_object_info): Handle arg_iterate change.
4288         (write_interface): Ditto.
4289         (lookup_object_info): Don't barf if format_version is > 0.
4290         (invoke_object_method): Handle arg constness.
4291
4292         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4293         (arg_info_new): Create.
4294         (arg_info_unref): Destroy.
4295         (arg_info_get_annotations, arg_info_get_annotation) 
4296         (arg_info_add_annotation): New functions.
4297
4298         * glib/dbus-gidl.h: Prototype them.
4299
4300         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4301         args, disallow them in properties.
4302         (parse_annotation): Handle arg annotations.
4303
4304         * test/glib/test-service-glib.xml: 
4305         * test/glib/test-service-glib.c: Update to make some methods
4306         const.
4307
4308 2005-07-08  Colin Walters  <walters@verbum.org>
4309
4310         * test/glib/test-service-glib.xml: 
4311         * test/glib/test-service-glib.c:
4312         * test/glib/test-dbus-glib.c: Test a{sv}.
4313
4314         * glib/examples/statemachine/statemachine.c:
4315         * glib/examples/statemachine/statemachine-server.c:
4316         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4317         add progress bar, etc.
4318
4319         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4320         needed anymore due to generic array/map marshalling.
4321         (dbus_g_value_types_init): Don't register basic arrays or the
4322         string/string hash.
4323         (dbus_gtype_from_signature_iter): Don't try to recurse into
4324         variants.
4325         (dbus_gtype_to_signature): Check collection/map before type
4326         metadata.
4327         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4328         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4329         generic map creation/append functions instead of hash table
4330         specifically.
4331         (get_type_demarshaller): Handle maps.
4332         (demarshal_collection): Dispatch on collection type to either
4333         demarshal_collection_ptrarray or demarshal_collection_array.
4334         (get_type_marshaller): Handle maps.
4335         (marshal_collection): Dispatch collection type to either
4336         marshal_collection_ptrarray or marshal_collection_array.
4337         (_dbus_gvalue_test): New test.
4338
4339         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4340         (hash_free_from_gtype): Use it to free GValues.
4341         (hashtable_append): New function.
4342         (ptrarray_append): Fix prototype.
4343         (slist_append): Ditto.
4344         (_dbus_gvalue_utils_test): Extend tests.
4345
4346         * glib/dbus-gtype-specialized.c
4347         (dbus_g_type_specialized_init_append): Renamed from
4348         dbus_g_type_specialized_collection_init_append.  Remove const from
4349         value, since we steal it.
4350         (dbus_g_type_specialized_map_append): New function.
4351
4352         * glib/dbus-gtype-specialized.h: Update prototypes.
4353         Add DBusGTypeSpecializedMapAppendFunc.
4354
4355         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4356         _dbus_gvalue_test.
4357         
4358         * glib/dbus-gtest.h: Prototype it.
4359
4360 2005-07-08  Ross Burton  <ross@openedhand.com>
4361
4362         * dbus/dbus-glib.h:
4363         Add DBysGAsyncData for the async bindings.
4364
4365         * glib/dbus-binding-tool-glib.c:
4366         Re-enable the async bindings.
4367
4368         * test/glib/test-dbus-glib.c:
4369         Add a test for the generated async bindings.
4370
4371 2005-07-08  Colin Walters  <walters@verbum.org>
4372
4373         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4374         connection concept.
4375         
4376 2005-07-08  Colin Walters  <walters@verbum.org>
4377         
4378         * tools/Makefile.am: Kill of print-introspect in favor of using
4379         dbus-send --print-reply=literal.
4380
4381         * test/glib/test-service-glib.xml: 
4382         * test/glib/test-service-glib.c (my_object_get_objs): New test
4383         for "ao".
4384
4385         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4386         (main): Test GetObjs.
4387
4388         * glib/examples/statemachine/Makefile.am:
4389         * glib/examples/statemachine/sm-marshal.list:
4390         * glib/examples/statemachine/statemachine-client.c:
4391         * glib/examples/statemachine/statemachine-server.c:
4392         * glib/examples/statemachine/statemachine-server.xml:
4393         * glib/examples/statemachine/statemachine.c:
4394         * glib/examples/statemachine/statemachine.h:
4395         * glib/examples/statemachine/statemachine.xml:
4396
4397         New example.
4398
4399         * glib/examples/example-service.c (main): Move invocation
4400         of dbus_g_object_type_install_info earlier, to emphasize it
4401         should only be done once.
4402
4403         * glib/examples/example-signal-emitter.c (main): Ditto.
4404
4405         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4406
4407         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4408         (dbus_gvalue_marshal): Update prototypes.
4409
4410         * glib/dbus-gvalue.c: Update all marshalling functions to take
4411         const GValue instead of GValue.
4412         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4413         types.
4414         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4415         change.
4416         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4417         Return a newly-allocated string.
4418         (demarshal_proxy, demarshal_object_path, demarshal_object)
4419         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4420         we get the wrong types from message.
4421         (get_type_demarshaller): New function, extracted from
4422         dbus_gvalue_demarshal.
4423         (demarshal_collection): New function, demarshals generic
4424         collection.
4425         (dbus_gvalue_demarshal): Just invoke result of
4426         get_type_demarshaller.  Throw error if we don't have one.
4427         (marshal_garray_basic): Abort on OOM.
4428         (get_type_marshaller): New function, extracted from
4429         dbus_gvalue_marshal.
4430         (collection_marshal_iterator, marshal_collection): New functions;
4431         implements generic marshalling for an iteratable specialized
4432         collection.
4433         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4434
4435         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4436         G_TYPE_STRING.
4437         (ptrarray_value_from_gvalue): Ditto.
4438         (ptrarray_append, ptrarray_free): New functions.
4439         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4440         (slist_append, slist_end_append, slist_free): New functions.
4441         (dbus_g_type_specialized_builtins_init): Add append fuctions
4442         for GPtrArray and GSList.  Register GSList.
4443         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4444
4445         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4446         New.
4447         (dbus_g_type_specialized_collection_init_append)
4448         (dbus_g_type_specialized_collection_append)
4449         (dbus_g_type_specialized_collection_end_append): Prototype.
4450         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4451         end_append_func.
4452
4453         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4454         (dbus_g_type_specialized_collection_append) 
4455         (dbus_g_type_specialized_collection_end_append): New functions.
4456         (dbus_g_type_map_value_iterate): Take const GValue.
4457         (dbus_g_type_collection_value_iterate): Ditto.
4458
4459         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4460         _dbus_gvalue_utils_test.
4461         
4462         * glib/dbus-gtest.h: Prototype it.
4463
4464         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4465         using uninitialized owner_list.
4466         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4467         public API.
4468         (dbus_g_proxy_end_call_internal): Update to use error set
4469         from dbus_gvalue_demarshal instead of setting it here.
4470         (dbus_g_proxy_begin_call): Move return_if_fail here.
4471
4472         * glib/dbus-gobject.c (write_interface): Update for
4473         dbus_gtype_to_signature returning new string.
4474
4475         * configure.in: Add glib/examples/statemachine.
4476
4477 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4478
4479         * configure.in: Add a configure option, --with-console-auth-dir
4480         
4481         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4482         new setting.  Patch from Kay Sievers.
4483
4484 2005-07-06  Colin Walters  <walters@verbum.org>
4485
4486         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4487         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4488         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4489         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4490         Delete in favor of dbus_g_proxy_begin_call and
4491         dbus_g_proxy_cancel_call.
4492         (DBusGProxyCall, DBusGProxyCallNotify): New.
4493         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4494         data, and destroy function.  This replaces
4495         dbus_g_pending_call_set_notify.
4496         (dbus_g_proxy_cancel_call): Prototype.
4497         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4498
4499         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4500         pending_calls map.
4501         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4502         internal proxy for calls to the bus. Remove
4503         pending_nameowner_calls, now the internal proxy keeps track.
4504         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4505         pending_nameowner_calls.
4506         (got_name_owner_cb): Update prototype, and use
4507         dbus_g_proxy_end_call.
4508         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4509         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4510         favor of using internal proxy.
4511         (dbus_g_proxy_manager_unregister): Update to use
4512         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4513         (dbus_g_proxy_init): Initialize pending calls map.
4514         (dbus_g_proxy_constructor): New.
4515         (dbus_g_proxy_class_init): Add get/set property functions,
4516         constructor, and add NAME, PATH, and INTERFACE properties.
4517         (cancel_pending_call): New function.
4518         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4519         cancel them.
4520         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4521         (GPendingNotifyClosure): New structure.
4522         (d_pending_call_notify, d_pending_call_free): Moved here from
4523         dbus-glib.c.
4524         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4525         ordering.
4526         (manager_begin_bus_call): New internal function for talking to
4527         internal bus proxy.
4528         (dbus_g_proxy_new): Construct object using GObjet properties.
4529         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4530         Create closure of same, and insert call into map of pending calls.
4531         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4532         call.  Look up pending call in current set.  Remove it when we've
4533         completed.
4534         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4535         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4536         and destroy function directly.
4537         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4538         (dbus_g_proxy_call): Invoke with NULL callback.
4539         (dbus_g_proxy_cancel_call): New function, replaces
4540         dbus_g_pending_call_cancel.
4541
4542         * glib/dbus-gparser.c (validate_signature): Fix call to
4543         dbus_set_g_error.
4544
4545         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4546         New quark for attaching metadata to GType.
4547         (info_hash): Delete.
4548         (lookup_object_info): Look up using quark.
4549         (dbus_g_object_type_install_info): Check that a type is classed,
4550         not that it's an object.  Also just install type data using quark
4551         instead of using global hash.
4552
4553         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4554         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4555         (GPendingNotifyClosure): Delete.
4556         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4557         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4558
4559         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4560         client method generation until we can fix it...
4561         
4562         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4563         (load_from_service_thread_func): Ditto.
4564
4565         * tools/dbus-names-model.c (struct NamesModel): Hold
4566         DBusGProxyCall.
4567         (have_names_notify): Update prototype, use
4568         dbus_g_proxy_cancel_call.
4569         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4570
4571         * tools/dbus-monitor.c (filter_func): Update for print_message
4572         API change.
4573
4574         * test/glib/test-dbus-glib.c: Add more tests for async
4575         invocations.  Update many begin_call/end_call pairs to just use
4576         dbus_g_proxy_call.
4577
4578         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4579         allows us to dump print-introspect.c.
4580
4581         * tools/dbus-print-message.h (print_message): Add literal argument
4582         to print_message which is intended to allow printing arguments without
4583         metadata like "string=".
4584
4585         * tools/dbus-print-message.c (print_iter): Add literal argument.
4586         (print_message): Allow printing string messages literally.
4587
4588 2005-07-05  Colin Walters  <walters@verbum.org>
4589
4590         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4591         Remove value refcount leak, original patch from Jorn Baayen
4592         <jorn@openedhand.com>.  Also remove useless extra value in favor
4593         of prepending to value array directly.
4594
4595 2005-07-02  Colin Walters  <walters@verbum.org>
4596
4597         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4598
4599 2005-07-01  Colin Walters  <walters@verbum.org>
4600
4601         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4602         
4603         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4604         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4605         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4606         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4607
4608 2005-06-30  Colin Walters  <walters@verbum.org>
4609
4610         * test/glib/test-dbus-glib.c:
4611         * test/glib/test-service-glib.c:
4612         * test/glib/test-service-glib.xml: Update tests for new error
4613         setting bits, also add async tests (patch from Ross Burton).
4614
4615         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4616         DBUS_GLIB_THREADS_LIBS.
4617
4618         * glib/dbus-gproxy.c (get_name_owner)
4619         (dbus_g_pending_call_end_valist): Ditto.
4620
4621         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4622         domain (GQuark) to DBusGErrorInfo.  
4623         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4624         quark in error_metadata.  Take message interface as default
4625         error message interface.
4626         (gerror_to_dbus_error_message): Pass message interface.
4627         (dbus_set_g_error): Resurrected.
4628         (dbus_g_error_info_free): New function.
4629         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4630         of _peek to actually create the object class if it hasn't been
4631         created yet.
4632         (dbus_g_error_domain_register): New function.
4633
4634         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4635
4636         * glib/dbus-gparser.c (validate_signature): Ditto.
4637
4638         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4639         (dbus_g_error_domain_register): Prototype.
4640
4641         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4642         Update tests.
4643
4644 2005-06-29  Colin Walters  <walters@verbum.org>
4645
4646         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4647         DBUS_TYPE_G_OBJECT_PATH.
4648
4649         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4650         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4651         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4652         (dbus_g_object_path_get_g_type): New function.
4653         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4654         to DBUS_TYPE_G_OBJECT_PATH by default.
4655         (demarshal_proxy): Remove unused name variable.
4656         (demarshal_object_path, marshal_object_path): New functions.
4657         (demarshal_proxy_array, marshal_proxy_array): Delete.
4658         
4659         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4660         DBUS_TYPE_G_OBJECT_PATH to char *.
4661         (dbus_g_type_get_lookup_function): Map builtin
4662         DBUS_TYPE_G_OBJECT_PATH.
4663
4664         * test/glib/test-dbus-glib.c
4665         * test/glib/test-service-glib.c (my_object_objpath): 
4666         Adapt tests to new object path marshalling.
4667
4668 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4669
4670         * configure.in: force check for Python >= 2.4
4671
4672 2005-06-29  Colin Walters  <walters@verbum.org>
4673         
4674         Patch from Ross Burton <ross@openedhand.com>
4675         
4676         * glib/dbus-gobject.c (invoke_object_method): Unset object
4677         value in all cases, not only in async case.
4678
4679 2005-06-29  Colin Walters  <walters@verbum.org>
4680
4681         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4682         name_call for keeping track of any outgoing GetNameOwner call.
4683         Also add for_owner and associated.
4684         (struct _DBusGProxyManager): Add owner_names, which is hash table
4685         that maps a base name to a list of names it owns (that we're
4686         interested in).  Add pending_nameowner_calls which is a list of
4687         all outstanding GetNameOwner; avoids us having to iterate over
4688         every proxy.  Add unassociated_proxies which keeps track of name
4689         proxies with no associated name owner.
4690         (dbus_g_proxy_manager_unref): Destroy owner_names.
4691         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4692         name refcounts.
4693         (find_name_in_info, name_owner_foreach)
4694         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4695         (dbus_g_proxy_manager_monitor_name_owner)
4696         (dbus_g_proxy_manager_unmonitor_name_owner)
4697         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4698         New functions; they manipulate the owner_names mapping.
4699         (got_name_owner_cb): New function.
4700         (get_name_owner): New function, extracted from
4701         dbus_g_proxy_new_for_name_owner.
4702         (dbus_g_proxy_manager_register): For now we need to keep track of
4703         all NameOwnerChanged.  Also if the proxy is for a name, if we
4704         don't already know the name owner, queue a new GetNameOwner
4705         request and add it to our list of unassociated proxies.  Otherwise
4706         inc the refcount.
4707         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4708         cancel any pending GetNameOwner call, etc.
4709         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4710         the owner_names mapping to look up the current names for the
4711         signal source, and dispatch to any proxies for that name.
4712         (dbus_g_proxy_new): Initialize new members.
4713         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4714         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4715         (dbus_g_pending_call_end_valist): New function, extracted from
4716         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4717         but want to use the GLib infrastructure.  Also note how many
4718         arguments in reply were over.
4719         (dbus_g_pending_call_end): New function, just call
4720         dbus_g_pending_call_end_valist.
4721         (dbus_g_proxy_end_call_internal): Just call
4722         dbus_g_pending_call_end_valist.
4723
4724         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4725         of builtin marshaller for STRING_STRING_STRING.
4726
4727         * test/glib/test-dbus-glib.c: 
4728         * test/glib/test-service-glib.c:
4729         * test/glib/test-service-glib.xml:
4730         Extend tests to cover name proxies, destruction of owner proxies,
4731         etc.
4732         
4733         * glib/examples/example-signal-recipient.c
4734         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4735         
4736         * tools/dbus-send.c (main): Print D-BUS error name in addition
4737         to message.
4738
4739 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4740
4741         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4742         cmessage_function_handler): Patch from 
4743         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4744         by using the Py_GILState_Ensure/Release to synchronize with the
4745         python runtime.
4746         
4747 2005-06-28  Ray Strode  <rstrode@redhat.com>
4748
4749         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4750         babysitter helper process on last unref, bug #2813.
4751
4752 2005-06-27  Colin Walters  <walters@verbum.org>
4753
4754         * test/glib/test-dbus-glib.c: 
4755         * test/glib/test-service-glib.c:
4756         * test/glib/test-service-glib.xml:
4757         Test hash table signal emitting.
4758
4759         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4760         types to their fundamental basis types, since this is what
4761         marshallers operate on.  Also add an entry for VOID__BOXED.
4762         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4763
4764 2005-06-26  Havoc Pennington  <hp@redhat.com>
4765
4766         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4767         from Don Park
4768
4769 2005-06-26  Colin Walters  <walters@verbum.org>
4770
4771         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4772         (dbus_g_error_set): New public function from its ashes; used by
4773         both service-side method implementation and GLib bindings
4774         internals.
4775         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4776         (_dbus_glib_test): Add some tests.
4777
4778         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4779
4780         * test/glib/test-service-glib.c (my_object_throw_error): Use
4781         dbus_g_error_set.
4782
4783         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4784         errors thrown by dbus_g_error_set.
4785
4786         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4787
4788         * glib/dbus-gparser.c (validate_signature): Ditto.
4789
4790         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4791         (dbus_g_proxy_end_call_internal): Ditto.
4792
4793         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4794         converts DBUS_ERROR_x to DBUS_GERROR_x.
4795         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4796
4797         * doc/TODO: Remove error TODO.
4798
4799         * doc/dbus-tutorial.xml: Update with documentation about error
4800         handling.
4801
4802         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4803         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4804         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4805
4806 2005-06-22  Colin Walters  <walters@verbum.org>
4807         
4808         Patch from Ross Burton <ross@openedhand.com>
4809
4810         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4811
4812 2005-06-20  Colin Walters  <walters@verbum.org>
4813
4814         * configure.in: Add glib/examples.
4815
4816         * glib/Makefile.am: Add examples/
4817
4818         * glib/examples/.cvsignore
4819         * glib/examples/Makefile.am
4820         * glib/examples/example-client.c
4821         * glib/examples/example-service.c
4822         * glib/examples/example-service.xml
4823         * glib/examples/example-signal-emitter.c
4824         * glib/examples/example-signal-emitter.xml
4825         * glib/examples/example-signal-recipient.c:
4826         New files; GLib binding examples, ported from
4827         python/examples.
4828
4829 2005-06-20  Colin Walters  <walters@verbum.org>
4830
4831         * dbus/dbus-glib.h: 
4832         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4833         dbus_g_proxy_call.
4834
4835         * glib/dbus-binding-tool-glib.c: 
4836         * doc/dbus-tutorial.xml: 
4837         * test/glib/test-dbus-glib.c: Update for rename.
4838         
4839 2005-06-20  Colin Walters  <walters@verbum.org>
4840
4841         Patch suggested by Ross Burton <ross@openedhand.com>
4842
4843         * glib/dbus-gobject.c (export_signals): Free signal name.
4844         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4845         memory leak.  Add a bit of documentation.
4846         (dbus_g_method_return_error): Free context, and note we do
4847         so.
4848
4849 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4850
4851         * dbus/dbus-glib.h:
4852         * glib/dbus-gobject.c:
4853         * glib/dbus-gproxy.c:
4854         * glib/dbus-gvalue.c: Predeclare structs as 
4855         typedef struct _Something Something instead of 
4856         typedef struct Something Something, so we can 
4857         redeclare the prototypes. Other GNOME libraries 
4858         do this already.
4859
4860 2005-06-17  Colin Walters  <walters@verbum.org>
4861
4862         * tools/dbus-names-model.c (have_names_notify): Fix call
4863         to dbus_g_proxy_end_call.
4864         
4865 2005-06-17  Colin Walters  <walters@verbum.org>
4866
4867         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4868         spew warnings if we get malformed remote signals.
4869
4870         * glib/dbus-gobject.c (propsig_iterate): New function.
4871         (lookup_object_info): New function, extracted from
4872         lookup_object_and_method.
4873         (introspect_properties, introspect_signals): Delete; these
4874         are merged into write_interface.
4875         (write_interface): Write out signals and properties here;
4876         dump the org.gtk.object stuff and use the interface given
4877         in the introspection data blob.  Also fix up property XML.
4878         (lookup_values): New function.
4879         (introspect_interfaces): Gather a mapping from interface to a
4880         list of its methods, signals, and properties, then write out
4881         each interface.
4882         (lookup_object_and_method): Use lookup_object_info.
4883         (struct DBusGSignalClosure): Add interface.
4884         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4885         we can just use the constant data.
4886         (dbus_g_signal_closure_finalize): Don't free signal name.
4887         (signal_emitter_marshaller): Use interface from signal closure.
4888         (export_signals): Only export signals mentioned in introspection
4889         blob.
4890         (dbus_g_connection_register_g_object): Warn if we have no
4891         introspection data for an object.
4892         (funcsig_equal): Remove unused variable.
4893         (dbus_g_object_register_marshaller): Take varargs instead of
4894         list.
4895         (dbus_g_object_register_marshaller_array): New function,
4896         extracted from old dbus_g_object_register_marshaller.
4897
4898         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4899         signals and property data.
4900         (write_quoted_string): New function, extracted from generate_glue.
4901         (generate_glue): Write signals and properties to introspection
4902         blob.
4903
4904         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4905         exported_signals and exported_properties.
4906         (dbus_g_object_register_marshaller): Update prototype.
4907         (dbus_g_object_register_marshaller_array): Prototype.
4908         
4909         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4910
4911         * test/glib/test-service-glib.c: Add new test signals and method
4912         to emit them.
4913
4914         * test/glib/test-service-glib.xml: Add some test signals.
4915
4916         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4917         and my-object-marshal.h
4918         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4919         my-object-marshal.c.
4920         (my-object-marshal.c, my-object-marshal.h): Implement.
4921
4922         * test/glib/.cvsignore: Update.
4923
4924         * doc/TODO: Remove two GLib TODO items fixed by this
4925         patch.
4926
4927 2005-06-16  Colin Walters  <walters@verbum.org>
4928
4929         * doc/TODO: Update for GLib bindings.
4930         
4931 2005-06-16  Colin Walters  <walters@verbum.org>
4932
4933         * glib/dbus-binding-tool-glib.c:
4934         * glib/dbus-gobject.c:
4935         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4936         from Ross Burton, for his GLib bindings work.
4937
4938 2005-06-16  Colin Walters  <walters@verbum.org>
4939
4940         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4941         to iterate instead of walking to G_TYPE_INVALID.
4942
4943         Patch based on a patch from Ryan Gammon.
4944
4945 2005-06-16  Colin Walters  <walters@verbum.org>
4946
4947         * bus/bus.c (bus_context_new): Set parser to NULL
4948         after we unref it (Patch from Chris Boscolo, #2174).
4949         
4950 2005-06-16  Colin Walters  <walters@verbum.org>
4951
4952         * python/dbus_bindings.pyx.in: Import size_t,
4953         __int64_t, __uint64_t, and __signed.
4954
4955         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4956         Define cmsg struct, output it.
4957         (_dbus_read_credentials_unix_socket):
4958         Use cmsg struct.
4959         
4960         Patch from Joe Markus Clarke for FreeBSD support.
4961         
4962 2005-06-16  Colin Walters  <walters@verbum.org>
4963
4964         * tools/dbus-send.c (append_array): Use strtok.
4965         (append_dict): New function.
4966         (type_from_name): New function, extracted from main.
4967         (main): Handle sending dicts.
4968
4969         * tools/dbus-print-message.c (print_iter): Print dict
4970         entries.
4971         
4972 2005-06-16  Colin Walters  <walters@verbum.org>
4973
4974         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4975         values as the empty string (#2948).
4976         
4977 2005-06-16  Colin Walters  <walters@verbum.org>
4978
4979         * dbus/Makefile.am:
4980         * mono/doc/Makefile.am:
4981         * test/glib/Makefile.am:
4982
4983         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4984
4985 2005-06-16  Colin Walters  <walters@verbum.org>
4986
4987         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4988         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4989
4990         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4991         Increment pointer after swapping fixed array.  Add assertion
4992         for array length.
4993                 
4994 2005-06-15  Colin Walters  <walters@verbum.org>
4995
4996         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4997         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4998         
4999 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5000
5001         * NEWS: Update to 0.34
5002
5003 2005-06-15  David Zeuthen  <davidz@redhat.com>
5004
5005         * configure.in (LT_CURRENT): Revert back to 1 as the library
5006         hasn't changed and we've certainly not committed to protocol
5007         stability yet.  All this does is to break ABI. See commit note
5008         from hp@redhat.com 2005-05-05 for details.
5009         
5010 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5011
5012         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
5013         (_dbus_connection_run_builtin_filters): New method
5014         (dbus_connection_dispatch): Run the builtin filters which in turn
5015         runs the peer filter which handles Ping messages.
5016
5017         * doc/TODO: 
5018          - Ping isn't handled: This patch fixes it
5019          
5020          - Add a test case for the Ping message: added TODO item
5021
5022 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5023
5024         * dbus/dbus-message.c:
5025         (dbus_message_has_path): New method
5026         (dbus_message_has_interface): New method
5027         (dbus_message_has_member): New method
5028
5029         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
5030         New method
5031
5032         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
5033         the keyring directory is private to the user
5034
5035         * doc/TODO:
5036          - The convenience functions in dbus-bus.h should perhaps have
5037          the signatures that they would have if they were autogenerated
5038          stubs. e.g. the acquire service function. We should also evaluate
5039          which of these functions to include, in light of the fact that
5040          GLib/Qt native stubs will probably also exist.: Punted
5041
5042          - add dbus_message_has_path(), maybe has_member/interface:
5043          fixed in this patch
5044
5045          - in dbus-keyring.c, enforce that the keyring dir is not
5046          world readable/writable: Fixed in this patch
5047
5048 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
5049
5050         * dbus/dbus-marshal-validate.h: Added a new validation
5051         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
5052         out of memory errors when validating signitures
5053
5054         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
5055         in places where we previously used DBUS_VALID and a FALSE return 
5056         value to indicate OOM
5057         
5058         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
5059         Use a stack to track the number of elements inside containers.  The 
5060         stack values are then used to validate that dict entries have only two
5061         elements within them.
5062         (validate_body_helper): check the reason for failure when validating
5063         varients
5064         
5065         * dbus/dbus-message.c (load_message): use 
5066         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
5067         DBUS_VALID and a FALSE return value to indicate OOM
5068
5069         * doc/TODO: remove "- validate dict entry number of fields" as this
5070         patch fixes it
5071
5072 2005-06-14  David Zeuthen  <davidz@redhat.com>
5073
5074         * bus/bus.c (process_config_every_time): Drop existing conf-dir
5075         watches (if applicable) and add new watches
5076
5077         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
5078         (main): Setup SIGIO signal handler if using D_NOTIFY
5079
5080         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
5081
5082         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
5083         (merge_included): Also merge conf_dirs list
5084         (bus_config_parser_unref): Clear conf_dirs list
5085         (include_dir): Add directory to conf_dirs list
5086         (bus_config_parser_get_conf_dirs): New function
5087
5088         * bus/dir-watch.[ch]: New files
5089
5090         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
5091
5092         * configure.in: Add checks for D_NOTIFY on Linux
5093
5094 2005-06-14  Colin Walters  <walters@verbum.org>
5095
5096         * glib/dbus-binding-tool-glib.c:
5097         * glib/dbus-gobject.c:
5098         * glib/dbus-gvalue.c: Fix indentation and brace style.
5099         
5100 2005-06-14  Ross Burton <ross@openedhand.com>.
5101
5102         * glib/dbus-glib.h: Make DBusGMethodInvocation
5103         a private structure.  Rearrange prototypes a bit.
5104         
5105         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
5106         documentation for first_arg_type.
5107         
5108         * glib/dbus-gobject.c: Move DBusGMethodInvocation
5109         here, add documentation.  Move dbus_g_method_return
5110         and dbus_g_method_return_error into public API
5111         section.
5112
5113 2005-06-14  Colin Walters  <walters@verbum.org>
5114
5115         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
5116         Add missing return statements, noticed by Ross Burton.
5117         
5118 2005-06-13  Ross Burton <ross@openedhand.com>.
5119
5120         * glib/dbus-gobject.c: Handle errors on message
5121         demarshalling by sending error message back.
5122         * glib/dbus-gvalue.c: Initialize return variables.
5123
5124 2005-06-13  Colin Walters  <walters@verbum.org>
5125
5126         * glib/Makefile.am: Fix thinko in last patch.
5127
5128 2005-06-13  Colin Walters  <walters@verbum.org>
5129
5130         * glib/Makefile.am: Move dbus-gtype-specialized.c
5131         and dbus-gtype-specialized.h into a _HEADERS variable,
5132         install them.
5133
5134 2005-06-12  Colin Walters  <walters@verbum.org>
5135
5136         Async signals and various bugfixes and testing by
5137         Ross Burton <ross@openedhand.com>.
5138
5139         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
5140         (dbus_gvalue_genmarshal_name_from_type)
5141         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
5142         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
5143         (dbus_g_value_types_init, dbus_gtype_from_signature)
5144         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
5145         (dbus_gtypes_from_arg_signature): New function prototypes.
5146         (dbus_gvalue_demarshal): Take context and error arguments.
5147         (dbus_gvalue_demarshal_variant): New function.
5148         (dbus_gvalue_demarshal_message): New function.
5149         (dbus_gvalue_store): Delete.
5150
5151         * glib/dbus-gvalue.c:
5152
5153         File has been almost entirely rewritten; now we special-case
5154         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
5155         hash tables correctly, etc.  Full support for recursive values
5156         is not yet complete.
5157
5158         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
5159         argument of signal to G_TYPE_POINTER since we now pass a
5160         structure.
5161         (lookup_g_marshaller): Delete in favor of
5162         _dbus_gobject_lookup_marshaller.
5163         (marshal_dbus_message_to_g_marshaller): Use
5164         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
5165         to handle remote signal callbacks.
5166         (dbus_g_proxy_new_from_proxy): New function; creates a new
5167         DBusGProxy by copying an existing one.
5168         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
5169         (dbus_g_proxy_get_path): New functions.
5170         (dbus_g_proxy_marshal_args_to_message): New function;
5171         factored out of existing code.
5172         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
5173         from a varargs array.
5174         (dbus_g_proxy_begin_call_internal): New function.
5175         (dbus_g_proxy_end_call_internal): New function.
5176         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
5177         as arguments; simply invoke dbus_g_proxy_begin_call_internal
5178         after collecting args into value array.
5179         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
5180         invoke dbus_g_proxy_end_call_internal.
5181         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
5182         end_call_internal.
5183         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
5184         types.
5185         (array_free_all): New function.
5186         (dbus_g_proxy_add_signal): Take GTypes.
5187
5188         * glib/dbus-gobject.h:
5189         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5190         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
5191         Prototype.
5192
5193         * glib/dbus-gobject.c: Add a global marshal_table hash which
5194         stores mappings from type signatures to marshallers.  Change lots
5195         of invocations of dbus_gtype_to_dbus_type to
5196         dbus_gtype_to_signature.
5197         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
5198         (introspect_signals): Fix test for query.return_type.
5199         (set_object_property): Update invocation of dbus_gvalue_demarshal.
5200         (invoke_object_method): Many changes.  Handle asynchronous
5201         invocations.  Convert arguments with
5202         dbus_gvalue_demarshal_message.  Handle errors.  Use
5203         DBusSignatureIter instead of strlen on args. Handle all arguments
5204         generically.  Special-case variants.
5205         (dbus_g_method_return, dbus_g_method_return_error): New function.
5206         (DBusGSignalClosure): New structure, closes over signal
5207         information.
5208         (dbus_g_signal_closure_new): New function.
5209         (dbus_g_signal_closure_finalize): New function.
5210         (signal_emitter_marshaller): New function; is special marshaller
5211         which emits signals on bus.
5212         (export_signals): New function; introspects object signals and
5213         connects to them.
5214         (dbus_g_object_type_install_info): Take GType instead of
5215         GObjectClass.
5216         (dbus_g_connection_register_g_object): Invoke export_signals.
5217         (dbus_g_connection_lookup_g_object): New function.
5218         (DBusGFuncSignature) New structure; used for mapping type
5219         signatures to marshallers.
5220         (funcsig_hash): New function; hashes DBusGFuncSignature.
5221         (funcsig_equal): New function; compares DBusGFuncSignature.
5222         (_dbus_gobject_lookup_marshaller): New function.
5223         (dbus_g_object_register_marshaller): New function; used to
5224         register a marshaller at runtime for a particular signature.
5225
5226         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
5227
5228         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
5229         which notes a server method implementation should be
5230         asynchronous.
5231
5232         * glib/dbus-binding-tool-glib.c
5233         (dbus_binding_tool_output_glib_server): Call
5234         dbus_g_value_types_init.
5235         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
5236         variants specially.
5237         (dbus_g_type_get_lookup_function): Turn GType into an invocation
5238         of a lookup function.
5239         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
5240         (write_untyped_out_args): New method; write output arguments.
5241         (write_formal_declarations_for_direction): Function for
5242         writing prototypes.
5243         (write_formal_parameters_for_direction): Function for
5244         writing implementations.
5245         (write_typed_args_for_direction): Function for writing
5246         arguments prefixed with GTypes.
5247         (write_async_method_client): Write out async version
5248         of method.
5249
5250         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
5251         (dbus_g_type_get_marshal_name): Move mapping from GType
5252         to marshal name into here.
5253         (dbus_g_type_get_c_name): Move into here.
5254         (compute_marshaller): Convert signature to type with
5255         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5256         (compute_marshaller_name): Ditto.
5257         (compute_marshaller): Handle async signal annotations.
5258         (gather_marshallers): Return if we don't have a known
5259         prefix.
5260         (generate_glue): Collect introspection blob here, and
5261         write all of the blob at the end.  This allows an object
5262         with multiple interfaces to work.
5263         Mark async methods in introspection blob.
5264
5265         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5266         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5267         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5268
5269         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5270         avoids people accidentally using DBUS_TYPE_* which should
5271         not be necessary anymore.
5272         Do include dbus-gtype-specialized.h, which are utilities
5273         for GLib container types.
5274         Add various #defines for types such as
5275         DBUS_TYPE_G_BOOLEAN_ARRAY.
5276         (DBusGValueIterator, DBusGValue): Define, not fully used
5277         yet.
5278         (dbus_g_value_get_g_type): Type for recursive value.
5279         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5280         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5281         (dbus_g_value_free): Prototypes.
5282         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5283         (dbus_g_proxy_set_interface): Prototype.
5284         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5285         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5286         types.
5287         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5288         Accessors.
5289         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5290         doing async invocations.
5291         (dbus_g_method_return, dbus_g_method_return_error):
5292         Prototypes.
5293         * doc/dbus-tutorial.xml: Update GLib section.
5294         
5295         * tools/dbus-viewer.c (load_child_nodes): Update
5296         for new invocation type of dbus_g_proxy_end_call.
5297         (load_from_service_thread_func): Ditto.
5298
5299         * tools/print-introspect.c (main): Ditto.
5300
5301         * tools/dbus-names-model.c (have_names_notify)
5302         (names_model_reload, names_model_set_connection)
5303         Use GTypes.
5304
5305         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5306         needed since Python bindings use GLib bindings.
5307
5308         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5309         Add --prefix argument.
5310
5311         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5312         unneeded --ignore-unsupported arg.
5313         
5314         * test/glib/test-service-glib.c: 
5315         * test/glib/test-service-glib.xml:
5316         * test/glib/test-dbus-glib.c: Add many more tests.
5317
5318 2005-06-06  David Zeuthen  <davidz@redhat.com>
5319
5320         * doc/TODO: Add item about need to remove deprecated functions.
5321
5322         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5323
5324         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5325         to repair the ABI which was broken with the last commit.
5326
5327 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5328
5329         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5330         (dbus_connection_disconnect): renamed to dbus_connection_close 
5331         for API symmetry with dbus_connection_open
5332         (_dbus_connection_open_internal): 
5333         s/dbus_connection_disconnect/dbus_connection_close
5334
5335         * dbus/dbus-bus.c (dbus_bus_get):
5336         s/dbus_connection_disconnect/dbus_connection_close
5337
5338         * bus/connection.c (bus_connections_unref, 
5339         bus_connections_setup_connection, bus_connections_expire_incomplete):
5340         s/dbus_connection_disconnect/dbus_connection_close
5341
5342         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5343         kill_client_connection_unchecked, check_hello_connection):
5344         s/dbus_connection_disconnect/dbus_connection_close
5345
5346         * bus/bus.c (new_connection_callback):
5347         s/dbus_connection_disconnect/dbus_connection_close
5348
5349         * tools/dbus-send.c (main):
5350         s/dbus_connection_disconnect/dbus_connection_close
5351
5352         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5353         s/dbus_connection_disconnect/dbus_connection_close
5354         
5355         * test/test-service.c (path_message_func, filter_func):
5356         s/dbus_connection_disconnect/dbus_connection_close
5357         
5358         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5359         
5360 2005-05-25  Colin Walters  <walters@verbum.org>
5361
5362         * dbus/dbus-protocol.h: Move various bus service #defines such
5363           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5364           dbus/dbus-shared.h.
5365         * dbus/dbus-shared.h: Various defines moved here.
5366         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5367
5368 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5369
5370         * python/__init__.py: Python bindings deserve a minor version
5371         update.  Upped to (0, 40, 2)
5372
5373 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5374
5375         * python/decorators.py: add explicitly_pass_message decorator
5376         for passing in the dbus message as keyword for edge case signal
5377         handling
5378
5379         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5380         to conform with what dbus expects for match rules
5381         (SignalMatchRule.execute): add the dbus message as a keyword
5382         if the signal handler has requested it
5383
5384         * python/examples/example/signal-recipient.py: added some more
5385         examples on how to hook up to signals
5386
5387 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5388
5389         * python/decorators.py: import dbus_bindings
5390
5391         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5392         SignalMatchNode): new classes that implement wildcard signal
5393         callback matching using a tree lookup. Heavily modified from a
5394         patch sent by Celso Pinto (fd.o bug #3241)
5395
5396         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5397         use new match classes to handle signals.
5398
5399 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5400         
5401         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5402
5403 2005-05-18  Havoc Pennington  <hp@redhat.com>
5404
5405         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5406         gettext. Not really worth requiring yet perhaps, but any
5407         production quality 1.0 would require it so we should go ahead and
5408         get things set up. We do have a couple token calls to
5409         bindtextdomain in the code already.
5410
5411 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5412
5413         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5414         when using recursive g_main_loops
5415
5416         * python/_dbus.py (class Bus): add the ProxyObjectClass
5417         alias for ProxyObject to make it easier for the Twisted 
5418         networking framework to integrate dbus.
5419
5420         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5421         alias for ProxyMethod to make it easier for the Twisted 
5422         networking framework to integrate dbus. 
5423
5424 2005-05-11  Ross Burton  <ross@openedhand.com>
5425
5426         * glib/dbus-glib-tool.c: Add --prefix argument.
5427         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5428         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5429         Add prefix argument.
5430         (generate_glue): Pass prefix argument down.
5431         (dbus_binding_tool_output_glib_server): Pass prefix to
5432         glib-genmarshal.
5433         
5434 2005-05-11  Colin Walters  <walters@verbum.org>
5435
5436         * tools/dbus-send.c (append_array): New function.
5437         (append_arg): Broken out from main.
5438         (main): Add cheesy hack to send arrays and variants.
5439         (usage): Update.
5440         * tools/dbus-print-message.c (print_iter): Broken out
5441         from main.
5442
5443 2005-05-11  Colin Walters  <walters@verbum.org>
5444
5445         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5446         New function, returns signature string for signature iter.
5447         * dbus/dbus-signature.h: Prototype it.
5448         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5449         New function, returns signature string for message iter.
5450         (dbus_message_iter_get_array_len): New function, returns
5451         length of array.
5452         (dbus_message_iter_get_fixed_array): Fix assertion; this
5453         function should be used when the iter is pointing to the
5454         contents of an array
5455         * dbus/dbus-message.h: Prototypes.
5456         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5457         New function; returns length of an array.
5458         * dbus/dbus-marshal-recursive.h: Prototype it.
5459         
5460 2005-05-11  Colin Walters  <walters@verbum.org>
5461
5462         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5463         compilation error.
5464         
5465 2005-05-08  Havoc Pennington  <hp@redhat.com>
5466
5467         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5468         daemon's pid, not the parent's pid, to the file descriptor.
5469         Reported by Taj Morton.
5470
5471 2005-05-05  Havoc Pennington  <hp@redhat.com>
5472
5473         * configure.in (LT_*): add notes on how the libtool versioning
5474         works to save thinking. Increment soname to indicate protocol
5475         breakage (though really the library interface hasn't changed I
5476         guess)
5477
5478         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5479         verify the GUID received from server matches what we were
5480         expecting, if we had an expectation
5481
5482         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5483         (_dbus_auth_get_guid_from_server): new function
5484         (send_begin): parse the OK args
5485
5486         * doc/dbus-specification.xml: add GUID to the auth protocol
5487
5488 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5489
5490         * Fix my name in previous changelog ;)
5491
5492         * python/proxies.py (ProxyObject.__getattr__): add further patch
5493         from Anthony Baxter to throw an AttributeError when python 
5494         __special__ functions are called instead of marshling them over 
5495         the bus (Bug#1685 comment 3).
5496
5497 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5498
5499         * python/Makefile.am: changed to use pyexecdir for the binding
5500         shared libraries (Bug#2494)
5501
5502         * python/exceptions.py: bring exceptions over from the bindings
5503         so they can be used in applications (Bug#2036)
5504         Make all exceptions derive from DBusException
5505
5506         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5507         of classes so that print obj doesn't throw an exception (Bug #1685)
5508
5509 2005-05-03  Ross Burton  <ross@openedhand.com>
5510
5511         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5512         Return if we get an error during registration.  Set up a
5513         weak reference on object to unregister if object is destroyed.
5514         (unregister_gobject): New function.
5515         
5516 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5517
5518         * python/dbus_bindings.pyx.in: 
5519         - added new type classes for hinting to the marashaler what type 
5520         to send over the wire
5521         - added int16 and uint16 marshalers
5522         - Fixed a bug in the type constants that caused int32 to go out
5523         as uint16 over the wire
5524         * python/dbus.py: split up into different files and renamed _dbus.py
5525         * python/__init__.py, python/_util.py, python/decorators.py, 
5526         python/exceptions.py, python/proxies.py, python/services.py,
5527         python/types.py: new files split off from dbus.py
5528         * python/Makefile.am: Add new files, remove dbus.py and 
5529         install all python files to <python module dir>/dbus
5530         * python/examples/*: Added #!/usr/bin/env python to the top of
5531         every example.  Patch provided by Tatavarty Kalyan
5532
5533 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5534
5535         * NEWS: Update to 0.33
5536
5537 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5538
5539         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5540         method for doing async calls
5541         (_pending_call_notification): New C function for handling pendning call
5542         callbacks
5543         (set_notify): New method for setting pending call notification
5544         
5545         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5546         Async capabilities added to remote method calls
5547         (Sender): class removed
5548         (RemoteService): class removed
5549         (ObjectTree): class removed for now
5550         (RemoteObject): Renamed to ProxyObject
5551         (RemoteMethod): Renamed to ProxyMethod
5552         (method): Decorator added for decorating python methods as dbus methods
5553         (signal): Decorator added for decorating python methods as signal emitters
5554         (ObjectType): Metaclass added for generating introspection data and the
5555         method callback vtable
5556         (Interface): Wrapper class added to wrap objects in a dbus interface
5557         (Object): Uses ObjectType as its metaclass and exports Introspect
5558         of the org.freedesktop.DBus.Introspectable interface
5559         (ValidationException, UnknownMethodException): new exceptions
5560
5561         * python/examples/*: Modified to fit with the new bindings
5562
5563 2005-04-23  Havoc Pennington  <hp@redhat.com>
5564
5565         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5566         reported by Tony Houghton
5567
5568         * test/test-service.c (main): test
5569         dbus_connection_get_object_path_data()
5570
5571         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5572         the exact_match
5573         (_dbus_object_tree_get_user_data_unlocked): new function used by
5574         dbus_connection_get_object_path_data()
5575         (do_register): add assertion test for get_user_data_unlocked
5576         (object_tree_test_iteration): more tests
5577
5578         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5579         new function from Dan Reed to let you get the user data from 
5580         dbus_connection_register_object_path()
5581
5582 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5583
5584         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5585         in numerous places that did not account for the NULL terminator
5586         (signature_from_seed): changed the manual string copy loop to 
5587         just use strcpy instead
5588         make check should now pass
5589
5590 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5591
5592         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5593         so that it allows messages that are not signals to pass in 
5594         NULL as the interface.
5595
5596 2005-04-18  David Zeuthen  <davidz@redhat.com>
5597
5598         * glib/dbus-gmain.c (io_handler_destroy_source): 
5599         (timeout_handler_destroy_source, connection_setup_free): 
5600         Also unref the source to avoid memory leaks.
5601
5602 2005-04-13  David Zeuthen  <davidz@redhat.com>
5603
5604         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5605         more reasonable, yet still totally arbitrary, value :-). 
5606
5607 2005-04-13  David Zeuthen  <davidz@redhat.com>
5608
5609         * doc/TODO: Added an "important for 1.0" item about selinux
5610         allow/deny messages
5611
5612 2005-04-13  David Zeuthen  <davidz@redhat.com>
5613
5614         * bus/selinux.c: Add c-file-style to top of file
5615         (log_audit_callback): Don't free the data here anymore
5616         (bus_selinux_check): Don't take spid and tpid since appending
5617         that to auxdata may OOM.
5618         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5619         to the caller if we are OOM by taking an error object.
5620         (bus_selinux_allows_send): -do-
5621
5622         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5623         and bus_selinux_allows_send
5624
5625         * bus/bus.c (bus_context_check_security_policy): Pass error and
5626         pass on OOM thrown by bus_selinux_allows_send()
5627
5628         * bus/services.c (bus_registry_acquire_service): Pass error and
5629         pass on OOM thrown by bus_selinux_allows_acquire_service()
5630
5631 2005-04-13  Havoc Pennington  <hp@redhat.com>
5632
5633         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5634         message at a time to avoid monopolizing the main loop, bug 
5635         #2953 from Benjamin Otte
5636
5637 2005-04-09  Havoc Pennington  <hp@redhat.com>
5638
5639         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5640         possible overlap, fix from Daniel Reed
5641         (fixup_alignment): fix signedness warnings
5642         (_dbus_string_append_unichar): ditto
5643
5644 2005-04-09  Havoc Pennington  <hp@redhat.com>
5645
5646         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5647
5648         * glib/dbus-glib-tool.c (main): fix warning
5649
5650         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5651
5652         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5653         add a new function that can be used in simple applications that
5654         don't have a main loop and are willing to block
5655
5656 2005-04-05  David Zeuthen  <davidz@redhat.com>
5657
5658         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5659
5660         * glib/dbus-gmain.c:
5661         (io_handler_destroy_source): Remove from list of IO handlers
5662         of the ConnectionSetup object
5663         (timeout_handler_destroy_source): -do- for timeout handlers
5664         (io_handler_source_finalized): Don't remove from list since
5665         we now do that in io_handler_destroy_source(). Renamed from
5666         io_handler_source_destroyed
5667         (timeout_handler_source_destroyed): -do- for timeout handlers
5668         (connection_setup_free): It is now safe to iterate over all
5669         IO and timeout handlers as the _destroy_source removes them
5670         from the list synchronously
5671
5672 2005-03-30  Havoc Pennington  <hp@redhat.com>
5673
5674         * configure.in: change check to gtk 2.4
5675
5676         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5677         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5678         to 2.4
5679
5680 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5681
5682         * News: Update 0.32
5683
5684         * HACKING: Fixed realease instructions.  configure.in should be updated to
5685           the next release by the person who made the last release.
5686
5687 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5688
5689         * python/lvalue_cast_post_process.py - removed.  Patch has been
5690           submitted to Pyrex maintainers that fixes gcc4.0 errors
5691
5692         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5693
5694 2005-03-24  Daniel Reed  <n@ml.org>
5695
5696         * tools/Makefile.am: Make print-introspect and
5697         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5698
5699 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5700
5701         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5702
5703         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5704           had in Red Hat packages for a while but for some reason never 
5705           got merged upstream
5706           (_dbus_is_a_number): New checks if a string
5707           can be converted to a number and does the conversion if it can
5708           (_dbus_user_database_lookup): Add check to see if the given username
5709           is a udi.  This allows udi's to be used instead of usernames in the
5710           config file.
5711           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5712           is a gdi.  This allows gdi's to be used instead of groupnames in the
5713           config file.
5714
5715 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5716
5717         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5718           code so that it compiles with gcc4.0
5719
5720         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5721           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5722           results back to dbus_binding.c
5723
5724 2005-03-20  Colin Walters  <walters@verbum.org>
5725
5726         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5727
5728         * configure.in: Require GTK+ 2.6.
5729         
5730 2005-03-20  Colin Walters  <walters@verbum.org>
5731
5732         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5733
5734 2005-03-17  Tom Parker  <palfrey@tevp.net>
5735
5736         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5737         print DBUS_UID_UNSET; instead print passed username.  Also
5738         be sure to actually use gid looked up in cache.
5739         
5740         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5741         for DBUS_GID_UNSET and groupname.
5742
5743 2005-03-17  Colin Walters  <walters@verbum.org>
5744
5745         * bus/print-introspect.c: Move to tools/.
5746         * bus/run-with-tmp-session-bus.sh: Ditto.
5747         
5748         * glib/Makefile.am (dbus-glib-bindings.h): Move
5749         generation to tools/Makefile.am.
5750
5751         * test/glib/run-test.sh: Update to handle move
5752         of run-with-tmp-session-bus.sh.
5753
5754         * test/glib/test-service-glib.c: Update to handle
5755         move of dbus-glib-bindings.h.
5756
5757         * tools/print-introspect.c: Moved here
5758         from bus/, and ported to GLib bindings.
5759
5760         * tools/run-with-tmp-session-bus.sh: Moved here
5761         from bus/.
5762
5763         * tools/Makefile.am: Generate dbus-glib-bindings.h
5764         and dbus-bus-introspect.xml here.
5765
5766         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5767         Update.
5768
5769 2005-03-17  Colin Walters  <walters@verbum.org>
5770
5771         * bus/driver.c (write_args_for_direction): Use
5772         _dbus_string_get_const_data to retrieve string;
5773         _dbus_string_get_const_data_len doesn't actually return
5774         a NULL-terminated substring.
5775
5776         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5777         (main): Change to use org_freedesktop_DBus_request_name
5778         instead of using g_proxy_begin_call/end_call.
5779
5780 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5781
5782         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5783         generating the finalizer.  Fixes from Ben Maurer.
5784
5785 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5786
5787         * mono/BusDriver.cs: Update method names: ListServices
5788         becomes ListNames; GetOwner becomes GetNameOwner.
5789
5790         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5791         onto the eval stack when removing the delegate.
5792
5793 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5794
5795         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5796         LT_CURRENT.  Set it to the autoconf variable.
5797                                                                                 
5798         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5799         classes that disconnects the signal handler delegate from the
5800         service object.  Fixes a big leak of proxy objects on the
5801         client side of things.  Patch from Ben Maurer
5802         <bmaurer@ximian.com>
5803
5804 2005-03-12  Colin Walters  <walters@verbum.org>
5805
5806         * bus/driver.c (write_args_for_direction): New function,
5807         parses a type signature into arguments and outputs to
5808         XML.
5809         (bus_driver_handle_introspect): Use it instead of
5810         hardcoding XML for certain signatures.
5811         
5812         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5813         dependency on dbus-daemon.
5814
5815         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5816         argument, pass it to dbus_binding_tool_output_glib_client.
5817
5818         * glib/dbus-binding-tool-glib.c
5819         (generate_client_glue): Protect against multiple inclusion.
5820         (dbus_binding_tool_output_glib_client): Add
5821         G_BEGIN_DECLS/G_END_DECLS.
5822
5823         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5824         Change to just take iface prefix directly.
5825         (write_formal_parameters): Clarify error message.
5826         (check_supported_parameters): New function; checks to see type
5827         signatures of method parameters are supported.
5828         (generate_client_glue): Handle ignore_unsupported flag.
5829         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5830         parameter.
5831
5832         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5833         --ignore-unsupported by default until glib bindings
5834         support arrays.
5835
5836 2005-03-11  Colin Walters  <walters@verbum.org>
5837
5838         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5839         install it.
5840
5841         * bus/print-introspect.c: New file; prints introspection
5842         data for a given name and object path.
5843
5844         * bus/run-with-tmp-session-bus.sh: New file, refactored
5845         from test/glib/run-test.sh.  Creates a temporary session
5846         bus and runs another program.
5847
5848         * test/glib/run-test.sh: Refactor to invoke
5849         run-with-tmp-session-bus.sh.
5850
5851         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5852         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5853         macros instead of hardcoding.
5854
5855         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5856
5857 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5858
5859         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5860         this unref; it doesn't match up evenly in some codepaths.
5861         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5862         this evenly matches with the ref near the top of this function.
5863
5864 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5865
5866         * dbus/dbus-object-tree.c
5867         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5868         and we try to unregister a path that's not registered, still go
5869         through the process of unlocking and don't just return.
5870
5871 2005-03-09  Colin Walters  <walters@verbum.org>
5872
5873         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5874         to this are generated for client-side wrappers.  Invokes a
5875         D-BUS method and returns reply values.  
5876
5877         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5878         function; writes signature string for argument direction.
5879         (write_args_for_direction): Change to pass input values directly
5880         instead of via address, and fix indentation.
5881         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5882         make generated wrappers inlineable.
5883
5884         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5885         note about using dbus_type_is_fixed.
5886
5887         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5888         dbus/dbus-signature.c as dbus_type_is_fixed.
5889
5890         All callers updated.
5891
5892         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5893         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5894
5895         * dbus/dbus-signature.h: Prototype.
5896
5897         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5898         error printf code.
5899
5900         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5901         appropriate instead of just freeing it.
5902         (main): Free returned strings using g_free.
5903
5904         * test/glib/Makefile.am (test-service-glib-glue.h)
5905         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5906
5907         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5908         simply maps a simple D-BUS type to GType.
5909         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5910         GType.
5911         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5912         initialize the value with it.
5913         (dbus_gvalue_binding_type_from_type): Unused, delete.
5914         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5915         various types instead of unmarshalling to value data directly.
5916         Remove can_convert boolean.
5917         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5918         returning directly instead of using can_convert boolean.
5919         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5920         Stores a GValue in a pointer to a value of its corresponding C
5921         type.
5922
5923         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5924         add dbus_gvalue_store.
5925
5926 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5927
5928         Fix a bunch of lifecycle and memory management problems
5929         in the mono bindings.
5930
5931         * mono/Arguments.cs (Arguments): Implement IDisposable
5932
5933         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5934         strictly a static class.
5935
5936         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5937         delegates into this file.
5938         (Connection): Implement IDisposable.
5939         (Dispose): Disconnect the connection and set the raw connection
5940         pointer to IntPtr.Zero.
5941         (~Connection): Call Dispose().
5942         (RegisterObjectPath): Added.  Manages the registration of object
5943         paths so we can cleanly disconnect them at dispose/finalize time.
5944         (UnregisterObjectPath): Ditto.
5945         (set_RawConnection): Unregister all of the object paths when
5946         changing the underlying DBusConnection.  Add them back onto the
5947         new connection, if any.
5948
5949         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5950         more unmanaged resources anymore, so it's not necessary.  Move all
5951         the DBusObjectPathVTable stuff out of here.
5952         (Handler): Save references to our delegates so that they don't get
5953         finalized.  Call Connection.RegisterObjectPath() instead of
5954         dbus_connection_register_object_path() directly.
5955         (Message_Called): Dispose the message after we're finished with
5956         it.
5957
5958         * mono/Message.cs (Message): Implement IDisposable.
5959         (Dispose): Dispose the Arguments, and set the RawMessage to
5960         IntPtr.Zero.
5961         (SendWithReplyAndBlock): We own the ref to the reply that comes
5962         back from dbus_connection_send_with_reply_and_block() so add a
5963         comment about that and unref it after we've constructed a managed
5964         MethodReturn class around it.  Fixes a big, big leak.
5965
5966         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5967         method.
5968         (BuildSignalHandler): After we've sent the Signal message, dispose
5969         of it.
5970         (BuildMethod): Dispose of the method call and reply messages after
5971         we've sent the message and extracted the data we want from the
5972         reply.
5973
5974         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5975         anymore.
5976         (Service_FilterCalled): Dispose of the message after we're
5977         finished with it.
5978
5979 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5980
5981         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5982         After we attach our pending call to the connection, unref
5983         it.  Fixes a leak.
5984  
5985         * mono/Connection.cs (set_RawConnection): Disconnect our
5986         filter and match callbacks from the old connection and
5987         reconnect them to the new connection, if any.
5988
5989         * mono/DBusType/Array.cs: "Code" is a static member, so
5990         don't use "this" to refer to it.  Fix for stricter checking
5991         in Mono 1.1.4.
5992  
5993         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5994         object path that we pass into unmanaged code.
5995  
5996         * mono/DBusType/String.cs (Append): Don't leak the string
5997         that we pass into unmanged code.
5998
5999 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
6000         * NEWS: Update for 0.31
6001
6002         * configure.in: Release 0.31
6003         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
6004
6005         * qt/Makefile.am: fixed build
6006
6007         * dbus/Makefile.am: soname bump for libdbus
6008
6009         * glib/Makefile.am: soname bump for libdbus-glib
6010
6011 2005-03-05  Havoc Pennington  <hp@redhat.com>
6012
6013         * dbus/dbus-sysdeps.c:
6014         (pseudorandom_generate_random_bytes_buffer): fix to have no return
6015         value
6016         (_dbus_generate_random_bytes_buffer): fix return value
6017
6018         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
6019         checks actually work, from Tom Parker <fdo@tevp.net>
6020
6021 2005-03-01  Colin Walters  <walters@verbum.org>
6022
6023         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
6024         functions copied from dbus-glib-tool.c.
6025         (main): Convert lots of error code to use them.
6026         Also add some testing for introspection bits.
6027
6028 2005-03-01  Colin Walters  <walters@verbum.org>
6029         
6030         * doc/TODO: Remove introspection signature TODO.
6031
6032 2005-02-27  Colin Walters  <walters@verbum.org>
6033
6034         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
6035         Change return value to const char * instead of int so we can do
6036         full signatures.
6037         (struct PropertyInfo, struct ArgInfo): Store char *.
6038         (property_info_new, arg_info_new): Update parameters, strdup.
6039         (property_info_unref, arg_info_unref): Free.
6040
6041         * glib/dbus-gidl.h: Update prototypes.
6042
6043         * glib/dbus-gparser.c (basic_type_from_string): Delete.
6044         (validate_signature): New function, just validates signature and
6045         sets GError.
6046         (parse_property, parse_arg): Invoke validate_signature.  Store
6047         signature instead of just type code.
6048
6049         * glib/dbus-gvalue.c (base_type_from_signature): New utility
6050         function to return a primary type for a signature, dropping
6051         information about types in container types.
6052         (dbus_gvalue_genmarshal_name_from_type)
6053         (dbus_gvalue_binding_type_from_type)
6054         (dbus_gvalue_ctype_from_type): Update to take full signature
6055          instead of type code.
6056         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
6057
6058         * glib/dbus-gvalue.h: Update prototypes for above.
6059
6060         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
6061         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
6062         (introspect_properties, introspect_signals, write_interface):
6063         Update to handle signatures, and remove usage of
6064         _dbus_gutils_type_to_string.
6065         (handle_introspect): Print out type codes instead of e.g. "string"
6066         in hardcoded introspection XML; also use x_AS_STRING constants
6067         instead of hardcoding in string.
6068
6069         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
6070         to string.  Remove usage of _dbus_gutils_type_to_string.
6071
6072         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
6073
6074         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
6075         deletion.
6076         
6077         * glib/dbus-binding-tool-glib.c (compute_marshaller)
6078         (compute_marshaller_name, generate_glue): Handle signature change
6079         to string.
6080         (write_formal_parameters, write_args_for_direction): Ditto, and
6081         remove FIXME.
6082
6083         * tools/dbus-tree-view.c (type_to_string): Delete.
6084         (info_set_func_text): Update to print full signatures.
6085
6086         * test/glib/test-service-glib.xml: Change types to new
6087         introspection format.
6088
6089 2005-02-26  Havoc Pennington  <hp@redhat.com>
6090
6091         * doc/TODO: remove the "guid" item
6092
6093         * test/glib/test-profile.c (no_bus_thread_func): use open_private
6094         (with_bus_thread_func): use open_private
6095
6096         * dbus/dbus-connection.c (dbus_connection_open_private): new
6097         function that works like the old dbus_connection_open()
6098         (dbus_connection_open): now returns an existing connection if
6099         possible
6100
6101         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
6102         through the GUID to the transport
6103
6104         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
6105         GUID in hex-encoded form.
6106
6107         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
6108         pass GUID argument in to the transport
6109
6110         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
6111         guid argument
6112
6113         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
6114
6115         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
6116
6117 2005-02-25  Havoc Pennington  <hp@redhat.com>
6118
6119         * doc/dbus-specification.xml: document the GUID thing
6120
6121         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
6122         globally unique ID for the server, and put a "guid=hexencoded"
6123         field in the address
6124
6125         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
6126
6127         * dbus/dbus-message.c: ditto
6128
6129         * dbus/dbus-dataslot.c: ditto
6130
6131         * dbus/dbus-list.c: ditto
6132
6133         * dbus/dbus-internals.h: wait, just include
6134         dbus-threads-internal.h here
6135         
6136         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
6137         use in main library
6138
6139         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
6140
6141 2005-02-24  Colin Walters  <walters@verbum.org>
6142
6143         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
6144
6145 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
6146
6147         * glib/Makefile.am: added dbus-gobject.h to sources list
6148         so distcheck doesn't fail
6149         
6150 2005-02-24  Havoc Pennington  <hp@redhat.com>
6151
6152         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
6153         you must disconnect before unref, since locking and other things
6154         are screwed up otherwise. Fix assorted other locking stuff.
6155
6156         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
6157         fix compilation
6158
6159         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
6160         into a private header and don't export from the library
6161
6162         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
6163
6164 2005-02-24  Colin Walters  <walters@verbum.org>
6165         
6166         * dbus/dbus-signature.c: New file; implements various functions
6167         related to type signatures.  Includes an interator for parsing,
6168         validation functions.
6169         (dbus_type_is_basic): Moved here from
6170         dbus-marshal-basic.c:_dbus_type_is_basic.
6171         (dbus_type_is_container): Moved here from
6172         dbus-marshal-basic.c:_dbus_type_is_container.
6173
6174         All callers of _dbus_type_is_container and _dbus_type_is_basic
6175         updated, and include dbus-signature.h.
6176
6177         * dbus/dbus-signature.h: New file; prototypes for the above.
6178
6179         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
6180         dbus-signature.h.
6181
6182         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
6183         function factored out of _dbus_first_type_in_signature.
6184         (_dbus_first_type_in_signature_c_str): New function; returns first
6185         type code for a type signature character.
6186
6187         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
6188         handle function moves.
6189
6190         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
6191
6192         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
6193         function; skips to next complete type in type signature.
6194         Implemented using previous skip_one_complete_type.  Now
6195         skip_one_complete_type just delegates to
6196         _dbus_type_signature_next.
6197
6198         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
6199         to dbus-signature.c
6200         (_dbus_type_is_container): Ditto.
6201
6202         * doc/dbus-specification.xml: Update introspection sample to
6203         use real type signatures.
6204
6205         * dbus/dbus-test.h: Prototype signature test.
6206
6207         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
6208         signature tests.
6209
6210         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
6211
6212 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
6213
6214         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
6215         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
6216
6217 2005-02-21  Colin Walters  <walters@verbum.org>
6218
6219         * dbus/dbus-test-main.c (main): Take optional specific test
6220         argument.
6221
6222         * dbus/dbus-test.c (run_test): New function, runs a test function
6223         with no data directory.
6224         (run_data_test): Like above, but takes data directory.
6225         (dbus_internal_do_not_use_run_tests): Take
6226         specific test argument.  Replace lots of cut n' paste code
6227         with run_test and run_data_test.
6228
6229         * dbus/dbus-test.h: Update prototype for
6230         dbus_internal_do_not_use_run_tests.
6231
6232 2005-02-20  Havoc Pennington  <hp@redhat.com>
6233
6234         Fix bugs reported by Daniel P. Berrange
6235         
6236         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
6237         (protected_change_watch): new function
6238         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
6239         (_dbus_server_add_watch): change to work like the
6240         dbus-connection.c equivalents; like those, probably kind of
6241         busted, but should at least mostly work for now
6242         (dbus_server_disconnect): drop the lock if we were already
6243         disconnected, patch from Daniel P. Berrange
6244
6245         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
6246         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
6247         same stuff
6248
6249         * doc/TODO: todo about unscrewing this mess
6250
6251 2005-02-19  Colin Walters  <walters@verbum.org>
6252
6253         * glib/dbus-binding-tool-glib.c
6254         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6255
6256         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6257         as errno.h and sys/stat.h.
6258         (lose): New function, prints error with
6259         newline and exits.
6260         (lose_gerror): Similar, but takes GError for message.
6261         (main): Add --output argument to specify output file to write to,
6262         instead of always printing to stdout.  In this mode, determine
6263         timestamps on source files to see whether any are newer than the
6264         target file.  If not, exit.  Also convert a number of error
6265         messages to use lose (since it's shorter), and switch to using
6266         g_io_channel_shutdown.
6267
6268 2005-02-19  Havoc Pennington  <hp@redhat.com>
6269
6270         * glib/dbus-gobject.c
6271         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6272
6273         * glib/dbus-glib.c: fix doxygen warnings
6274
6275         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6276         is found on an <arg>
6277
6278 2005-02-17  Colin Walters  <walters@verbum.org>
6279
6280         * glib/dbus-gobject.h: Don't export
6281         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6282         
6283         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6284         (invoke_object_method): Handle it.
6285
6286         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6287         Handle rename.
6288         
6289 2005-02-17  Colin Walters  <walters@verbum.org>
6290
6291         * bus/.cvsignore, doc/.cvsignore
6292         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6293         Update.
6294
6295 2005-02-17  Colin Walters  <walters@verbum.org>
6296         
6297         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6298         Rename to DBUS_SERVICE_DBUS.
6299         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6300         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6301         Change the value from "org.freedesktop.Local"
6302         to "org.freedesktop.DBus.Local".
6303         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6304         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6305         DBUS_INTERFACE_INTROSPECTABLE.
6306         Change the value from "org.freedesktop.Introspectable"
6307         to "org.freedesktop.DBus.Introspectable".
6308         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6309         DBUS_INTERFACE_PROPERTIES.
6310         Change the value from "org.freedesktop.Properties"
6311         to "org.freedesktop.DBus.Properties".
6312         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6313         DBUS_INTERFACE_PEER.
6314         Change the value from "org.freedesktop.Peer"
6315         to "org.freedesktop.DBus.Peer".
6316         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6317         DBUS_INTERFACE_LOCAL.
6318         Change the value from "org.freedesktop.Local"
6319         to "org.freedesktop.DBus.Local".
6320
6321         All other users of those constants have been changed.
6322
6323         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6324
6325         * glib/dbus-gobject.c (handle_introspect): Use constants.
6326
6327         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6328
6329 2005-02-17  Colin Walters  <walters@verbum.org>
6330
6331         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6332         (parse_node, parse_interface, parse_method, parse_signal)
6333         (parse_property, parse_annotation): Lose if we're currently in an
6334         annotation.
6335         (parse_annotation): New function.
6336         (parser_start_element, parser_end_element): Handle annotation.
6337         (parse_method, parse_interface): Remove support for c_name attribute,
6338         switch to annotations.
6339
6340         * glib/dbus-gidl.h (interface_info_get_binding_names)
6341         (method_info_get_binding_names)
6342         (interface_info_get_binding_name, method_info_get_binding_name)
6343         (interface_info_set_binding_name, method_info_set_binding_name):
6344         Remove.
6345         (interface_info_get_annotations, method_info_get_annotations)
6346         (interface_info_get_annotation, method_info_get_annotation)
6347         (interface_info_add_annotation, method_info_add_annotation):
6348         Prototype.
6349
6350         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6351         for "bindings".
6352         (struct MethodInfo): Ditto.
6353         Straightfoward conversion of binding methods into annotation methods
6354         as prototyped.
6355
6356         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6357
6358         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6359
6360         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6361         Use new annotation API.
6362
6363         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6364         annotation element.
6365         
6366         * doc/dbus-specification.xml: Discuss introspection annotations,
6367         include list of well-known annotations.
6368
6369         * test/glib/test-service-glib.xml: Make validate against new DTD.
6370
6371 2005-02-17  Colin Walters  <walters@verbum.org>
6372
6373         This patch is based on initial work from
6374         Paul Kuliniewicz <kuliniew@purdue.edu>.
6375
6376         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6377         initialization of GValue from dbus type to here.
6378         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6379         for the "glib-genmarshal" program from a DBus type.
6380         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6381         into the C name for it we use in the glib bindings.
6382         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6383         glib C type (not GValue).
6384         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6385
6386         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6387         from dbus-gobject.c.
6388
6389         * glib/dbus-gutils.h: Prototype it.
6390
6391         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6392         (marshal_dbus_message_to_g_marshaller): Use new shared function
6393         dbus_glib_marshal_dbus_message_to_gvalue_array.
6394
6395         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6396         Will be changed once we have annotations.
6397
6398         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6399         GStaticRWLock.  Callers updated.
6400         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6401         (string_table_next): New function for iterating over zero-terminated
6402         string value array.
6403         (string_table_lookup): New function; retrieves specific entry in
6404         array.
6405         (get_method_data): New function; look up method data in object data chunk.
6406         (object_error_domain_prefix_from_object_info)
6407         (object_error_code_from_object_info): New functions, but not implemented yet.
6408         (method_interface_from_object_info): New function; retrieve interface name.
6409         (method_name_from_object_info): New function; retrieve method name.
6410         (method_arg_info_from_object_info): New function; retrieve argument data.
6411         (arg_iterate): New function; iterates over serialized argument data.
6412         (method_dir_signature_from_object_info): New function; returns a
6413         GString holding type signature for arguments for just one
6414         direction (input or output).
6415         (method_input_signature_from_object_info)
6416         (method_output_signature_from_object_info): New functions.
6417         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6418         converts dbus message arguments into a GValue array.  Used for both
6419         signal handling and method invocation.
6420         (struct DBusGlibWriteIterfaceData): New utility structure.
6421         (write_interface): New function; generate introspection XML for
6422         an interface.
6423         (introspect_interfaces): New function; gathers all interface->methods,
6424         generates introspection XML for them.
6425         (handle_introspect): Invoke introspect_interfaces.
6426         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6427         (lookup_object_and_method): New function; examines an incoming message
6428         and attempts to match it up (via interface, method name, and argument
6429         signature) with a known object and method.
6430         (gerror_domaincode_to_dbus_error_name): New function; converts a
6431         GError domain and code into a DBus error name.  Needs GError data
6432         added to object introspection to work well.
6433         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6434         GError.
6435         (invoke_object_method): New function to invoke an object method
6436         looked up via lookup_object_and_method.  Parses the incoming
6437         message, turns it into a GValue array, then invokes the marshaller
6438         specified in the DBusGMethodInfo.  Creates a new message with
6439         either return values or error message as appropriate.
6440         (gobject_message_function): Invoke lookup_object_and_method and
6441         invoke_object_method.
6442
6443         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6444         (enum DBusBindingOutputMode): New enum for binding output modes.
6445         (pretty_print): Print binding names.
6446         (dbus_binding_tool_error_quark): GError bits.
6447         (version): Fix typo.
6448         (main): Create GIOChannel for output.  Parse new --mode argument,
6449         possible values are "pretty-print", "glib-server", "glib-client".
6450         Use mode to invoke appropriate function.
6451         
6452         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6453
6454         * glib/dbus-glib-tool.h: New header, just includes GError bits
6455         for now.
6456
6457         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6458         maps binding style to name.
6459         (struct MethodInfo): Ditto.
6460         (get_hash_keys, get_hash_key): Utility function, returns keys for
6461         a GHashTable.
6462         (interface_info_new, method_info_new): Initialize bindings.
6463         (interface_info_unref, method_info_unref): Destroy bindings.
6464         (method_info_get_binding_names, method_info_get_binding_name)
6465         (interface_info_get_binding_names, interface_info_get_binding_name):
6466         Functions for retrieving binding names.
6467         (method_info_set_binding_name, interface_info_set_binding_name):
6468         Functions for setting binding names.
6469
6470         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6471         for glib binding generation.
6472
6473         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6474         and client-side glib glue generation.
6475
6476         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6477         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6478         dbus-glib-tool.h.
6479
6480         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6481         of using GClosureMarshal directly.
6482         (struct DBusGObjectInfo): Add n_infos member.
6483
6484         * test/glib/test-service-glib.xml: New file; contains introspection data
6485         for MyTestObject used in test-service-glib.c.
6486
6487         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6488         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6489         (my_object_uppercase, my_object_many_args): New test methods.
6490         (main): Use dbus_g_object_class_install_info to include generated object
6491         info.
6492
6493         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6494         as well as client-side bindings.
6495
6496         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6497         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6498         using both the dbus_gproxy stuff directly as well as the generated bindings.
6499
6500 2005-02-15  Havoc Pennington  <hp@redhat.com>
6501
6502         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6503         complete a pending call, don't run filters first.
6504
6505         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6506         dbus_pending_call_steal_reply
6507
6508         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6509         _dbus_connection_block_pending_call
6510         (dbus_pending_call_get_reply): change to steal_reply and return a
6511         ref
6512
6513         * dbus/dbus-connection.c
6514         (dbus_connection_send_with_reply_and_block): port to work in terms
6515         of DBusPendingCall
6516         (_dbus_connection_block_pending_call): replace block_for_reply
6517         with this
6518
6519 2005-02-14  Havoc Pennington  <hp@redhat.com>
6520
6521         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6522         properly handle looking up group information by name; fix 
6523         from j@bootlab.org
6524
6525 2005-02-13  Havoc Pennington  <hp@redhat.com>
6526
6527         * dbus/dbus-connection.c (dbus_connection_return_message) 
6528         (dbus_connection_borrow_message): hold dispatch lock while message
6529         is outstanding
6530         (_dbus_connection_block_for_reply): hold dispatch lock while we
6531         block for the reply, so nobody steals our reply
6532         (dbus_connection_pop_message): hold the dispatch lock while we
6533         pluck the message
6534
6535 2005-02-13  Havoc Pennington  <hp@redhat.com>
6536
6537         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6538         (_dbus_connection_release_dispatch)
6539         (_dbus_connection_acquire_io_path)
6540         (_dbus_connection_release_io_path): make the mutex and condvar
6541         control access to the "acquired" flag. Drop the connection lock
6542         while waiting on the condvar. Hopefully these are baby steps in
6543         roughly the right direction.
6544
6545 2005-02-13  Havoc Pennington  <hp@redhat.com>
6546
6547         * dbus/dbus-connection.c: use separate mutexes for the condition
6548         variables; this is some kind of baseline for sanity, but the
6549         condition variables still aren't used correctly afaict
6550
6551 2005-02-13  Havoc Pennington  <hp@redhat.com>
6552
6553         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6554         fix a double-unlock
6555
6556         * dbus/dbus-connection.c
6557         (_dbus_connection_detach_pending_call_unlocked): add this
6558
6559         Initial semi-correct pass through to fix thread locking; there are
6560         still some issues with the condition variable paths I'm pretty
6561         sure
6562         
6563         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6564         lock/unlock calls
6565
6566         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6567         rename to add _unlocked
6568         (struct DBusConnection): move "dispatch_acquired" and
6569         "io_path_acquired" to use only one bit each.
6570         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6571         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6572         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6573         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6574         (_dbus_connection_remove_timeout) 
6575         (_dbus_connection_toggle_timeout): drop lock when calling out to
6576         user functions; done in a hacky/bad way.
6577         (_dbus_connection_send_and_unlock): add a missing unlock
6578         (_dbus_connection_block_for_reply): add a missing unlock
6579
6580         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6581         drop lock in a hacky probably unsafe way to call out to user
6582         function
6583
6584 2005-02-12  Havoc Pennington  <hp@redhat.com>
6585
6586         * tools/dbus-tree-view.c (info_set_func_text): display more
6587         details on args
6588
6589         * bus/driver.c (bus_driver_handle_list_services): list the bus
6590         driver
6591
6592         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6593
6594         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6595         (method_info_get_n_args): new function
6596
6597 2005-02-12  Havoc Pennington  <hp@redhat.com>
6598
6599         * bus/driver.c (bus_driver_handle_introspect): add introspection
6600         for bus driver
6601
6602 2005-02-12  Havoc Pennington  <hp@redhat.com>
6603
6604         * bus/driver.c: put the signature of each bus driver method in the
6605         table of handlers and check it on incoming calls; this isn't
6606         really useful, but going to add introspect support in a minute.
6607
6608 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6609
6610         * mono/Connection.cs: The unpredictability of finalizers in mono
6611         prevents us from deterministically disconnecting the filters from
6612         the Service class's finalizer, so move tracking of filters and
6613         matches here.  Add API for that.
6614
6615         * mono/Service.cs: Remove the code, add code which calls the
6616         methods now on the Connection class.
6617
6618 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6619
6620         * python/dbus.py (class Sender): added to support dbus signals better
6621         (Bus::add_signal_receiver): added expand_args parameter which defaults
6622         to True.  When expand args is True the signal handler will pass the 
6623         message arguments as parameters to the signal handler.  If False
6624         revert to previous behavior where the signal handler must get the
6625         argument list from the message.  This is to help port applications
6626         like HAL that have a tendancy to send variable length argument lists.
6627         self._match_rule_to_receivers is now a dict of dicts.
6628         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6629         removing it from a list
6630         (Bus::_signal_func): change signal handlers so that interface,
6631         signal_name, service, path and message are packed into a Sender
6632         object and that is passed to the handler.  If expand_args is True
6633         extract the args list from the message and append it to the parameter
6634         list
6635         
6636         * python/dbus_bindings.pyx.in (class Signature): added to support 
6637         signiature types
6638         (MessageIter::__init__): changed iteration limit to match D-BUS
6639         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6640         STRUCT and VARIENT type support
6641         (MessageIter::python_value_to_dbus_sig): made recursive to support
6642         recursive types
6643         (MessageIter::append*): added Signature, dict, tuple 
6644         support
6645
6646         * python/examples/example-client.py: added examples of getting tuples
6647         and dicts
6648
6649         * python/examples/example-service.py: added examples of sending tuples
6650         and dicts
6651
6652         * python/examples/example-signal-recipient.py: Fixed to handle new
6653         signal callback format
6654
6655 2005-02-10  Havoc Pennington  <hp@redhat.com>
6656
6657         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6658         (call dbus_g_proxy_add_signal)
6659
6660         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6661         escape the hostname
6662         (_dbus_server_new_for_domain_socket): escape the path
6663
6664         * dbus/dbus-address.c (dbus_address_escape_value): new
6665         (dbus_address_unescape_value): new
6666         (dbus_parse_address): unescape values
6667
6668         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6669
6670         * doc/dbus-specification.xml: explain how to escape values in
6671         addresses
6672
6673 2005-02-10  Havoc Pennington  <hp@redhat.com>
6674
6675         * dbus/dbus-message-factory.c (generate_special): modify test to
6676         avoid using a non-basic dict key
6677
6678         * dbus/dbus-marshal-validate-util.c: add test for the below
6679
6680         * doc/dbus-specification.xml: require that dict keys are a basic
6681         type
6682
6683         * dbus/dbus-marshal-validate.c
6684         (_dbus_validate_signature_with_reason): require that dict key is a
6685         basic type
6686
6687 2005-02-10  Havoc Pennington  <hp@redhat.com>
6688
6689         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6690         change to be _and_unlock instead of _unlocked
6691
6692         * dbus/dbus-connection.c
6693         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6694         have no_update so we can find this bug quickly in future
6695
6696 2005-02-10  Havoc Pennington  <hp@redhat.com>
6697
6698         * dbus/dbus-message-util.c (verify_test_message): tests for string
6699         array
6700
6701         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6702         support for arrays of string/signature/path
6703
6704 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6705
6706         * dbus/dbus-connection.c
6707         (_dbus_connection_queue_received_message_link,
6708         _dbus_connection_message_sent): Add the path to
6709         the verbose output.
6710         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6711         _dbus_connection_send_preallocated_unlocked(), updated the
6712         dispatch status, and unlocks.  Fixes a bug where certain
6713         situations (like a broken pipe) could cause a Disconnect message
6714         to not be sent, tricking the bus into thinking a service was still
6715         there when the process had quit.
6716         (_dbus_connection_send_preallocated): Call
6717         _dbus_connection_send_preallocated_and_unlock().
6718         (_dbus_connection_send_and_unlock): Added.  Calls
6719         _dbus_connection_send_preallocated_and_unlock().
6720         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6721         (dbus_connection_send_with_reply): Update the dispatch status and
6722         unlock.
6723
6724         * mono/Service.cs (~Service): Added.  Removes the filter so that
6725         we don't get unmanaged code calling back into a GCed delegate.
6726         (RemoveFilter); Added.
6727
6728 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6729
6730         * dbus/dbus-message.c (dbus_message_iter_open_container):
6731         - Removed check for iterator type being an array because
6732         get_arg_type does not work with writer iterators
6733         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6734
6735 2005-02-07  Havoc Pennington  <hp@redhat.com>
6736
6737         * doc/dbus-specification.xml: some more language cleanups; add
6738         stuff about how to deal with invalid protocol and extension
6739         points; add _ to allowed chars in auth commands; add EXTENSION_
6740         auth command prefix
6741
6742 2005-02-06  Havoc Pennington  <hp@redhat.com>
6743
6744         * s/expected/required/ in a couple places for clarity
6745
6746 2005-02-07  Colin Walters  <walters@verbum.org>
6747
6748         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6749         sender or proposed_recipient.
6750
6751 2005-02-06  Havoc Pennington  <hp@redhat.com>
6752
6753         * dbus/dbus-message-factory.c (generate_special): more tests
6754
6755         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6756         array length that exceeds the maximum
6757
6758 2005-02-05  Havoc Pennington  <hp@redhat.com>
6759
6760         * dbus/dbus-message-factory.c (generate_special): more test cases,
6761         increasing coverage
6762
6763         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6764         reason why a signature was invalid
6765
6766         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6767         skip the length of the string before we look at it in validation
6768
6769         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6770         equal_substring
6771
6772         * dbus/dbus-message.c (_dbus_message_loader_new): default
6773         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6774
6775 2005-02-05  Havoc Pennington  <hp@redhat.com>
6776
6777         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6778         if the signature of a variant was empty
6779         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6780         struct with no element type)
6781
6782         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6783         mangled messages to break things
6784
6785 2005-02-04  Havoc Pennington  <hp@redhat.com>
6786
6787         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6788         g_quark_try_string() so it actually can return 0
6789         (dbus_g_proxy_connect_signal): ditto
6790
6791 2005-02-04  Havoc Pennington  <hp@redhat.com>
6792
6793         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6794         bogus warning
6795         (tristring_from_message): assert cleanly on null path/interface
6796         (should not be possible though I decided later)
6797         (dbus_g_proxy_dispose): move proxy manager unregistration here
6798         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6799         g_return_if_fail() checks
6800
6801 2005-02-04  Havoc Pennington  <hp@redhat.com>
6802
6803         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6804
6805         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6806         (with some minor changes)
6807
6808         * doc/dbus-specification.xml: add deprecated attribute to
6809         introspection format
6810
6811 2005-01-31  Havoc Pennington  <hp@redhat.com>
6812
6813         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6814         think it's sort of right
6815
6816 2005-01-30  Havoc Pennington  <hp@redhat.com>
6817
6818         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6819
6820 2005-01-30  Havoc Pennington  <hp@redhat.com>
6821
6822         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6823
6824         * autogen.sh: change to autotools 1.9
6825
6826         * glib/dbus-gproxy.c: completely change how signals work
6827         (dbus_g_proxy_add_signal): new function to specify signature of a
6828         signal
6829         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6830         and g_warning if the incoming message has the wrong signature.
6831
6832 2005-01-30  Havoc Pennington  <hp@redhat.com>
6833
6834         * tools/dbus-names-model.c (have_names_notify): fix this
6835
6836         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6837         up the string array handling a bit 
6838
6839 2005-01-30  Havoc Pennington  <hp@redhat.com>
6840
6841         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6842         (dbus_g_pending_call_cancel): new function
6843
6844         * dbus/dbus-glib.h: move GType decls for connection/message here;
6845         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6846         here, just kind of rationalizing how we handle all that
6847
6848         * tools/dbus-names-model.c: new file for a tree model listing the
6849         services on a bus
6850
6851         * tools/dbus-tree-view.c (model_new): use proper typing on the
6852         model rows
6853
6854 2005-01-30  Havoc Pennington  <hp@redhat.com>
6855
6856         * glib/dbus-gmain.c: add a custom GSource back that just checks
6857         whether the message queue has anything in it; otherwise, there are 
6858         cases where we won't see messages in the queue since there was no 
6859         IO visible to the glib main loop
6860
6861         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6862         increase default message timeout to 25 seconds
6863
6864 2005-01-30  Havoc Pennington  <hp@redhat.com>
6865
6866         * test/glib/test-profile.c (no_bus_stop_server): remove the
6867         warning about the g_warning that I just fixed
6868
6869         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6870         custom source, seems to be a lot easier to understand and work
6871         better.
6872
6873 2005-01-30  Havoc Pennington  <hp@redhat.com>
6874
6875         I think this main loop thing is conceptually broken, but here are 
6876         some band aids. I'll maybe rewrite it in a minute.
6877         
6878         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6879         custom GSource, so don't pass it in; confusing
6880         (gsource_server_finalize, gsource_connection_finalize): add
6881         finalize handlers that remove all the watches.  
6882
6883 2005-01-30  Havoc Pennington  <hp@redhat.com>
6884
6885         * glib/dbus-gobject.c (introspect_properties): fix the XML
6886         generated
6887
6888         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6889         which effectively detects the use of freed messages
6890
6891         * glib/dbus-gobject.c (handle_introspect): modify and return the
6892         reply message instead of the incoming message
6893
6894         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6895         gee, maybe it should SEND THE XML instead of just making a string
6896         and freeing it again ;-)
6897
6898         * tools/dbus-print-message.c (print_message): improve printing of
6899         messages
6900
6901         * configure.in: add debug-glib.service to the output
6902
6903 2005-01-30  Havoc Pennington  <hp@redhat.com>
6904
6905         dbus-viewer introspected and displayed the bus driver
6906         
6907         * dbus/dbus-object-tree.c 
6908         (object_tree_test_iteration): add tests for a handler registered on "/"
6909
6910         * dbus/dbus-object-tree.c
6911         (_dbus_decompose_path): fix to handle path "/" properly
6912         (run_decompose_tests): add tests for path decomposition
6913         
6914         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6915         properly
6916
6917         * glib/dbus-gobject.c (handle_introspect): fix quotes
6918
6919         * test/glib/run-test.sh: support launching the bus, then running
6920         dbus-viewer
6921
6922         * test/glib/test-service-glib.c (main): put in a trivial gobject
6923         subclass and register it on the connection
6924
6925         * bus/driver.c (bus_driver_handle_introspect): implement
6926         introspection of the bus driver service
6927
6928         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6929         identifiers, doctype decl
6930
6931         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6932         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6933         returning the service unchanged.
6934         (bus_driver_handle_message): remove old check for reply_serial in
6935         method calls, now the message type deals with that
6936         (bus_driver_handle_message): handle NULL interface
6937
6938         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6939
6940         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6941         -1 for len
6942
6943         * tools/dbus-viewer.c: add support for introspecting a service on
6944         a bus
6945
6946         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6947         (dbus_g_pending_call_unref): add
6948
6949 2005-01-29  Havoc Pennington  <hp@redhat.com>
6950
6951         * tools/dbus-tree-view.c: add support for displaying properties.
6952         (run dbus-viewer with an introspect xml file as arg, then resize
6953         the window so the tree elements show up, not sure what that is)
6954
6955         * glib/dbus-gobject.c (handle_introspect): return
6956         org.freedesktop.Properties and org.freedesktop.Introspectable
6957         interfaces when we are introspected.
6958
6959         * doc/dbus-specification.xml: allow empty interface name when 
6960         Get/Set a property
6961
6962 2005-01-29  Havoc Pennington  <hp@redhat.com>
6963
6964         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6965         though it uses glib, it could be extended for any binding in
6966         principle
6967
6968         * glib/dbus-gobject.c (gobject_message_function): change to the
6969         new way properties work
6970
6971         * dbus/dbus-protocol.h: add the new interfaces
6972
6973         * doc/dbus-specification.xml: document the introspection format,
6974         Introspectable interface, and add an org.freedesktop.Properties
6975         interface.
6976
6977         * glib/dbus-gparser.c: add support for a <property> element
6978
6979         * glib/dbus-gidl.c: add PropertyInfo
6980
6981         * glib/dbus-gobject.c (handle_introspect): put the outermost
6982         <node> outside the signal and property descriptions.
6983         (introspect_properties): export properties as <property> rather
6984         than as method calls
6985
6986 2005-01-28  Havoc Pennington  <hp@redhat.com>
6987
6988         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6989         related to authentication protocol
6990
6991 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6992
6993         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6994                 - BUS_ACTIVATION -> BUS_STARTER
6995                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6996                 - class MessageIter (__init__): Added recursion checking 
6997                 so we throw a nice error instead of just disconnecting from the
6998                 bus.
6999                 (get): Added arg_type parameter for recursion.
7000                 Removed the nil type
7001                 Added signiture type placeholder (not implemented)
7002                 Added struct type placeholder (not implemented)
7003                 Added varient type placeholder (not implemented)
7004                 Commented out dict type for now     
7005                 (get_element_type): renamed from get_array_type
7006                 (get_*): changed to use the dbus_message_iter_get_basic API
7007                 (get_*_array): removed in favor of recursive get_array method
7008                 (get_array): new recursive method which calls get to marshal
7009                 the elements of the array
7010                 (value_to_dbus_sig): New method returns the corrasponding
7011                 dbus signiture to a python value
7012                 (append): Comment out dict handling for now
7013                 Handle lists with the new recursive API
7014                 Comment out None handling for now
7015                 (append_nil): removed
7016                 (append_*): changed to use dbus_message_iter_append_basic API
7017                 (append_*_array): removed in favor of recursive append_array 
7018                 method
7019                 (__str__): Make it easier to print out recursive iterators
7020                 for debugging
7021                 - class Message (__str__): moved type inspection to the
7022                 MessageIter class' __str__ method
7023                 (get_iter): Added an append parameter wich defaults to False
7024                 If True use the new API's to create an append iterator
7025
7026         * python/dbus.py: Update to use new bindings API
7027                 - TYPE_ACTIVATION -> TYPE_STARTER
7028                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
7029                 - class ActivationBus -> class StarterBus
7030                 - class RemoteObject (__call__): get an append iterator
7031                 - (_dispatch_dbus_method_call): get an append iterator
7032                 - class Object (emit_signal): get an append iterator
7033
7034         * python/examples/: Fixed up the examples to work with the new API
7035                 
7036 2005-01-28  Joe Shaw  <joeshaw@novell.com>
7037
7038         * configure.in: Bump version up to 0.30.
7039
7040         * HACKING: Add a release item to bump the version number up after 
7041         a release.
7042
7043 2005-01-28  Havoc Pennington  <hp@redhat.com>
7044
7045         * doc/dbus-specification.xml: update to describe 16-bit types and
7046         dict entries
7047
7048         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
7049         assertion
7050
7051         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
7052         type
7053
7054         * dbus/dbus-marshal-recursive.c: implement
7055
7056 2005-01-27  Havoc Pennington  <hp@redhat.com>
7057
7058         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
7059
7060         * configure.in: find the right type for 16 and 32 bit ints as well
7061         as 64
7062
7063         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
7064         the 16-bit types so people don't have to stuff them in 32-bit or
7065         byte arrays.
7066
7067 2005-01-27  Havoc Pennington  <hp@redhat.com>
7068
7069         * dbus/dbus-message.c: byteswap the message if you init an
7070         iterator to read/write from it
7071         
7072         * dbus/dbus-marshal-byteswap.c: new file implementing 
7073         _dbus_marshal_byteswap()
7074
7075         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
7076
7077 2005-01-26  Havoc Pennington  <hp@redhat.com>
7078         
7079         * dbus/dbus-marshal-validate-util.c: break this out (and fix
7080         build, apparently - nobody noticed?)
7081         
7082 2005-01-26  Havoc Pennington  <hp@redhat.com>
7083
7084         * dbus/dbus-marshal-recursive.h: remove todo comment
7085
7086 2005-01-25  Joe Shaw  <joeshaw@novell.com>
7087
7088         * Land the mono binding changes to conform to the new APIs.
7089
7090         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
7091         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
7092
7093         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
7094         type code as a string.
7095         (InitAppending): Rename dbus_message_append_iter_init() to
7096         dbus_message_iter_init_append().
7097
7098         * mono/BusDriver.cs: Rename ServiceEventHandler to
7099         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
7100         Rename ServiceOwnerChanged to NameOwnerChanged.
7101
7102         * mono/Connection.cs: Rename BaseService to UniqueName, and the
7103         underlying C call.
7104
7105         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
7106
7107         * mono/Service.cs: Rename Exists to HasOwner, internally rename
7108         dbus_bus_acquire_service() to dbus_bus_request_name().
7109
7110         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
7111         of Type.UnderlyingSystemType to get the correct element type for
7112         the array.
7113         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
7114         dbus_message_get_{element|arg}_type() instead of
7115         dbus_message_iter_init_array_iterator().
7116         (Append): Replace dbus_message_iter_append_array() with
7117         dbus_message_iter_open_container() and
7118         dbus_message_iter_close_container().
7119
7120         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
7121         types have been removed.
7122         
7123         * mono/DBusType/*.cs: Replace calls of
7124         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
7125         but specify the type in the DllImport extern declaration.  Ditto
7126         for dbus_message_iter_append_[type]() ->
7127         dbus_message_iter_append_basic().
7128
7129         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
7130         NameOwnerChangedHandler.
7131
7132 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
7133
7134         * python/dbus_bindings.pyx.in: Rename of methods and bindings
7135                 - get_base_service -> get_unique_name
7136                 - bus_get_base_service -> bus_get_unique_name
7137                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
7138                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
7139                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
7140                 - bus_activate_service -> bus_start_service_by_name
7141                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
7142                 - bus_acquire_service -> bus_request_name
7143                 - dbus_bus_acquire_service -> dbus_bus_request_name
7144                 - bus_service_exists -> bus_name_has_owner
7145                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
7146
7147         * python/dbus.py: Rename of methods
7148                 - activate_service -> start_service_by_name
7149                 - bus_acquire_service -> bus_request_name
7150                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
7151                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
7152
7153         
7154 2005-01-24  Joe Shaw  <joeshaw@novell.com>
7155
7156         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
7157         signature for the method that can't be found.
7158
7159         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
7160         the message has any arguments, we need to call
7161         _dbus_type_reader_get_current_type(), not
7162         _dbus_type_reader_has_next().
7163
7164 2005-01-24  Havoc Pennington  <hp@redhat.com>
7165
7166         * dbus/dbus-message-factory.c: more testing of message validation
7167
7168         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
7169         header
7170
7171 2005-01-23  Havoc Pennington  <hp@redhat.com>
7172
7173         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
7174         get this all working, not many tests in the framework yet though
7175
7176 2005-01-22  Havoc Pennington  <hp@redhat.com>
7177
7178         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
7179         tutorial, based on work from David Wheeler.
7180
7181 2005-01-21  Havoc Pennington  <hp@redhat.com>
7182
7183         * dbus/dbus-bus.c: add more return_if_fail checks
7184
7185         * dbus/dbus-message.c (load_message): have the "no validation"
7186         mode (have to edit the code to toggle the mode for now though)
7187
7188         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
7189         skips all validation; I want to use this at least for benchmark
7190         baseline, I'm not sure if it should be a publicly-available switch.
7191
7192 2005-01-21  Havoc Pennington  <hp@redhat.com>
7193
7194         * glib/dbus-gmain.c: don't put the GLib bindings in the same
7195         toplevel doxygen group as the low-level API stuff
7196
7197         * dbus/dbus.h: note that libdbus is the low-level API
7198
7199 2005-01-20  Havoc Pennington  <hp@redhat.com>
7200
7201         * update-dbus-docs.sh: script to update docs on the web site, only
7202         works for me though. neener.
7203
7204 2005-01-20  Havoc Pennington  <hp@redhat.com>
7205
7206         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
7207         code can reveal bugs in it
7208
7209 2005-01-20  Havoc Pennington  <hp@redhat.com>
7210
7211         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
7212         select() version, patches from Tor Lillqvist
7213
7214 2005-01-20  Havoc Pennington  <hp@redhat.com>
7215
7216         * doc/dbus-tutorial.xml: replace > with &gt;
7217
7218         * bus/services.c (bus_registry_acquire_service): validate the name
7219         and return a better error if it's no good.
7220
7221         * doc/dbus-specification.xml: note NO_AUTO_START change
7222
7223         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
7224         from AUTO_START, we're toggling the default
7225
7226         * bus/dispatch.c: adapt the tests to change of auto-start default
7227
7228 2005-01-18  Havoc Pennington  <hp@redhat.com>
7229
7230         * rename dbus-daemon-1 to dbus-daemon throughout
7231
7232 2005-01-18  Havoc Pennington  <hp@redhat.com>
7233
7234         * Throughout, grand renaming to strip out the use of "service",
7235         just say "name" instead (or "bus name" when ambiguous).  Did not
7236         change the internal code of the message bus itself, only the
7237         programmer-facing API and messages.
7238         
7239         * doc/dbus-specification.xml: further update the message bus section
7240         
7241         * bus/config-parser.c (all_are_equiv): fix bug using freed string
7242         in error case
7243
7244 2005-01-17  Havoc Pennington  <hp@redhat.com>
7245
7246         * dbus/dbus-types.h: remove 16-bit types since we don't use them
7247         ever
7248
7249         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7250         "invalid name character" not only non-ASCII
7251
7252         * doc/dbus-specification.xml: further update spec, message bus 
7253         parts are still out-of-date but the marshaling etc. stuff is now
7254         accurate-ish
7255
7256 2005-01-17  Havoc Pennington  <hp@redhat.com>
7257
7258         * doc/dbus-specification.xml: partially update spec
7259
7260 2005-01-17  Havoc Pennington  <hp@redhat.com>
7261
7262         * Throughout, align variant bodies according to the contained
7263         type, rather than always to 8. Should save a fair bit of space in
7264         message headers.
7265         
7266         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7267         fix handling of case where p == end
7268
7269         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7270
7271 2005-01-17  Havoc Pennington  <hp@redhat.com>
7272
7273         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7274
7275         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7276         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7277         are marshaling/unmarshaling a boolean.
7278
7279 2005-01-16  Havoc Pennington  <hp@redhat.com>
7280
7281         This is about it on what can be disabled/deleted from libdbus
7282         easily, back below 150K anyhow. Deeper cuts are more work than 
7283         just turning the code off as I've done here.
7284         
7285         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7286         signed int convenience funcs
7287
7288         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7289         verbose mode
7290
7291         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7292         things out of libdbus
7293
7294         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7295         
7296         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7297         tests-enabled-only, though it should probably be deleted)
7298
7299         * dbus/dbus-message-util.c: same stuff
7300
7301         * dbus/dbus-auth-util.c: same stuff
7302
7303 2005-01-16  Havoc Pennington  <hp@redhat.com>
7304
7305         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7306
7307         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7308         way for stripping down dbus-userdb.c stuff included in libdbus.
7309         Rename _dbus_parse_uid for consistency.
7310
7311 2005-01-16  Havoc Pennington  <hp@redhat.com>
7312
7313         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7314         name the assertion failed in
7315
7316         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7317         (_dbus_return_val_if_fail): assert that the name of the function
7318         containing the check doesn't start with '_', since we only want to 
7319         use checks on public functions
7320         
7321         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7322         checks to assertions
7323
7324         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7325         change checks to asserts for private function
7326
7327         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7328         to asserts for private function
7329
7330         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7331         broken assertion that was breaking make check
7332         (_dbus_type_reader_array_is_empty): remove this rather than fix
7333         it, was only used in assertions
7334
7335 2005-01-16  Havoc Pennington  <hp@redhat.com>
7336
7337         * test/unused-code-gc.py: hacky script to find code that's used
7338         only by the bus (not libdbus) or used only by tests or not used at
7339         all. It has some false alarms, but looks like we can clean up a
7340         lot of size from libdbus.
7341
7342         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7343         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7344         
7345 2005-01-16  Havoc Pennington  <hp@redhat.com>
7346
7347         * Add and fix docs according to Doxygen warnings throughout
7348         source.
7349         
7350         * dbus/dbus-marshal-recursive.c
7351         (_dbus_type_reader_array_is_empty): change this to just call
7352         array_reader_get_array_len() and make it static
7353
7354         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7355         from get_array_type
7356         (dbus_message_iter_init_append): rename from append_iter_init
7357
7358         * dbus/dbus-marshal-recursive.c
7359         (_dbus_type_reader_get_element_type): rename from
7360         _dbus_type_reader_get_array_type
7361
7362 2005-01-15  Havoc Pennington  <hp@redhat.com>
7363
7364         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7365
7366         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7367         when DBUS_DISABLE_ASSERT
7368         (_dbus_marshal_set_basic): be sure we align for the string length
7369
7370         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7371         this look faster
7372
7373         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7374         inline macro version
7375         (_dbus_string_set_byte): provide inline macro version
7376
7377 2005-01-15  Havoc Pennington  <hp@redhat.com>
7378
7379         * Land the new message args API and type system.
7380
7381         This patch is huge, but the public API change is not 
7382         really large. The set of D-BUS types has changed somewhat, 
7383         and the arg "getters" are more geared toward language bindings;
7384         they don't make a copy, etc.
7385
7386         There are also some known issues. See these emails for details
7387         on this huge patch:
7388         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7389         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7390         
7391         * dbus/dbus-marshal-*: all the new stuff
7392
7393         * dbus/dbus-message.c: basically rewritten
7394
7395         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7396         freed blocks to be all non-nul bytes so using freed memory is less
7397         likely to work right
7398
7399         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7400         DBUS_FAIL_MALLOC=N environment variable, so you can do
7401         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7402         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7403         thorough.
7404
7405         * qt/message.cpp: port to the new message args API
7406         (operator<<): use str.utf8() rather than str.unicode()
7407         (pretty sure this is right from the Qt docs?)
7408
7409         * glib/dbus-gvalue.c: port to the new message args API
7410
7411         * bus/dispatch.c, bus/driver.c: port to the new message args API
7412
7413         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7414         "locked" flag to TRUE and align_offset to 0; I guess we never
7415         looked at these anyhow, but seems cleaner.
7416
7417         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7418         move allocation padding macro to this header; use it to implement
7419         (_DBUS_STRING_STATIC): ability to declare a static string.
7420
7421         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7422         change to return TRUE if the interface is not set.
7423
7424         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7425         to dbus-marshal-validate.[hc]
7426
7427         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7428         dbus-internals.c
7429
7430         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7431         to dbus-marshal-*.[hc]
7432
7433         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7434         function here from dbus-marshal.c
7435
7436 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7437
7438         * NEWS: Update for 0.23.
7439
7440         * configure.in: Release 0.23.
7441
7442 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7443
7444         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7445         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7446         behind.
7447
7448         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7449         uninstall"
7450
7451         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7452         is an enum, get the enum's underlying type.  Another mono
7453         1.1.3 fix.
7454
7455 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7456
7457         Patch from Sjoerd Simons <sjoerd@luon.net>
7458
7459         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7460         DESTDIR.  It breaks stuff.
7461
7462 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7463
7464         Patch from Tambet Ingo <tambet@ximian.com>
7465
7466         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7467         calling type.GetElementType().  The code previously depended on
7468         broken Mono behavior, which was fixed in Mono 1.1.3.
7469
7470         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7471         Activator.CreateInstance() so that the class's constructor is
7472         called with the right parameters.
7473
7474 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7475
7476         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7477
7478         * dbus/dbus-connection.c
7479         (_dbus_connection_queue_received_message_link): Call
7480         _dbus_connection_remove_timeout() instead of the _locked()
7481         variant, since it's always called from
7482         _dbus_connection_handle_watch(), which handles the locking.
7483         Removed the _locked() variant since it's no longer used.
7484
7485 2005-01-03  Havoc Pennington  <hp@redhat.com>
7486
7487         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7488         return
7489         
7490 2004-12-26  Havoc Pennington  <hp@redhat.com>
7491
7492         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7493
7494 2005-01-03  Havoc Pennington  <hp@redhat.com>
7495
7496         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7497         floating point
7498
7499         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7500
7501 2005-01-02  Havoc Pennington  <hp@redhat.com>
7502
7503         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7504
7505 2005-01-01  Havoc Pennington  <hp@redhat.com>
7506
7507         * configure.in: add -Wfloat-equal
7508
7509 2005-01-01  Havoc Pennington  <hp@redhat.com>
7510
7511         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7512         for a variety of reasons '==' doesn't do this.
7513
7514 2004-12-31  Havoc Pennington  <hp@redhat.com>
7515
7516         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7517         I keep wishing I had
7518
7519 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7520
7521         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7522
7523 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7524
7525         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7526         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7527         dbus-protocol.h.  Because they are defines and not enums they are not
7528         autogenerated.
7529
7530 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7531
7532         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7533         dbus_bus_activate_service
7534
7535         * python/dbus.py (Bus.activate_service): activate a service on the
7536         bus.
7537
7538 2004-12-24  Havoc Pennington  <hp@redhat.com>
7539
7540         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7541         file format has also changed and I haven't adapted to that yet
7542         
7543         * Makefile.am: load .gcno files from latest gcc
7544
7545 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7546         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7547
7548         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7549         lowlevel binding
7550
7551         * python/dbus.py (get_unix_user): Added binding to 
7552         call dbus_bindings.bus_get_unix_user
7553
7554         * python/extract.py: Modified the proto_pat regex to
7555         handle unsigned long
7556
7557 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7558
7559         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7560         better POSIX compliance.
7561
7562 2004-12-19  Havoc Pennington  <hp@redhat.com>
7563
7564         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7565         (_dbus_string_insert_8_aligned): new functions
7566
7567         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7568
7569 2004-12-18  Havoc Pennington  <hp@redhat.com>
7570
7571         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7572         macro
7573
7574         * dbus/dbus-message.c: fix a comment, and add a still-unused
7575         not-implemented function
7576
7577         * dbus/dbus-marshal.h: fix comment
7578
7579         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7580
7581 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7582
7583         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7584         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7585         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7586         Type.UnderlyingSystemType to get the actual system type
7587         underneath.  This code previously depended on the broken Mono
7588         behavior, which was fixed in 1.1.3.
7589
7590 2004-11-27  Havoc Pennington  <hp@redhat.com>
7591
7592         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7593         are disabled
7594         (_dbus_string_get_const_data): inline when asserts are disabled
7595
7596         * dbus/dbus-message.c: record the _dbus_current_generation of
7597         creation so we can complain if dbus_shutdown() is used improperly.
7598         Do this only if checks are enabled.
7599
7600         * dbus/dbus-connection.c: ditto
7601         
7602 2004-11-26  Havoc Pennington  <hp@redhat.com>
7603
7604         * test/glib/test-profile.c: add with_bus mode to profile echoes
7605         that go through the bus.
7606
7607         * test/glib/run-test.sh: add ability to run test-profile
7608
7609         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7610         config file reload.
7611
7612 2004-11-26  Havoc Pennington  <hp@redhat.com>
7613
7614         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7615         thing was implemented
7616
7617 2004-11-26  Havoc Pennington  <hp@redhat.com>
7618
7619         * test/glib/test-profile.c: tweak a bit, add support for some
7620         made-up minimal malloc overhead with plain sockets, since in 
7621         real life some sort of buffers are unavoidable thus we could 
7622         count them in the theoretical best case
7623
7624 2004-11-26  Havoc Pennington  <hp@redhat.com>
7625
7626         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7627         where I was trying to cache one too many messages
7628
7629 2004-11-26  Havoc Pennington  <hp@redhat.com>
7630
7631         * dbus/dbus-message.c: reimplement message cache as an array which 
7632         makes the cache about twice as fast and saves maybe 1.5% overall
7633
7634 2004-11-26  Havoc Pennington  <hp@redhat.com>
7635
7636         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7637         message cache lock here
7638
7639 2004-11-26  Havoc Pennington  <hp@redhat.com>
7640
7641         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7642         the "char byte_order" next to each other to save 4 bytes
7643         (dbus_message_new_empty_header): reduce preallocation, since the
7644         message cache should achieve a similar effect
7645         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7646         message cache that keeps a few DBusMessage around in a pool,
7647         another 8% speedup or so.
7648
7649         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7650
7651 2004-11-25  Havoc Pennington  <hp@redhat.com>
7652
7653         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7654         to write, without reading or blocking, try it before the poll()
7655         and skip the poll() if nothing remains to write. This is about a
7656         3% speedup in the echo client/server
7657
7658 2004-11-25  Havoc Pennington  <hp@redhat.com>
7659
7660         The primary change here is to always write() once before adding
7661         the write watch, which gives us about a 10% performance increase.
7662         
7663         * dbus/dbus-transport-unix.c: a number of modifications to cope
7664         with removing messages_pending
7665         (check_write_watch): properly handle
7666         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7667         messages_pending stuff
7668         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7669         AUTHENTICATED cases
7670         (unix_handle_watch): after writing, see if the write watch can be
7671         removed
7672         (unix_do_iteration): assert that write_watch/read_watch are
7673         non-NULL rather than testing that they aren't, since they 
7674         aren't allowed to be NULL. check_write_watch() at the end so 
7675         we add the watch if we did not finish writing (e.g. got EAGAIN)
7676
7677         * dbus/dbus-transport-protected.h: remove messages_pending call,
7678         since it resulted in too much inefficient watch adding/removing; 
7679         instead we now require that the transport user does an iteration 
7680         after queueing outgoing messages, and after trying the first
7681         write() we add a write watch if we got EAGAIN or exceeded our 
7682         max bytes to write per iteration setting
7683
7684         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7685         function
7686
7687         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7688         freed and then accessed, valgrind flagged this bug, fix it
7689
7690         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7691         as the last valid field plus 1, where really it is equal to the
7692         last valid field. Corrects some message corruption issues.
7693
7694         * dbus/dbus-mainloop.c: verbosity changes
7695
7696         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7697         instead of aborting in one of the test codepaths
7698
7699         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7700         caused not printing the pid ever again if a verbose was missing
7701         the newline at the end
7702         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7703
7704         * dbus/dbus-connection.c: verbosity changes; 
7705         (dbus_connection_has_messages_to_send): new function
7706         (_dbus_connection_message_sent): no longer call transport->messages_pending
7707         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7708         try to write() immediately, so we can avoid the write watch. This
7709         is the core purpose of this patchset
7710         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7711         dump the outgoing message queue, so nobody will get confused
7712         trying to send them or thinking stuff is pending to be sent
7713
7714         * bus/test.c: verbosity changes
7715
7716         * bus/driver.c: verbosity/assertion changes
7717
7718         * bus/dispatch.c: a bunch of little tweaks to get it working again
7719         because this patchset changes when/where you need to block.
7720
7721 2004-11-23  Havoc Pennington  <hp@redhat.com>
7722
7723         * test/glib/test-profile.c: modify to accept a plain_sockets
7724         argument in which case it will bench plain sockets instead of
7725         libdbus, for comparison purposes.
7726
7727 2004-11-22  Havoc Pennington  <hp@redhat.com>
7728
7729         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7730         threads for more time, so sysprof can get a grip on it.
7731
7732         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7733         pointless variable
7734
7735 2004-11-13  Havoc Pennington  <hp@redhat.com>
7736
7737         * test/glib/test-profile.c: fix this thing up a bit
7738
7739         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7740         preallocation sizes by a fair bit; not sure if this will be an
7741         overall performance win or not, but it does reduce reallocs.
7742
7743         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7744         the test hack that forced constant realloc if asserts are
7745         disabled, so we can profile sanely. Sprinkle in some
7746         _DBUS_UNLIKELY() which are probably pointless, but before I
7747         noticed the real performance problem I put them in.
7748         (_dbus_string_validate_utf8): micro-optimize this thing a little
7749         bit, though callgrind says it didn't help; then special-case
7750         ascii, which did help a lot; then be sure we detect nul bytes as
7751         invalid, which is a bugfix.
7752         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7753         superstition; use memset to nul the padding instead of a manual
7754         loop.
7755         (_dbus_string_get_length): inline this as a
7756         macro; it showed up in the profile because it's used for loop
7757         tests and so forth
7758
7759 2004-11-10  Colin Walters  <walters@verbum.org>
7760
7761         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7762         for extra paranoia.
7763
7764 2004-11-09  Colin Walters  <walters@verbum.org>
7765
7766         * dbus/dbus-string.c (_dbus_string_get_length): New
7767         function, writes DBusString to C buffer.
7768
7769         * dbus/dbus-string.h: Prototype it.
7770
7771         * dbus/dbus-message.c (dbus_message_type_to_string): New
7772         function, converts message type into C string.
7773
7774         * dbus/dbus-message.h: Prototype it.
7775
7776         * bus/selinux.c (bus_selinux_check): Take source pid,
7777         target pid, and audit data.  Pass audit data to
7778         avc_has_perm.
7779         (log_audit_callback): New function, appends extra
7780         audit information.
7781         (bus_selinux_allows_acquire_service): Also take
7782         service name, add it to audit data.
7783         (bus_selinux_allows_send): Also take message
7784         type, interface, method member, error name,
7785         and destination, and add them to audit data.
7786         (log_cb): Initialize func_audit.
7787         
7788         * bus/selinux.h (bus_selinux_allows_acquire_service)
7789         (bus_selinux_allows_send): Update prototypes 
7790
7791         * bus/services.c (bus_registry_acquire_service): Pass
7792         service name to bus_selinux_allows_acquire_service.
7793
7794         * bus/bus.c (bus_context_check_security_policy): Pass
7795         additional audit data.  Move assignment of dest
7796         to its own line.
7797
7798 2004-11-07  Colin Walters  <walters@verbum.org>
7799
7800         * dbus/dbus-transport-unix.c (do_authentication): Always
7801         initialize auth_completed.
7802         
7803 2004-11-07  Colin Walters  <walters@verbum.org>
7804
7805         * bus/bus.c (load_config): Break into three
7806         separate functions: process_config_first_time_only,
7807         process_config_every_time, and process_config_postinit.
7808         (process_config_every_time): Move call of
7809         bus_registry_set_service_context_table into
7810         process_config_postinit.
7811         (process_config_postinit): New function, does
7812         any processing that needs to happen late
7813         in initialization (and also on reload).
7814         (bus_context_new): Instead of calling load_config,
7815         open config parser here and call process_config_first_time_only
7816         and process_config_every_time directly.  Later, after
7817         we have forked but before changing UID,
7818         invoke bus_selinux_full_init, and then call
7819         process_config_postinit.
7820         (bus_context_reload_config): As in bus_context_new,
7821         load parse file inside here, and call process_config_every_time
7822         and process_config_postinit.
7823
7824         * bus/services.h, bus/services.c
7825         (bus_registry_set_service_context_table): Rename
7826         from bus_registry_set_sid_table.  Take string hash from config
7827         parser, and convert them here into SIDs.
7828
7829         * bus/config-parser.c (struct BusConfigParser): Have
7830         config parser only store a mapping of service->context
7831         string.
7832         (merge_service_context_hash): New function.
7833         (merge_included): Merge context string hashes instead
7834         of using bus_selinux_id_table_union.
7835         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7836         simply create a new string hash.
7837         (bus_config_parser_unref): Unref it.
7838         (start_selinux_child): Simply insert strings into hash,
7839         don't call bus_selinux_id_table_copy_over.
7840
7841         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7842         (bus_selinux_id_table_copy_over): Delete.
7843
7844 2004-11-03  Colin Walters  <walters@verbum.org>
7845
7846         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7847         variables.
7848         
7849 2004-11-03  Colin Walters  <walters@verbum.org>
7850
7851         * bus/test-main.c (test_pre_hook): Fix test logic,
7852         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7853
7854 2004-11-02  Colin Walters  <walters@redhat.com>
7855
7856         * bus/selinux.c (bus_selinux_init): Split into two functions,
7857         bus_selinux_pre_init and bus_selinux_post_init.
7858         (bus_selinux_pre_init): Just determine whether SELinux is
7859         enabled.
7860         (bus_selinux_post_init): Do everything else.
7861
7862         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7863         config file, and bus_selinux_post_init after.  This ensures that
7864         we don't lose the policyreload notification thread that
7865         bus_selinux_init created before forking previously.
7866         
7867         * bus/test-main.c (test_pre_hook): Update for split.
7868
7869 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7870
7871         Patch from Johan Fischer <linux@fischaz.com>
7872         
7873         * mono/doc/Makefile.am (install-data-local): Added directory
7874         install for DESTDIR
7875
7876 2004-10-29  Colin Walters  <walters@redhat.com>
7877
7878         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7879         parameter for fd to write pid to.       
7880
7881         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7882         
7883         * bus/bus.c (bus_context_new): Pass print_pid_fd
7884         to _dbus_become_daemon (bug #1720)
7885
7886 2004-10-29  Colin Walters  <walters@redhat.com>
7887
7888         Patch from Ed Catmur <ed@catmur.co.uk>
7889
7890         * mono/doc/Makefile.am (install-data-local): Handle
7891         DESTDIR.
7892
7893 2004-10-29  Colin Walters  <walters@redhat.com>
7894
7895         * bus/.cvsignore, qt/.cvsignore: Update.
7896
7897 2004-10-29  Colin Walters  <walters@redhat.com>
7898
7899         Patch from Kristof Vansant <de_lupus@pandora.be>
7900
7901         * configure.in: Detect Slackware.
7902         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7903         * bus/rc.messagebus.in: New file.
7904
7905 2004-10-29  Colin Walters  <walters@redhat.com>
7906
7907         * tools/dbus-monitor.c (filter_func): Return
7908         DBUS_HANDLER_RESULT_HANDLED in filter function
7909         for now.  See:
7910         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7911
7912 2004-10-29  Colin Walters  <walters@redhat.com>
7913
7914         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7915
7916         * bus/services.c (bus_registry_acquire_service): 
7917         Correctly retrieve service name from DBusString
7918         for printing.
7919
7920 2004-10-29  Colin Walters  <walters@redhat.com>
7921
7922         * dbus/dbus-glib.h: Update documentation to not
7923         refer to internal APIs.
7924
7925 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7926
7927         * mono/Arguments.cs (GetDBusTypeConstructor):
7928         type.UnderlyingSystemType will return "System.Byte" if you do it
7929         on "byte[]", which is not what we want.  So check the type.IsArray
7930         property and use System.Array instead.
7931
7932 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7933
7934         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7935         the DBusUserInfo structure since this is passed into the function.
7936         This would cause a double free when the function that allocated
7937         the structure would try to free it when an error occured.
7938
7939         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7940         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7941         for service activation to avoid 32bit/64bit parallel install issues
7942
7943 2004-10-21  Colin Walters  <walters@verbum.org>
7944
7945         * AUTHORS: Fix my email address, the @gnu.org one
7946         has been bouncing for some time.  Also add J5.
7947         
7948 2004-10-21  Colin Walters  <walters@verbum.org>
7949
7950         * dbus/dbus-transport-unix.c (do_authentication): Return
7951         authentication status to callers.
7952         (unix_handle_watch): If we completed authentication this round,
7953         don't do another read.  Instead wait until the next iteration,
7954         after we've read any pending data in the auth buffer.
7955         (unix_do_iteration): Ditto.
7956         (unix_handle_watch): Updated for new do_authentication prototype.
7957
7958 2004-10-18  Colin Walters  <walters@verbum.org>
7959
7960         * bus/selinux.c (bus_selinux_enabled): Handle
7961         --disable-selinux case.
7962         
7963 2004-10-18  Colin Walters  <walters@verbum.org>
7964
7965         * bus/selinux.h: Add bus_selinux_enabled.
7966         
7967         * bus/selinux.c (bus_selinux_enabled): Implement it.
7968         
7969         * bus/config-parser.c (struct include): Add
7970         if_selinux_enabled member.
7971         (start_busconfig_child): Parse if_selinux_enabled
7972         attribute for include.
7973         (bus_config_parser_content): Handle it.
7974
7975         * bus/session.conf.in, bus/system.conf.in: Add
7976         inclusion of context mapping to default config files;
7977         conditional on SELinux being enabled.
7978         
7979         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7980         
7981         * test/data/invalid-config-files/badselinux-1.conf, 
7982         test/data/invalid-config-files/badselinux-2.conf:
7983         Test files for bad syntax.
7984         
7985 2004-10-17  Colin Walters  <walters@verbum.org>
7986
7987         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7988         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7989         format specifier mismatches.
7990
7991 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7992
7993         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7994         format string.
7995
7996         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7997         pointer (bug #1540, Leonardo Boiko).
7998
7999 2004-09-28  Jon Trowbridge  <trow@ximian.com>
8000
8001         * mono/BusDriver.cs: Changed BusDriver struct to remove
8002         the ServiceCreated and ServiceDeleted events and replace them
8003         with the new ServiceOwnerChanged event.
8004
8005         * mono/example/BusListener.cs: Added a new example program,
8006         which listens for and reports any ServiceOwnerChanged events
8007         on the bus driver.
8008
8009         * mono/example/Makefile.am (DESTDIR): Build changes for the
8010         new BusListener.cs example.
8011
8012 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8013
8014         * bus/signals.c (bus_match_rule_parse): validate the components of
8015         match rules (bug #1439).
8016
8017         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
8018
8019 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8020
8021         * doc/dbus-specification.xml: document ServiceOwnerChanged
8022         signal.
8023         
8024         * bus/driver.c, bus/driver.h, bus/services.c: Use
8025         ServiceOwnerChanged signal instead of ServiceCreated and
8026         ServiceDeleted.
8027         
8028         * bus/dispatch.c: update testcase for the new signal.
8029
8030 2004-09-20  Jon Trowbridge  <trow@ximian.com>
8031
8032         Patch from Nat Friedman <nat@novell.com>
8033
8034         * mono/Makefile.am: A number of small build fixes to allow "make
8035         distcheck" to succeed.
8036
8037         * mono/example/Makefile.am: "make distcheck" fixes.
8038
8039         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
8040         key in @srcdir@.
8041
8042         * test/Makefile.am: "make distcheck" fixes.
8043
8044 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8045
8046         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
8047
8048         * doc/busconfig.dtd: update the DTD for the at_console attribute.
8049
8050         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
8051         messages after the first one (bug #1389).
8052         
8053         * bus/dispatch.c (check_double_hello_message): add a test case for
8054         the double hello message bug.
8055         (check_existent_service_activation): fix check of spawning error.
8056         
8057 2004-09-16  David Zeuthen  <david@fubar.dk>
8058
8059         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
8060
8061 2004-09-12  David Zeuthen  <david@fubar.dk>
8062
8063         Patch from Kay Sievers <kay.sievers@vrfy.org>
8064
8065         * bus/bus.c (bus_context_new):
8066         * bus/bus.h:
8067         * bus/main.c (usage)
8068         (main):
8069         Add commandline option --nofork to override configuration file
8070         setting.
8071
8072 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8073
8074         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
8075         compilers don't like it (bug #974).
8076
8077 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
8078
8079         * qt/connection.*: Applied patch by Jérôme Lodewyck
8080         <lodewyck@clipper.ens.fr> to integrate an existing
8081         connection into the Qt eventloop
8082
8083 2004-08-30  Jon Trowbridge  <trow@ximian.com>
8084
8085         * mono/BusDriver.cs: Added.  This is a class for interacting with
8086         the org.freedesktop.DBus service.
8087
8088         * mono/Message.cs: Added a mechanism to expose the message that is
8089         currently being dispatched via the static Message.Current
8090         property.  Added Message.Sender and Message.Destination
8091         properties.
8092
8093         * mono/Handler.cs: Expose the dispatched message via
8094         Message.Current when handling method calls.
8095
8096         * mono/Service.cs: Expose the dispatched message via
8097         Message.Current when handling signal emissions.
8098         
8099         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
8100         Connection.BaseService property.
8101
8102 2004-08-28  Havoc Pennington  <hp@redhat.com>
8103
8104         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
8105
8106         More fixes from Steve Grubb
8107         
8108         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
8109         (_dbus_listen_tcp_socket): fix fd leak
8110
8111         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
8112         EINTR to a bit lower in the code
8113
8114 2004-08-26  Jon Trowbridge  <trow@ximian.com>
8115
8116         * bus/driver.c (bus_driver_handle_service_exists): Respond with
8117         TRUE if we are inquiring about the existence of the built-in
8118         org.freedesktop.DBus service.
8119
8120 2004-08-25  John Palmieri  <johnp@redhat.com>
8121         * bus/config-parser.c:
8122         (struct PolicyType): Add POLICY_CONSOLE
8123         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
8124         (start_busconfig_child): Sets up console element when
8125         <policy at_console=""> is encountered in a policy file
8126         (append_rule_from_element): Convert console elements to console
8127         rules.
8128
8129         * bus/policy.c: 
8130         (bus_policy_create_client_policy): Add console rules to the client
8131         policy based on if the client is at the console
8132         (bus_policy_append_console_rule): New function for adding a
8133         console rule to a policy
8134         (bus_policy_merge): Handle console rule merging
8135
8136         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
8137         where we check for console user files
8138         
8139         * dbus/dbus-sysdeps.c:
8140         (_dbus_file_exists): New function which checks if the given
8141         file exists
8142         (_dbus_user_at_console): New function which does the system
8143         specific process of checking if the user is at the console
8144
8145         * dbus/dbus-userdb.c:
8146         (_dbus_is_console_user): New function converts a UID to user name
8147         and then calls the system specific _dbus_user_at_console to 
8148         see if the user is at the console and therefor a console user
8149
8150 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8151
8152         * bus/config-parser.c (set_limit):
8153         * bus/dbus-daemon-1.1.in:
8154         * test/data/valid-config-files/many-rules.conf: set the
8155         max_match_rules_per_connection limt from the config file. 
8156
8157         * doc/busconfig.dtd: update the DTD.
8158
8159         * bus/driver.c: remove some unused variables.
8160
8161 2004-08-24  Mikael Hallendal  <micke@imendio.com>
8162
8163         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
8164         it's been replaced by dbus_g_bus_get
8165
8166 2004-08-23  Colin Walters  <walters@redhat.com>
8167
8168         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8169
8170         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
8171
8172         * bus/selinux.c: Create a thread for policy reload notification.
8173         (bus_selinux_get_policy_root): Implement.
8174
8175         * bus/config-parser.c (start_busconfig_child)
8176         (bus_config_parser_content): Support SELinux-root relative
8177         inclusion.
8178
8179         * configure.in <HAVE_SELINUX>: Add -lpthread.
8180         
8181         * bus/test-main.c (test_pre_hook, test_post_hook): New.
8182         (test_post_hook): Move memory checking into here.
8183         (test_pre_hook, test_post_hook): Move SELinux checks in
8184         here, but conditional on a DBUS_TEST_SELINUX environment
8185         variable.  Unfortunately we can't run the SELinux checks
8186         as a normal user, since they won't have any permissions
8187         for /selinux.  So this will have to be tested manually
8188         for now, until we have virtualization for most of
8189         libselinux.
8190         
8191 2004-08-23  Havoc Pennington  <hp@redhat.com>
8192
8193         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
8194         drop supplementary groups, suggested by Steve Grubb
8195
8196 2004-08-20  Colin Walters  <walters@redhat.com>
8197
8198         * bus/config-parser.c (start_busconfig_child): Remove some unused
8199         variables.
8200         
8201         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
8202         warning.
8203
8204 2004-08-17  Joe Shaw  <joeshaw@novell.com>
8205
8206         * configure.in: If --enable-mono is passed in, if we can't find
8207         mono error out.
8208
8209         * mono/Makefile.am: Use /gacutil to install assemblies into the
8210         GAC and not /root.
8211
8212 2004-08-12  Havoc Pennington  <hp@redhat.com>
8213
8214         * NEWS: update for 0.22
8215
8216         * configure.in: release 0.22
8217
8218 2004-08-11  Colin Walters  <walters@redhat.com>
8219
8220         * tools/dbus-send.c (main, usage): Add --reply-timeout
8221         argument.
8222
8223 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8224
8225         * bus/bus.c (process_config_first_time_only): get rid of an unused
8226         DBusError that was causing a memoy leak (bug #989).
8227
8228         * dbus/dbus-keyring.c, dbus/dbus-message.c:
8229         fix compilation on Solaris/Forte C (bug #974)
8230
8231         * bus/main.c (main): plug two minuscule memleaks.
8232
8233 2004-08-10  Havoc Pennington  <hp@redhat.com>
8234
8235         * doc/dbus-tutorial.xml: add some more info on GLib bindings
8236
8237 2004-08-09  Havoc Pennington  <hp@redhat.com>
8238
8239         * COPYING: switch to Academic Free License version 2.1 instead of
8240         2.0, to resolve complaints about patent termination clause.
8241
8242 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
8243
8244         * README: added documentation for the --enable-python 
8245         configure switch.
8246
8247 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8248
8249         * bus/config-parser.c (bus_config_parser_new): fix an invalid
8250         _unref in the SELinux support.
8251
8252         * doc/busconfig.dtd: update DTD for SELinux support.
8253
8254         * bus/config-loader-libxml.c: fix error handler and parser
8255         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8256
8257         * configure.in: remove the warning about libxml2.
8258
8259         * dbus/dbus-bus.c: silence doxygen warning.
8260
8261 2004-07-31  Colin Walters  <walters@redhat.com>
8262
8263         * configure.in: Move #error in SELinux check to its own line.
8264
8265 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8266
8267         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8268         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8269         dbus_error_set.
8270
8271         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8272         broken by the change in the _SET_OOM macros.
8273
8274 2004-07-31  Colin Walters  <walters@redhat.com>
8275
8276         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8277         BUS_SET_OOM.
8278
8279 2004-07-31  Colin Walters  <walters@redhat.com>
8280
8281         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8282         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8283         AC_MSG_CHECKING.
8284
8285 2004-07-24  Havoc Pennington  <hp@redhat.com>
8286
8287         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8288
8289         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8290         functionality
8291
8292         * configure.in: add --enable-selinux
8293         
8294         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8295
8296         * bus/main.c (main): initialize and shut down selinux
8297
8298         * bus/connection.c: store SELinux ID on each connection, to avoid 
8299         repeated getting of the string context and converting it into 
8300         an ID
8301
8302         * bus/bus.c (bus_context_get_policy): new accessor, though it
8303         isn't used
8304         (bus_context_check_security_policy): check whether the security
8305         context of sender connection can send to the security context of
8306         recipient connection
8307
8308         * bus/config-parser.c: add parsing for <selinux> and <associate>
8309         
8310         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8311         implement dbus_connection_get_unix_fd()
8312
8313         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8314         function, used by the selinux stuff
8315         
8316 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8317
8318         * bus/config-loader-libxml.c: complete the implementation of
8319         libxml backend for config file loader. Doesn't work with full OOM
8320         test yet. 
8321         
8322         * configure.in: change error when selecting libxml into a warning.
8323         
8324         * test/data/invalid-config-files: add two non-well-formed XML
8325         files. 
8326         
8327         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8328         
8329         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8330         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8331         be necessary to read all the buffer. (bug #894)
8332
8333         * bus/activation.c (bus_activation_activate_service): fix a
8334         potential assertion failure (bug #896). Small optimization in the
8335         case of auto-activation messages.
8336
8337         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8338         add test case for byte-through-vararg bug (#901). patch by Kimmo
8339         Hämäläinen. 
8340
8341 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8342
8343         * python/dbus.py:
8344         * python/dbus_bindings.pyx.in:
8345         Add dbus.init_gthreads (), allow emit_signal to pass
8346         arguments to the signal.
8347         
8348 2004-07-24  Havoc Pennington  <hp@redhat.com>
8349
8350         * AUTHORS: add some people, not really comprehensively, let me
8351         know if I missed you
8352
8353 2004-07-24  Havoc Pennington  <hp@redhat.com>
8354
8355         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8356         Owen
8357
8358         * test/Makefile.am (DIST_SUBDIRS): here also
8359
8360 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8361
8362         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8363         breaking build on Solaris, reported by Farhad Saberi on the ML.
8364
8365         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8366         va_arg invocation to account for integer promotion in the case of
8367         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8368
8369         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8370         _dbus_list_get_first_link, not _dbus_list_get_first.
8371
8372         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8373
8374         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8375         handler functions so that the asserts in _dbus_object_subtree_unref
8376         do not fail.
8377
8378         * dbus/dbus-transport-unix.c (do_reading):
8379         _dbus_transport_queue_messages return value is of type
8380         dbus_bool_t, not DBusDispatchStatus.
8381         
8382 2004-07-19  David Zeuthen  <david@fubar.dk>
8383
8384         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8385
8386         * bus/dispatch.c:
8387         (check_get_connection_unix_user): Debug says GetProperty; but the
8388         method is called GetConnectionUnixUser
8389         (check_get_connection_unix_process_id): New function
8390         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8391         also call check_get_connection_unix_process_id()
8392         
8393         * bus/driver.c:
8394         (bus_driver_handle_get_connection_unix_process_id): New function,
8395         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8396         interface
8397         
8398         * dbus/dbus-auth.c:
8399         (handle_server_data_external_mech): Set pid from the credentials
8400         obtained from the socket
8401         
8402         * dbus/dbus-connection.c:
8403         (dbus_connection_get_unix_process_id): New function
8404         
8405         * dbus/dbus-connection.h: 
8406         Add prototype for dbus_connection_get_unix_process_id
8407         
8408         * dbus/dbus-transport.c:
8409         (_dbus_transport_get_unix_process_id): New function
8410         
8411         * dbus/dbus-transport.h:
8412         Add prototype for _dbus_transport_get_unix_process_id
8413         
8414 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8415
8416         * dbus/dbus-message.c: Message counter fix, patch by Christian
8417         Hammond <chipx86@gnupdate.org>
8418
8419 2004-07-18  Seth Nickell  <seth@gnome.org>
8420
8421         * python/dbus.py:
8422         * python/dbus_bindings.pyx.in:
8423         * python/tests/test-client.py:
8424
8425         Add dbus.ByteArray and dbus_bindings.ByteArray
8426         types so that byte streams can be passed back.
8427
8428         Give jdahlin the heaps of credit that are so
8429         rightfully his.
8430         
8431 2004-07-12  Seth Nickell  <seth@gnome.org>
8432
8433         * python/dbus.py:
8434
8435         Add message argument to the default object_method_handler
8436         function.
8437         
8438         * python/dbus_bindings.pyx.in:
8439
8440         Automatically return NIL when passed an empty list
8441         (we can't pass back a list since lists are typed
8442         and we don't have any idea what type the the client
8443         intended the list to be... :-( )
8444         
8445 2004-07-10  Seth Nickell  <seth@gnome.org>
8446
8447         * python/examples/Makefile.am:
8448
8449         Fix distcheck breakage caused by new examples.
8450
8451 2004-07-10  Seth Nickell  <seth@gnome.org>
8452
8453         * python/dbus.py:
8454
8455         Add "message" argument to service-side dbus.Object
8456         methods. This will break existing services written
8457         using the python bindings, but will allow extraction
8458         of all the message information (e.g. who its from).
8459
8460         Add improved "object oriented" signal handling/emission.
8461         
8462         * python/examples/example-service.py:
8463
8464         Nix this example.
8465         
8466         * python/examples/example-signal-emitter.py:
8467         * python/examples/example-signal-recipient.py:
8468
8469         Two new examples that show how to emit and receive
8470         signals using the new APIs.
8471         
8472         * python/examples/example-signals.py:
8473         * python/examples/gconf-proxy-service.py:
8474         * python/examples/gconf-proxy-service2.py:
8475
8476         Add "message" argument to service methods.
8477
8478 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8479
8480         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8481         * dbus/bus.c (dbus_bus_get_unix_user)
8482         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8483         method of org.freedesktop.DBus interface.
8484
8485         * bus/dispatch.c: test case
8486
8487 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8488
8489         * python/Makefile.am: switched include directory from glib/ to dbus/
8490         since dbus-glib.h moved
8491  
8492 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8493
8494         * configure.in: prevent building the gcj stuff and libxml loader
8495         since they are broken.
8496
8497 2004-06-20  Havoc Pennington  <hp@redhat.com>
8498
8499         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8500         codes from the dbus error names
8501         
8502         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8503         as dbus/dbus-glib.h and that breakage is now visible due to 
8504         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8505         
8506         * glib/dbus-glib.h: s/gproxy/g_proxy/
8507
8508         * dbus/dbus-shared.h: new header to hold stuff shared with
8509         binding APIs
8510         
8511         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8512         than dbus-errors.h
8513
8514         * glib/dbus-glib.h (dbus_set_g_error): move to
8515         dbus-glib-lowlevel.h
8516
8517         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8518         of stuff to enable this
8519
8520         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8521
8522         * a bunch of other changes with the same basic "separate glib 
8523         bindings from dbus.h" theme
8524         
8525 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8526
8527         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8528
8529         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8530
8531 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8532
8533         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8534         the reply value of the ServiceExists message.
8535
8536 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8537
8538         * python/dbus_bindings.pyx.in: No longer need to parse path
8539         elements and pass them as arrays of strings.  The C API now
8540         accepts plain path strings.
8541         (_build_parsed_path): removed 
8542
8543 2004-06-07  Havoc Pennington  <hp@redhat.com>
8544
8545         * doc/TODO: remove auto-activation item since it's done; sort
8546         items by importance/milestone
8547
8548 2004-06-07  Havoc Pennington  <hp@redhat.com>
8549
8550         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8551         random signature when using REQUIRED_FIELDS (this hack won't work
8552         in the long term)
8553
8554         * dbus/dbus-message.c: change the signature to be a header field,
8555         instead of message->signature special-case string. Incremental
8556         step forward. Then we can fix up code to send the signature in the
8557         message, then fix up code to validate said signature, then fix up
8558         code to not put the typecodes inline, etc.
8559         (load_one_message): don't make up the signature after the fact
8560         (decode_header_data): require signature field for the known
8561         message types
8562
8563         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8564
8565         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8566
8567 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8568
8569         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8570
8571         * mono/Handler.cs: Updated to follow new path argument for
8572         (un-)registering objects.
8573
8574         * mono/example/Makefile.am:
8575         * mono/Makefile.am:
8576         * configure.in: Bumped required version for mono and use new -pkg
8577         syntax for deps
8578
8579 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8580
8581         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8582         registration functions take the path argument as char* instead of
8583         char**.
8584
8585         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8586         split off the path decompostion part of
8587         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8588         warnings. 
8589
8590         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8591         
8592 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8593  
8594         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8595         machine approach.  A state is implemented as a function that
8596         handles incoming events as specified for that state.
8597         
8598         * doc/dbus-specification.xml: Update auth protocol state machine
8599         specification to match implementation.  Remove some leftover
8600         base64 examples.
8601
8602 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8603
8604         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8605         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8606         quiet doxygen.
8607
8608         * Doxyfile.in: remove deprecated options.
8609
8610         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8611         glib/test-thread.h, glib/test-thread-client.c,
8612         glib/test-thread-server.c, glib/test-profile.c,
8613         glib/test-dbus-glib.c: remove these unused files.
8614
8615 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8616
8617         * dbus/dbus-object-tree.c
8618         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8619         non-fallback handlers (bug #684).
8620         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8621         (find_subtree_recurse): report wether the returned subtree is an
8622         exact match or a "fallback" match higher up in the tree.
8623         (object_tree_test_iteration): update test case.
8624
8625 2004-06-01  Seth Nickell  <seth@gnome.org>
8626
8627         * python/dbus_bindings.pyx.in:
8628         * python/tests/test-client.py:
8629
8630         Round off basic type support. Add dicts (yay!), and 
8631         remaining array types.
8632
8633         Make MessageIter more general so it works for dicts too.
8634
8635         Mark all loop variables as C integers.
8636         
8637 2004-05-31  Havoc Pennington  <hp@redhat.com>
8638
8639         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8640         "in" before "out"
8641
8642         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8643
8644         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8645         option that runs the tests, and start filling in some code
8646         including for starters just dumping the interfaces to stdout
8647
8648         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8649
8650         * test/data/valid-introspection-files/lots-of-types.xml: test of
8651         an example introspection file
8652
8653         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8654         "node" (I think...)
8655
8656 2004-05-31  Seth Nickell  <seth@gnome.org>
8657
8658         * python/dbus_bindings.pyx.in:
8659         * python/tests/test-client.py:
8660
8661         Test Suite: 1
8662         Python Bindings: 0
8663
8664         Fix string array memory trashing bug... oops...
8665
8666 2004-05-30  Seth Nickell  <seth@gnome.org>
8667
8668         * python/dbus.py:
8669
8670         Add a nicer-but-less-flexible alternate API for handling 
8671         calls to virtual objects in dbus.ObjectTree.
8672
8673         Screw up the argument order to the dbus.Object constructor
8674         for consistency with dbus.ObjectTree (and to make dbus_methods
8675         optional for future extension)
8676         
8677         * python/examples/Makefile.am:
8678         * python/examples/gconf-proxy-service.py:
8679         * python/examples/gconf-proxy-service2.py:
8680
8681         Alternate implementation of gconf-proxy-service using the
8682         nicer dbus.ObjectTree API.
8683         
8684         * python/examples/example-service.py:
8685         * python/tests/test-server.py
8686
8687         Reverse the argument order to deal with dbus.Object constructor
8688         changes.
8689         
8690 2004-05-30  Seth Nickell  <seth@gnome.org>
8691
8692         * python/examples/example-client.py:
8693         * python/examples/example-service.py:
8694
8695         Take it back. Lists seem to work but they're broken
8696         in the test suite. Make the base examples use
8697         lists (works fine).
8698
8699 2004-05-30  Seth Nickell  <seth@gnome.org>
8700
8701         * python/dbus_bindings.pyx.in:
8702         * python/tests/test-client.py:
8703
8704         Add some more tests and fix errors that crop up.
8705         Unfortunately, currently it seems like marshalling
8706         and unmarshalling of lists is completely broken :-(
8707
8708 2004-05-30  Seth Nickell  <seth@gnome.org>
8709
8710         * python/dbus_bindings.pyx.in:
8711
8712         Add support for ObjectPath type.
8713
8714         * python/dbus.py:
8715
8716         Refactor message handling code to a common function.
8717         
8718         * python/tests/test-client.py:
8719         * python/tests/test-server.py:
8720
8721         Add tests that check to make sure values of all types
8722         can be echoed from a service w/o mangling.
8723         
8724 2004-05-29  Seth Nickell  <seth@gnome.org>
8725
8726         * python/dbus.py:
8727
8728         Add ObjectTree class which allows implementation
8729         of trees of "virtual" objects. Basically the python
8730         wrapper for "register_fallback".
8731         
8732         * python/examples/Makefile.am
8733         * python/examples/gconf-proxy-client.py:
8734         * python/examples/gconf-proxy-service.py:
8735
8736         Implement a simple GConf proxy service that supports
8737         get/set on string and int GConf keys using the ObjectTree.
8738         
8739 2004-05-29  Seth Nickell  <seth@gnome.org>
8740
8741         * python/dbus.py:
8742         * python/examples/example-client.py:
8743         * python/examples/example-service.py:
8744         * python/examples/list-system-services.py:
8745
8746         Add SessionBus, SystemBus and ActivationBus classes
8747         so you don't need to know the special little BUS_TYPE
8748         flag.
8749         
8750 2004-05-29  Havoc Pennington  <hp@redhat.com>
8751
8752         * bus/config-parser.c (process_test_valid_subdir): temporarily
8753         stop testing config parser OOM handling, since expat has issues
8754         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8755
8756         * bus/dbus-daemon-1.1.in: change requested_reply to
8757         send_requested_reply/receive_requested_reply so we can send the
8758         replies, not just receive them.
8759
8760         * bus/config-parser.c: parse the new
8761         send_requested_reply/receive_requested_reply
8762
8763         * bus/policy.c (bus_client_policy_check_can_send): add
8764         requested_reply argument and use it
8765
8766         * bus/bus.c (bus_context_check_security_policy): pass through
8767         requested_reply status to message send check
8768
8769         * bus/system.conf.in: adapt to requested_reply change
8770         
8771 2004-05-28  Havoc Pennington  <hp@redhat.com>
8772
8773         * test/glib/test-service-glib.c (main): remove unused variable
8774
8775         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8776
8777         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8778         from the enum, no longer in use.
8779
8780         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8781         works right.
8782
8783         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8784         whether error_name passed in is a valid error name.
8785
8786 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8787
8788         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8789         OBJECT_PATH and OBJECT_PATH_ARRAY
8790
8791 2004-05-28  Seth Nickell  <seth@gnome.org>
8792
8793         * python/examples/Makefile.am:
8794
8795         Forget to add Makefile.am. Do not pass go.
8796
8797 2004-05-28  Michael Meeks  <michael@ximian.com>
8798
8799         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8800         fix no int64 case.
8801
8802         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8803
8804         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8805         (_dbus_message_iter_get_basic_type_array): impl.
8806         drastically simplify ~all relevant _get methods to use these.
8807         (_dbus_message_iter_append_basic_array),
8808         (dbus_message_iter_append_basic): impl
8809         drastically simplify ~all relevant _append methods to use these.
8810
8811         * dbus/dbus-message-builder.c (parse_basic_type) 
8812         (parse_basic_array, lookup_basic_type): impl.
8813         (_dbus_message_data_load): prune scads of duplicate /
8814         cut & paste coding.
8815
8816         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8817         (_dbus_demarshal_basic_type): implement,
8818         (demarshal_and_validate_len/arg): beef up debug.
8819         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8820
8821 2004-05-27  Seth Nickell  <seth@gnome.org>
8822
8823         * configure.in:
8824         * python/Makefile.am:
8825
8826         Include the example python apps in the tarball.
8827         
8828         * python/examples/list-system-services.py
8829
8830         Add a python new example that fetches the list of services
8831         from the system bus.
8832         
8833 2004-05-27  Seth Nickell  <seth@gnome.org>
8834
8835         * python/dbus.py:
8836         * python/dbus_bindings.pyx.in:
8837
8838         Fix failure to notify that a signal was not handled,
8839         resulted in hung functions.
8840         
8841 2004-05-25  Colin Walters  <walters@redhat.com>
8842
8843         * tools/dbus-monitor.c (main): Monitor all types of messages.
8844
8845 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8846
8847         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8848         which unregisters the object path and disposes the handler.
8849
8850 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8851  
8852         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8853          
8854         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8855         operands to && so we call dbus_message_iter_next () for the last
8856         argument also.
8857
8858 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8859
8860         * dbus/dbus-object-tree.c
8861         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8862         children even if the requested path isn't registered.
8863         (object_tree_test_iteration): test object_tree_list_registered.
8864
8865         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8866         it to 0.
8867         
8868 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8869
8870         * doc/TODO: Remove resolved items.
8871
8872         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8873         field.
8874         
8875         * bus/connection.c (bus_connections_expect_reply): Enforce the
8876         per-connection limit on pending replies.
8877         
8878         Patch from Jon Trowbridge <trow@ximian.com>:
8879  
8880         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8881         up a watch that triggers a config reload when one end of the pipe
8882         becomes readable.
8883         (signal_handler): Instead of doing the config reload in our SIGHUP
8884         handler, just write to the reload pipe and let the associated
8885         watch handle the reload when control returns to the main loop.
8886  
8887         * bus/driver.c (bus_driver_handle_reload_config): Added.
8888         Implements a ReloadConfig method for requesting a configuration
8889         file reload via the bus driver.
8890  
8891 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8892
8893         * HACKING: Updated release instructions concerning the wiki page.
8894
8895 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8896
8897         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8898         filter against auth->allowed_mechs; we only add allowed mechs in
8899         record_mechanisms().
8900  
8901         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8902         ALLOWED_MECHS to auth-script format so we can set the list of
8903         allowed mechanisms.
8904  
8905         * data/auth/client-out-of-mechanisms.auth-script: New test to
8906         check client disconnects when it is out of mechanisms to try.
8907  
8908         * dbus/dbus-auth.c (process_command): Remove check for lines
8909         longer that 1 MB; we only buffer up maximum 16 kB.
8910  
8911         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8912         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8913         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8914         assume there might be unused bytes.
8915  
8916         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8917         client-out-of-mechs, it is handled in process_reject(). Move check
8918         for max failures to send_rejected(), as it's a server-only thing.
8919
8920         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8921         send_auth(), send_data(), send_rejected(), send_error(),
8922         send_ok(), send_begin() and send_cancel().
8923
8924 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8925
8926         Remove base64 encoding, replace with hex encoding. Original patch
8927         from trow@ximian.com, added error handling.
8928
8929         * dbus/dbus-string.c (_dbus_string_base64_encode)
8930         (_dbus_string_base64_decode): Remove.
8931         (_dbus_string_hex_decode): Add end_return argument so we can
8932         distinguish between OOM and invalid hex encoding.
8933         (_dbus_string_test): Remove base64 tests and add test case for
8934         invalid hex.
8935
8936         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8937         Replace base64 with hex.
8938
8939         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8940         for invalid hex encoded data in auth protocol.
8941
8942 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8943
8944         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8945         leak.
8946
8947 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8948
8949         * mono/dbus-sharp.dll.config.in: Added for GAC
8950         * mono/dbus-sharp.snk: Added for GAC
8951         * mono/Assembly.cs.in: Added for GAC
8952         * mono/Makefile.am: Changes for GAC installation        
8953         * configure.in: Added refs for dbus-sharp.dll.config.in and
8954         Assembly.cs.in. More fixes for mono testing
8955         * mono/example/Makefile.am: Changed var to CSC
8956         * Makefile.am: Changed flag name to DBUS_USE_CSC
8957
8958 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8959
8960         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8961         * mono/doc/*: Added documentation framework
8962         * configure.in: Added monodoc check
8963         * README: Added description of mono configure flags
8964
8965 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8966
8967         * doc/dbus-specification.xml: Added a "Required" column to the 
8968         header fields table and changed the "zero or more" verbage in
8969         the above paragraph to read "The header must contain the required 
8970         named header fields and zero or more of the optional named header 
8971         fields".
8972         * test/data/invalid-messages/*.message: Added the required PATH 
8973         named header field to the tests so that they don't fail on 
8974         'Missing path field'
8975
8976 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8977
8978         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8979         the stack by implicitly defining variable and parameter types and
8980         removing the hack of defining C pointers as python objects and later
8981         casting them.
8982
8983 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8984
8985         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8986
8987 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8988
8989         * mono/DBusType/Dict.cs: Handle empty dicts
8990         * mono/DBusType/Array.cs: Handle empty arrays
8991         * mono/Arguments.cs: Handle empty arguments
8992
8993 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8994
8995         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8996         field
8997
8998 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8999
9000         * test/data/valid-messages/standard-*.message: Update message
9001         test scripts to new header field names.
9002
9003 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
9004
9005         * test/break-loader.c (randomly_do_n_things): tracked down buffer
9006         overflow to times_we_did_each_thing array which would chop off the
9007         first character of the failure_dir string. Increased the size of
9008         the array to 7 to reflect the number of random mutation functions
9009         we have.
9010
9011 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
9012
9013         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
9014         unix_server->watch here, it is unreffed in disconnect.
9015         (_dbus_server_new_for_tcp_socket): convert NULL host to
9016         "localhost" here so we don't append NULL to address.
9017         
9018         * dbus/dbus-server.c (_dbus_server_test): Add test case for
9019         various addresses, including tcp with no explicit host.
9020
9021 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9022
9023         * dbus/dbus-message.c (decode_header_data, decode_string_field):
9024         fix incorrect setting of .name_offset in the HeaderField (it was
9025         off by two bytes, positioned right after the name and typecode)
9026
9027         * bus/bus.c (bus_context_new, bus_context_unref): test before
9028         calling dbus_server_free_data_slot and _dbus_user_database_unref
9029         in case of an error.
9030
9031         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
9032         by libdbus-gtool.
9033
9034 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
9035
9036         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
9037         _dbus_poll() instead of select().
9038
9039 2004-04-15  Jon Trowbridge  <trow@ximian.com>
9040
9041         * bus/main.c (signal_handler): Reload the configuration files
9042         on SIGHUP.
9043         (main): Set up our SIGHUP handler.
9044
9045         * bus/bus.c (struct BusContext): Store the config file, user and
9046         fork flag in the BusContext.
9047         (process_config_first_time_only): Added.  Contains the code
9048         (previously in bus_context_new) for setting up the BusContext from
9049         the BusConfigParser that should only be run the first time the
9050         config files are read.
9051         (process_config_every_time): Added.  Contains the code (previously
9052         in bus_context_new) for setting up the BusContext from the
9053         BusConfigParser that should be run every time the config files are
9054         read.
9055         (load_config): Added.  Builds a BusConfigParser from the config
9056         files and passes the resulting structure off to
9057         process_config_first_time_only (assuming this is the first time)
9058         and process_config_every_time.
9059         (bus_context_new): All of the config-related code has been moved
9060         to process_config_first_time_only and process_config_every_time.
9061         Now this function just does the non-config-related initializations
9062         and calls load_config.
9063         (bus_context_reload_config): Added.
9064
9065 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9066
9067         * bus/driver.c (bus_driver_handle_get_service_owner):
9068         implement a GetServiceOwner method.
9069         * doc/dbus-specification.xml: document it.
9070         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
9071         
9072         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
9073         implement, using the bus GetServiceOwner method.
9074
9075         * test/glib/test-dbus-glib.c:
9076         use dbus_gproxy_new_for_service_owner so that we can receive the
9077         signal. 
9078
9079 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
9080
9081         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9082         dbus/dbus-message.c, dbus/dbus-protocol.h
9083         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
9084
9085         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
9086         dbus/dbus-message.c, dbus/dbus-protocol.h
9087         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
9088
9089         * dbus/dbus-internals.c (_dbus_header_field_to_string):
9090         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
9091         DBUS_HEADER_FIELD_SENDER resolves to "sender"
9092
9093         * doc/dbus-specification.xml (Header Fields Table):
9094         s/SERVICE/DESTINATION
9095         s/SENDER_SERVICE/SENDER
9096
9097
9098 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9099
9100         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
9101         a few seconds.
9102
9103 2004-04-13  Michael Meeks  <michael@ximian.com>
9104
9105         * glib/dbus-gobject.c (handle_introspect): split out
9106         (introspect_properties): this.
9107         (handle_introspect): implement this.
9108
9109         * test/glib/Makefile.am: use the absolute path so the bus
9110         daemon's chdir ("/") doesn't kill us dead.
9111
9112         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
9113
9114 2004-04-12  Jon Trowbridge  <trow@ximian.com>
9115
9116         * bus/config-parser.c (struct BusConfigParser): Added
9117         included_files field.
9118         (seen_include): Added.  Checks whether or not a file has already
9119         been included by any parent BusConfigParser.
9120         (bus_config_parser_new): Copy the parent's included_files.
9121         (include_file): Track which files have been included, and fail on
9122         circular inclusions.
9123         (process_test_valid_subdir): Changed printf to report if we are
9124         testing valid or invalid conf files.
9125         (all_are_equiv): Changed printf to be a bit clearer about
9126         what we are actually doing.
9127         (bus_config_parser_test): Test invalid configuration files.
9128
9129 2004-04-09  Jon Trowbridge  <trow@ximian.com>
9130
9131         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
9132         argument.  If non-null, the newly-constructed BusConfigParser will
9133         be initialized with the parent's BusLimits instead of the default
9134         values.
9135         (include_file): When including a config file, pass in
9136         the current parser as the parent and then copy the BusLimits
9137         from the included BusConfigParser pack to the current parser.
9138         (process_test_valid_subdir): Renamed from process_test_subdir.
9139         (process_test_equiv_subdir): Added.  Walks through a directory,
9140         descending into each subdirectory and loading the config files
9141         it finds there.  If any subdirectory contains two config files
9142         that don't produce identical BusConfigParser structs, fail.
9143         For now, the BusConfigParser's BusPolicies are not compared.
9144         (bus_config_parser_test): Call both process_test_valid_subdir and
9145         process_test_equiv_subdir.
9146
9147         * bus/config-loader-libxml.c (bus_config_load): Take a parent
9148         argument and pass it along to the call to bus_config_parser_new.
9149         Also made a few small changes to allow this code to compile.
9150
9151         * bus/config-loader-expat.c (bus_config_load): Take a parent
9152         argument and pass it along to the call to bus_config_parser_new.
9153
9154         * bus/bus.c (bus_context_new): Load the config file
9155         with a NULL parent argument.
9156
9157 2004-03-29  Michael Meeks  <michael@ximian.com>
9158
9159         * glib/dbus-gobject.c (introspect_properties): split
9160         out, fix mangled 'while' flow control.
9161         (introspect_signals): implement.
9162         (handle_introspect): update.
9163
9164 2004-03-29  Michael Meeks  <michael@ximian.com>
9165
9166         * glib/dbus-gobject.c (set_object_property): split out / 
9167         re-work, use the property type, and not the message type(!)
9168         (get_object_property): ditto.
9169
9170         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
9171         (dbus_gvalue_marshal): make this code re-usable, needed
9172         for signals too, also on both proxy and server side.
9173         Re-write for more efficiency / readability.
9174
9175 2004-03-29  Michael Meeks  <michael@ximian.com>
9176
9177         * dbus/dbus-message.c
9178         (dbus_message_new_error_printf): impl.
9179
9180         * dbus/dbus-connection.c
9181         (dbus_connection_unregister_object_path): fix warning.
9182
9183         * configure.in: fix no-mono-installed situation.
9184
9185 2004-03-27  Havoc Pennington  <hp@redhat.com>
9186
9187         Patch from Timo Teräs:
9188         
9189         * tools/dbus-send.c (main): if --print-reply, assume type is
9190         method call; support boolean type args
9191         
9192         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
9193         bunch of memleak and logic bugs
9194         
9195 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9196
9197         * mono/Arguments.cs:
9198         * mono/Introspector.cs:
9199         * mono/Handler.cs:
9200         * mono/InterfaceProxy.cs:
9201         * mono/Message.cs
9202         * mono/ProxyBuilder.cs:
9203         * mono/Service.cs:
9204         Added InterfaceProxy class to avoid building proxies for every
9205         object.
9206
9207         * dbus-message.h:
9208         * dbus-message.c (dbus_message_append_args_valist)
9209         (dbus_message_iter_get_object_path)
9210         (dbus_message_iter_get_object_path_array)
9211         (dbus_message_iter_append_object_path)
9212         (dbus_message_iter_append_object_path_array):
9213         Added object_path iter functions to handle OBJECT_PATH arguments
9214         
9215 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
9216
9217         First checkin of mono bindings.
9218         * configure.in:
9219         * Makefile.am:
9220         Build stuff for the bindings
9221         * dbus-sharp.pc.in: Added for pkgconfig
9222         
9223 2004-03-21  Havoc Pennington  <hp@redhat.com>
9224
9225         * test/test-service.c (main): remove debug spew
9226
9227 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9228
9229         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
9230         arrays
9231
9232         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
9233         (dbus_message_iter_init_array_iterator)
9234         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
9235         indicate whether the iterator is empty
9236
9237         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
9238         warnings
9239
9240 2004-03-19  Havoc Pennington  <hp@redhat.com>
9241
9242         * NEWS: 0.21 updates
9243
9244         * configure.in: 0.21
9245
9246         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
9247         
9248         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
9249         you don't need pyrex to make dist
9250
9251         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
9252         sources; run moc
9253         
9254 2004-03-18  Richard Hult  <richard@imendio.com>
9255
9256         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9257         (dbus_message_set_auto_activation): Add doxygen docs.
9258
9259 2004-03-16  Richard Hult  <richard@imendio.com>
9260
9261         * bus/activation.c: (bus_activation_service_created),
9262         (bus_activation_send_pending_auto_activation_messages),
9263         (bus_activation_activate_service):
9264         * bus/activation.h:
9265         * bus/dispatch.c: (bus_dispatch),
9266         (check_nonexistent_service_auto_activation),
9267         (check_service_auto_activated),
9268         (check_segfault_service_auto_activation),
9269         (check_existent_service_auto_activation), (bus_dispatch_test):
9270         * bus/driver.c: (bus_driver_handle_activate_service):
9271         * bus/services.c: (bus_registry_acquire_service):
9272         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9273         (dbus_message_get_auto_activation):
9274         * dbus/dbus-message.h:
9275         * dbus/dbus-protocol.h: Implement auto-activation.
9276         
9277         * doc/dbus-specification.xml: Add auto-activation to the spec.
9278
9279 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9280
9281         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9282         fix a bug with CUSTOM types.
9283
9284         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9285         a unit test for this bug (used to fail).
9286
9287 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9288
9289         * bus/activation.c:
9290         (babysitter_watch_callback): notify all pending activations waiting for
9291           the same exec that the activation failed.
9292         (bus_activation_activate_service): shortcut the activation if we 
9293           already waiting for the same executable to start up.
9294
9295 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9296
9297         * bus/activation.c: 
9298         - Added service file reloading. 
9299           Each service files directory is kept in an hash table in 
9300           BusActivation and each BusActivationEntry knows what .service-file it
9301           was read from. So when you try to activate a service the bus will 
9302           check if it's been updated, removed or if new .service-files has 
9303           been installed.
9304         - Test code at the bottom for the service file reloading.
9305         * bus/test-main.c: (main):
9306         * bus/test.h:
9307         - added service reloading test.
9308         * dbus/dbus-sysdeps.c: 
9309         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9310
9311 2004-03-08  Michael Meeks  <michael@ximian.com>
9312
9313         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9314         bail immediately if disconnected, to avoid busy loop.
9315
9316         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9317         cleanup cut/paste/inefficiency.
9318
9319 2004-03-01  David Zeuthen  <david@fubar.dk>
9320
9321         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9322         bug where args were used twice. This bug resulted in a segfault
9323         on a Debian/PPC system when starting the messagebus daemon. Include
9324         dbus-sysdeps.h for DBUS_VA_COPY
9325
9326         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9327
9328         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9329         appropriate va_copy implementation. From GLib
9330         
9331 2004-02-24  Joe Shaw  <joe@ximian.com>
9332
9333         * bus/services.c (bus_registry_acquire_service): We need to pass
9334         in the service name to dbus_set_error() to prevent a crash.
9335
9336 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9337
9338         * AUTHORS: Reveal my True identity.
9339
9340 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9341
9342         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9343         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9344
9345 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9346
9347         * doc/TODO: Added not about better error check of configuration files.
9348
9349 2003-12-02  Richard Hult  <richard@imendio.com>
9350
9351         * Update AFL version to 2.0 throughout the source files to reflect
9352         the update that was done a while ago.
9353
9354 2003-12-02  Richard Hult  <richard@imendio.com>
9355
9356         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9357         wrote_dict_key to FALSE on the iter that the dict is appended to,
9358         just like when appending other types. Fixes a bug where a dict
9359         couldn't be put inside a dict.
9360         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9361         (message_iter_test, _dbus_message_test): Add test case for dict
9362         inside dict.
9363
9364 2003-12-01  David Zeuthen  <david@fubar.dk>
9365
9366         * python/dbus.py: Add the actual message when calling the reciever
9367         of a signal such that parameters can be inspected. Add the method
9368         remove_signal_receiver
9369         
9370 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9371
9372         * bus/*.[ch]:
9373         * dbus/*.[ch]:
9374         * glib/*.[ch]: Made ref functions return the pointer
9375
9376 2003-11-25  Zack Rusin  <zack@kde.org>
9377
9378         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9379
9380         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9381         wrappers,
9382
9383         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9384         the Integrator and to better fit with the server,
9385
9386 2003-11-24  Zack Rusin  <zack@kde.org>
9387
9388         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9389         the integrator handles it now
9390
9391         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9392         since QTimer wasn't really meant to be used the way DBusTimeout is
9393
9394 2003-11-24  Zack Rusin  <zack@kde.org>
9395
9396         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9397         Integrator class which integrates D-BUS with the Qt event loop,
9398
9399         * qt/connection.h, qt/connection.cpp: Move all the code which
9400         was dealing with D-BUS integration to the Integrator class,
9401         and start using Integrator,
9402
9403 2003-11-23  Zack Rusin  <zack@kde.org>
9404
9405         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9406         wrapper
9407
9408         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9409         switching namespaces to DBusQt, reworking the class,
9410
9411         * Makefile.cvs: switching dependencies so that it matches KDE 
9412         schematics,
9413         
9414         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9415         the library
9416
9417 2003-11-19  Havoc Pennington  <hp@redhat.com>
9418
9419         * NEWS: update
9420
9421         * configure.in: bump version to 0.20
9422
9423         * configure.in (have_qt): add yet another place to look for qt
9424         (someone hand trolltech a .pc file...)
9425
9426 2003-11-01  Havoc Pennington  <hp@redhat.com>
9427
9428         * doc/dbus-specification.xml: add state machine docs on the auth
9429         protocol; just a first draft, I'm sure it's wrong.      
9430
9431 2003-10-28  David Zeuthen  <david@fubar.dk>
9432
9433         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9434         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9435         
9436 2003-10-28  Havoc Pennington  <hp@redhat.com>
9437
9438         * dbus/dbus-message.c (get_next_field): delete unused function
9439
9440 2003-10-28  Havoc Pennington  <hp@redhat.com>
9441
9442         * bus/expirelist.c (do_expiration_with_current_time): detect
9443         failure of the expire_func due to OOM
9444
9445         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9446
9447         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9448         NoReply error that's now created by the bus when the service exits
9449
9450 2003-10-28  Havoc Pennington  <hp@redhat.com>
9451
9452         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9453         tests for set_path, set_interface, set_member, etc.
9454
9455         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9456
9457         * dbus/dbus-message.c (set_string_field): always just delete and
9458         re-append the field; accept NULL for deletion
9459         (re_align_fields_recurse): reimplement
9460         
9461 2003-10-26  Havoc Pennington  <hp@redhat.com>
9462
9463         * dbus/dbus-connection.c: fix docs to properly describe the
9464         disconnected message
9465         (_dbus_connection_notify_disconnected): remove this function; 
9466         we can't synchronously add the disconnected message, we have to 
9467         do it after we've queued any remaining real messages
9468         (_dbus_connection_get_dispatch_status_unlocked): queue the
9469         disconnect message only if the transport has finished queueing all
9470         its real messages and is disconnected.
9471         (dbus_connection_disconnect): update the dispatch status here
9472
9473 2003-10-22  Havoc Pennington  <hp@redhat.com>
9474
9475         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9476
9477         * bus/connection.c (bus_transaction_send_from_driver): set the
9478         destination to the connection's base service
9479
9480 2003-10-20  Havoc Pennington  <hp@redhat.com>
9481
9482         hmm, make check is currently not passing.
9483         
9484         * doc/dbus-specification.xml: add requirement that custom type
9485         names follow the same rules as interface names.
9486
9487         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9488         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9489         'map'
9490
9491         * doc/dbus-specification.xml: update type codes to match
9492         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9493         CUSTOM. Add type OBJECT_PATH to the spec.
9494
9495 2003-10-17  Havoc Pennington  <hp@redhat.com>
9496
9497         * bus/driver.c (create_unique_client_name): use "." as separator
9498         in base service names instead of '-'
9499
9500         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9501         byte at the end of the string
9502
9503         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9504         optimization macros since string validation seems to be a slow
9505         point.
9506         
9507         * doc/dbus-specification.xml: restrict valid
9508         service/interface/member/error names. Add test suite code for the
9509         name validation.
9510
9511         * dbus/dbus-string.c: limit service/interface/member/error names 
9512         to [0-9][A-Z][a-z]_
9513
9514         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9515         format arg to verbose spew
9516
9517         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9518         memory, return instead of g_error
9519
9520         * test/test-service.c (path_message_func): support emitting a
9521         signal on request
9522
9523         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9524         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9525         assuming the activation bus was the session bus so that services
9526         started manually will still register.
9527         (init_connections_unlocked): fix so that in OOM situation we get
9528         the same semantics when retrying the function
9529         
9530         * test/test-service.c (main): change to use path registration, to
9531         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9532         than DBUS_BUS_SESSION
9533
9534 2003-10-16  Havoc Pennington  <hp@redhat.com>
9535
9536         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9537
9538         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9539         coverage of the tests
9540         (coverage-report.txt): don't move the .da and .bbg files around
9541
9542 2003-10-16  Havoc Pennington  <hp@redhat.com>
9543
9544         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9545         to put there
9546
9547 2003-10-16  Havoc Pennington  <hp@redhat.com>
9548
9549         * bus/connection.c (bus_pending_reply_expired): either cancel or
9550         execute, not both
9551         (bus_connections_check_reply): use unlink, not remove_link, as we
9552         don't want to free the link; fixes double free mess
9553
9554         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9555         where no reply was received
9556
9557         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9558         fix a refcount leak
9559
9560         * bus/signals.c (match_rule_matches): add special cases for the
9561         bus driver, so you can match on sender/destination for it.
9562
9563         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9564         DBUS_PRINT_BACKTRACE is set
9565
9566         * dbus/dbus-internals.c: add pid to assertion failure messages
9567
9568         * dbus/dbus-connection.c: add message type code to the debug spew
9569
9570         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9571         sender=foo not service=foo
9572
9573         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9574         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9575         DBUS_ACTIVATION_ADDRESS instead
9576
9577         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9578         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9579
9580         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9581         context struct
9582
9583         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9584         (dbus_message_iter_get_object_path_array): new function (half
9585         finished, disabled for the moment)
9586         
9587         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9588         DBUS_MESSAGE_TYPE_ERROR
9589
9590         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9591         avoid redirecting stderr to /dev/null
9592         (babysit): close stdin if not doing the "exit_with_session" thing
9593
9594         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9595         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9596         stdout/stdin, so things don't get confused
9597         
9598         * bus/system.conf.in: fix to allow replies, I modified .conf
9599         instead of .conf.in again.
9600
9601 2003-10-14  David Zeuthen  <david@fubar.dk>
9602
9603         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9604         argtype to arg_type when raising unknown arg type exception.
9605         Changed type list to reflect the changes in dbus-protocol.h so 
9606         the bindings actually work.
9607
9608 2003-10-14  Havoc Pennington  <hp@redhat.com>
9609
9610         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9611         to have a bug keeping it from outputting the .da files sometimes
9612         (string_get_string): don't append garbage nul bytes to the string.
9613
9614 2003-10-15  Seth Nickell  <seth@gnome.org>
9615
9616         * python/Makefile.am:
9617
9618         Include dbus_h_wrapper.h in the dist tarball.
9619
9620 2003-10-14  Havoc Pennington  <hp@redhat.com>
9621
9622         * bus/bus.c (bus_context_check_security_policy): revamp this to
9623         work more sanely with new policy-based requested reply setup
9624
9625         * bus/connection.c (bus_transaction_send_from_driver): set bus
9626         driver messages as no reply
9627
9628         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9629         requested_reply attribute on allow/deny rules
9630
9631         * bus/system.conf: add <allow requested_reply="true"/>
9632
9633         * bus/driver.c (bus_driver_handle_message): fix check for replies
9634         sent to the bus driver, which was backward. How did this ever work
9635         at all though? I think I'm missing something.
9636
9637         * dbus/dbus-message.c (decode_header_data): require error and
9638         method return messages to have a reply serial field to be valid
9639         (_dbus_message_loader_queue_messages): break up this function;
9640         validate that reply serial and plain serial are nonzero; 
9641         clean up the OOM/error handling.
9642         (get_uint_field): don't return -1 from this
9643         (dbus_message_create_header): fix signed/unsigned bug
9644
9645         * bus/connection.c (bus_connections_expect_reply): save serial of
9646         the incoming message, not reply serial
9647
9648 2003-10-14  Havoc Pennington  <hp@redhat.com>
9649
9650         * bus/connection.c: implement pending reply tracking using
9651         BusExpireList
9652
9653         * bus/bus.c (bus_context_check_security_policy): verify that a
9654         reply is pending in order to allow a reply to be sent. Deny 
9655         messages of unknown type.
9656
9657         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9658
9659         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9660         (bus_context_get_reply_timeout): new
9661
9662 2003-10-13  Seth Nickell  <seth@gnome.org>
9663
9664         * python/Makefile.am:
9665
9666         Pass "make distcheck": remove a couple files from DIST_FILES
9667         that weren't included in the final version.
9668
9669 2003-10-12  Havoc Pennington  <hp@pobox.com>
9670
9671         Added test code that 1) starts an actual bus daemon and 2) uses
9672         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9673         more testing possible, but this is the basic framework.
9674         
9675         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9676         empty proxy lists from the proxy list hash
9677
9678         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9679         couple of return_if_fail checks
9680
9681         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9682         to allocate, so everything is cleared to NULL as it should be.
9683
9684         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9685         source as data to dbus_connection_set_timeout_functions() as the 
9686         timeout functions expected
9687
9688         * test/glib/run-test.sh: add a little script to start up a message
9689         bus and run tests using it
9690
9691         * tools/dbus-launch.1: updates
9692
9693         * tools/dbus-launch.c (main): add --config-file option
9694
9695         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9696         that could never be reached.
9697
9698         * dbus/dbus-message.c (dbus_message_new_method_return) 
9699         (dbus_message_new_error, dbus_message_new_signal): set the
9700         no-reply-expected flag on all these. Redundant, but may
9701         as well be consistent.
9702
9703 2003-10-11  Havoc Pennington  <hp@pobox.com>
9704
9705         * test/decode-gcov.c (function_solve_graph): make broken block
9706         graph a nonfatal error since it seems to be broken. Need to debug
9707         this.
9708
9709         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9710         can't just check type > INVALID < LAST anymore
9711
9712         * dbus/dbus-message.c (dbus_message_get_signature): new function
9713         (dbus_message_has_signature): new function
9714         (struct DBusMessage): add signature field (right now it isn't sent
9715         over the wire, just generated on the fly)
9716         (dbus_message_copy): copy the signature, and init strings to
9717         proper length to avoid some reallocs
9718         (dbus_message_iter_init_array_iterator): return void, since it
9719         can't fail
9720         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9721         (_dbus_message_loader_queue_messages): add silly temporary hack to
9722         fill in message->signature on load
9723
9724         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9725         characters, so they are relatively human-readable.
9726
9727 2003-10-11  Havoc Pennington  <hp@pobox.com>
9728
9729         * dbus/dbus-message.c (_dbus_message_test): add more test
9730         coverage, but #if 0 for now since they uncover a bug 
9731         not fixed yet; I think in re_align_field_recurse()
9732         (re_align_field_recurse): add FIXME about broken assertion
9733
9734         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9735
9736         * bus/connection.c: share a couple code bits with expirelist.c
9737
9738         * bus/expirelist.h, bus/expirelist.c: implement a generic
9739         expire-items-after-N-seconds facility, was going to share between
9740         expiring connections and replies, decided not to use for expiring
9741         connections for now.
9742
9743         * COPYING: include AFL 2.0 (still need to change all the file headers)
9744
9745 2003-10-09  Havoc Pennington  <hp@redhat.com>
9746
9747         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9748         gcc 3.3. Not that we do anything about it yet.
9749
9750         * bus/signals.c (bus_match_rule_parse): impose max length on the
9751         match rule text
9752
9753         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9754
9755 2003-10-09  Havoc Pennington  <hp@redhat.com>
9756
9757         Make matching rules theoretically work (add parser).
9758         
9759         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9760         the case where destination is explicitly specified as bus driver
9761         and someone else is eavesdropping.
9762         
9763         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9764         definition of eavesdropping and assertion
9765
9766         * tools/dbus-send.c (main): use dbus_message_type_from_string
9767
9768         * bus/signals.c (bus_match_rule_parse): implement
9769
9770         * dbus/dbus-message.c (dbus_message_type_from_string): new
9771
9772         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9773
9774 2003-10-02  Havoc Pennington  <hp@pobox.com>
9775
9776         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9777         dbus_gproxy_oneway_call
9778
9779         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9780         (dbus_server_setup_with_g_main): fix to allow calling them more
9781         than once on the same args
9782         (dbus_bus_get_with_g_main): new function
9783
9784 2003-10-02  Havoc Pennington  <hp@redhat.com>
9785
9786         * doc/dbus-tutorial.xml: write some stuff
9787
9788 2003-09-29  Havoc Pennington  <hp@pobox.com>
9789
9790         * configure.in: split checks for Doxygen from XML docs, check for
9791         xmlto
9792
9793         * doc/Makefile.am: XML-ify all the docs, and add a blank
9794         dbus-tutorial.xml
9795
9796 2003-09-29  Havoc Pennington  <hp@pobox.com>
9797
9798         * Merge dbus-object-names branch. To see the entire patch 
9799         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9800         it's huuuuge though.
9801         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9802         
9803 2003-09-28  Havoc Pennington  <hp@pobox.com>
9804
9805         * HACKING: update to reflect new server
9806
9807 2003-09-26  Seth Nickell  <seth@gnome.org>
9808
9809         * python/dbus.py:
9810         * python/examples/example-signals.py:
9811
9812         Start implementing some notions of signals. The API
9813         is really terrible, but they sort of work (with the
9814         exception of being able to filter by service, and to
9815         transmit signals *as* a particular service). Need to
9816         figure out how to make messages come from the service
9817         we registered :-(
9818         
9819         * python/dbus_bindings.pyx.in:
9820
9821         Removed duplicate message_handler callbacks.
9822         
9823 2003-09-25  Havoc Pennington  <hp@redhat.com>
9824
9825         * bus/session.conf.in: fix my mess
9826
9827 2003-09-25  Havoc Pennington  <hp@pobox.com>
9828
9829         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9830
9831 2003-09-25  Seth Nickell  <seth@gnome.org>
9832
9833         * python/examples/example-service.py:
9834
9835         Johan notices complete wrong code in example-service, but
9836         completely wrong in a way that works exactly the same (!).
9837         Johan is confused, how could this possibly work? Example
9838         code fails to serve purpose of making things clear.
9839         Seth fixes.
9840
9841 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9842
9843         * doc/dbus-specification.sgml: don't require header fields
9844         to be 4-byte aligned and specify that fields should be
9845         distinguished from padding by the fact that zero is not
9846         a valid field name.
9847         
9848         * doc/TODO: remove re-alignment item and add item to doc
9849         the OBJECT_PATH type.
9850         
9851         * dbus/dbus-message.c:
9852         (HeaderField): rename the original member to value_offset
9853         and introduce a name_offset member to keep track of where
9854         the field actually begins.
9855         (adjust_field_offsets): remove.
9856         (append_int_field), (append_uint_field),
9857         (append_string_field): don't align the start of the header
9858         field to a 4-byte boundary.
9859         (get_next_field): impl finding the next marhsalled field
9860         after a given field.
9861         (re_align_field_recurse): impl re-aligning a number of
9862         already marshalled fields.
9863         (delete_field): impl deleting a field of any type and
9864         re-aligning any following fields.
9865         (delete_int_or_uint_field), (delete_string_field): remove.
9866         (set_int_field), (set_uint_field): no need to re-check
9867         that we have the correct type for the field.
9868         (set_string_field): ditto and impl re-aligning any
9869         following fields.
9870         (decode_header_data): update to take into account that
9871         the fields aren't 4-byte aligned any more and the new
9872         way to distinguish padding from header fields. Also,
9873         don't exit when there is too much header padding.
9874         (process_test_subdir): print the directory.
9875         (_dbus_message_test): add test to make sure a following
9876         field is re-aligned correctly after field deletion.
9877         
9878         * dbus/dbus-string.[ch]:
9879         (_dbus_string_insert_bytes): rename from insert_byte and
9880         allow the insert of multiple bytes.
9881         (_dbus_string_test): test inserting multiple bytes.
9882
9883         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9884         warning note to docs about having to re-align any
9885         marshalled values following the string.
9886         
9887         * dbus/dbus-message-builder.c:
9888         (append_string_field), (_dbus_message_data_load):
9889         don't align the header field.
9890         
9891         * dbus/dbus-auth.c: (process_test_subdir): print the
9892         directory.
9893         
9894         * test/break-loader.c: (randomly_add_one_byte): upd. for
9895         insert_byte change.
9896         
9897         * test/data/invalid-messages/bad-header-field-alignment.message:
9898         new test case.
9899         
9900         * test/data/valid-messages/unknown-header-field.message: shove
9901         a dict in the unknown field.
9902
9903 2003-09-25  Seth Nickell  <seth@gnome.org>
9904
9905         * python/dbus.py:
9906         * python/dbus_bindings.pyx.in:
9907
9908         Handle return values.
9909         
9910         * python/examples/example-client.py:
9911         * python/examples/example-service.py:
9912
9913         Pass back return values from the service to the client.
9914         
9915 2003-09-24  Seth Nickell  <seth@gnome.org>
9916
9917         * python/dbus.py:
9918
9919         Connect Object methods (when you are sharing an object) up... pass
9920         in a list of methods to be shared. Sharing all the methods just
9921         worked out too weird. You can now create nice Services over the
9922         DBus in Python. :-)
9923         
9924         * python/dbus_bindings.pyx.in:
9925
9926         Keep references to user_data tuples passed into C functions so 
9927         Python doesn't garbage collect on us.
9928
9929         Implement MethodReturn and Error subclasses of Message for creating
9930         DBusMessage's of those types.
9931         
9932         * python/examples/example-client.py:
9933         * python/examples/example-service.py:
9934
9935         Simple example code showing both how create DBus services and objects,
9936         and how to use them.
9937
9938 2003-09-23  Havoc Pennington  <hp@pobox.com>
9939
9940         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9941
9942 2003-09-23  Havoc Pennington  <hp@redhat.com>
9943
9944         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9945         (dbus_gproxy_disconnect_signal): implement
9946         (dbus_gproxy_manager_remove_signal_match): implement
9947         (dbus_gproxy_manager_add_signal_match): implement
9948         (dbus_gproxy_oneway_call): implement
9949
9950 2003-09-23  Havoc Pennington  <hp@pobox.com>
9951
9952         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9953         subclass. This means dropping the transparent thread safety of the
9954         proxy; you now need a separate proxy per-thread, or your own
9955         locking on the proxy. Probably right anyway.
9956         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9957
9958 2003-09-22  Havoc Pennington  <hp@redhat.com>
9959
9960         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9961
9962 2003-09-21  Seth Nickell  <seth@gnome.org>
9963
9964         First checkin of the Python bindings.
9965         
9966         * python/.cvsignore:
9967         * python/Makefile.am:
9968         * python/dbus_bindings.pyx.in:
9969         * python/dbus_h_wrapper.h:
9970
9971         Pieces for Pyrex to operate on, building a dbus_bindings.so
9972         python module for low-level access to the DBus APIs.
9973         
9974         * python/dbus.py:
9975
9976         High-level Python module for accessing DBus objects.
9977
9978         * configure.in:
9979         * Makefile.am:
9980
9981         Build stuff for the python bindings.
9982
9983         * acinclude.m4:
9984
9985         Extra macro needed for finding the Python C header files.
9986
9987 2003-09-21  Havoc Pennington  <hp@pobox.com>
9988
9989         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9990         implementing the proxy manager, didn't get very far.
9991
9992         * dbus/dbus-bus.c (dbus_bus_add_match): new
9993         (dbus_bus_remove_match): new
9994
9995         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9996         path_name argument; adjust the other not-yet-implemented 
9997         gproxy constructors to be what I think they should be.
9998
9999 2003-09-21  Havoc Pennington  <hp@pobox.com>
10000
10001         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
10002         by default for message bus connections.
10003
10004         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
10005         exit_on_disconnect flag is set and we process the disconnected
10006         signal.
10007         (dbus_connection_set_exit_on_disconnect): new function
10008
10009 2003-09-21  Havoc Pennington  <hp@pobox.com>
10010
10011         Get matching rules mostly working in the bus; only actually
10012         parsing the rule text remains. However, the client side of
10013         "signal connections" hasn't been started, this patch is only the
10014         bus side.
10015         
10016         * dbus/dispatch.c: fix for the matching rules changes
10017         
10018         * bus/driver.c (bus_driver_handle_remove_match)
10019         (bus_driver_handle_add_match): send an ack reply from these
10020         method calls
10021
10022         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
10023         arguments, reported by Seth Nickell
10024
10025         * bus/config-parser.c (append_rule_from_element): support
10026         eavesdrop=true|false attribute on policies so match rules 
10027         can be prevented from snooping on the system bus.
10028
10029         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
10030         and "destination" in attribute names; fix some docs bugs; 
10031         add eavesdrop=true|false attribute
10032
10033         * bus/driver.c (bus_driver_handle_add_match)
10034         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
10035         messages
10036
10037         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
10038         rid of broadcast service concept, signals are just always broadcast
10039
10040         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
10041         mostly implement matching rules stuff (currently only exposed as signal
10042         connections)
10043
10044 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
10045
10046         * doc/dbus-specification.sgml: Change the header field name
10047         to be an enum and update the rest of the spec to reference
10048         the fields using the conventinal name.
10049
10050         * dbus/dbus-protocol.h: update to reflect the spec.
10051
10052         * doc/TODO: add item to remove the 4 byte alignment requirement.
10053         
10054         * dbus/dbus-message.c: Remove the code to generalise the
10055         header/body length and serial number header fields as named
10056         header fields so we can reference field names using the 
10057         protocol values.
10058         (append_int_field), (append_uint_field), (append_string_field):
10059         Append the field name as a byte rather than four chars.
10060         (delete_int_or_uint_field), (delete_string_field): reflect the
10061         fact that the field name and typecode now occupy 4 bytes instead
10062         of 8.
10063         (decode_string_field), (decode_header_data): update to reflect
10064         protocol changes and move the field specific encoding from
10065         decode_string_field() back into decode_header_data().
10066         
10067         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
10068         Add utility to aid debugging.
10069         
10070         * dbus/dbus-message-builder.c:
10071         (append_string_field), (_dbus_message_data_load): Update to
10072         reflect protocol changes; Change the FIELD_NAME directive
10073         to HEADER_FIELD and allow it to take the field's conventional
10074         name rather than the actual value.
10075         
10076         * test/data/*/*.message: Update to use HEADER_FIELD instead
10077         of FIELD_NAME; Always align the header on an 8 byte boundary
10078         *before* updating the header length.
10079
10080 2003-09-15  Havoc Pennington  <hp@pobox.com>
10081
10082         * dbus/dbus-pending-call.c: add the get/set object data
10083         boilerplate as for DBusConnection, etc. Use generic object data
10084         for the notify callback.
10085
10086         * glib/dbus-gparser.c (parse_node): parse child nodes
10087
10088         * tools/dbus-viewer.c: more hacking on the dbus-viewer
10089         
10090         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
10091         contain functions shared between the convenience lib and the
10092         installed lib
10093
10094         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
10095         -export-symbols-regex to the GLib library
10096
10097         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
10098         fix the locking in here, and add a default handler for
10099         Introspect() that just returns sub-nodes.
10100
10101 2003-09-14  Havoc Pennington  <hp@pobox.com>
10102
10103         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
10104         rather than gfoo consistent
10105
10106         * glib/dbus-gproxy.h: delete for now, move contents to
10107         dbus-glib.h, because the include files don't work right since we
10108         aren't in the dbus/ subdir.
10109         
10110         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
10111         (dbus_gproxy_end_call): finish
10112         (dbus_gproxy_begin_call): finish
10113
10114         * glib/dbus-gmain.c (dbus_set_g_error): new
10115
10116         * glib/dbus-gobject.c (handle_introspect): include information
10117         about child nodes in the introspection
10118
10119         * dbus/dbus-connection.c (dbus_connection_list_registered): new
10120         function to help in implementation of introspection
10121
10122         * dbus/dbus-object-tree.c
10123         (_dbus_object_tree_list_registered_and_unlock): new function
10124
10125 2003-09-12  Havoc Pennington  <hp@pobox.com>
10126
10127         * glib/dbus-gidl.h: add common base class for all the foo_info
10128         types
10129
10130         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
10131         similar to kdcop
10132
10133         * test/Makefile.am: try test srcdir -ef . in addition to test
10134         srcdir = ., one of them should work (yeah lame)
10135         
10136         * glib/Makefile.am: build the "idl" parser stuff as a convenience
10137         library
10138         
10139         * glib/dbus-gparser.h: make description_load routines return
10140         NodeInfo* not Parser*
10141
10142         * Makefile.am (SUBDIRS): build test dir after all library dirs
10143
10144         * configure.in: add GTK+ detection
10145
10146 2003-09-07  Havoc Pennington  <hp@pobox.com>
10147
10148         * Make Doxygen contented.
10149
10150 2003-09-07  Havoc Pennington  <hp@pobox.com>
10151
10152         * doc/dbus-specification.sgml: more updates
10153
10154 2003-09-06  Havoc Pennington  <hp@pobox.com>
10155
10156         * doc/dbus-specification.sgml: partial updates
10157
10158         * bus/dbus-daemon-1.1.in: fix the config file docs for the
10159         zillionth time; hopefully I edited the right file this time.
10160
10161         * bus/config-parser.c (append_rule_from_element): support
10162         send_type, send_path, receive_type, receive_path
10163
10164         * bus/policy.c: add message type and path to the list of things
10165         that can be "firewalled"
10166
10167 2003-09-06  Havoc Pennington  <hp@pobox.com>
10168
10169         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
10170         (dbus_connection_register_object_path): make this not handle
10171         messages to paths below the given path
10172
10173 2003-09-03  Havoc Pennington  <hp@pobox.com>
10174
10175         * test/glib/Makefile.am: add this with random glib-linked test
10176         programs
10177
10178         * glib/Makefile.am: remove the random test programs from here,
10179         leave only the unit tests
10180
10181         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
10182         uscore/javacaps conversion, and fix     
10183         (get_object_property, set_object_property): change to .NET
10184         convention for mapping props to methods, set_FooBar/get_FooBar, 
10185         since one language has such a convention we may as well copy it. 
10186         Plus real methods in either getFooBar or get_foo_bar style won't 
10187         collide with this convention.
10188
10189 2003-09-01  Havoc Pennington  <hp@pobox.com>
10190
10191         * glib/dbus-gparser.c: implement
10192
10193         * glib/dbus-gobject.c: start implementing skeletons support
10194
10195         * configure.in: when disabling checks/assert, also define
10196         G_DISABLE_ASSERT and G_DISABLE_CHECKS
10197
10198 2003-09-01  Havoc Pennington  <hp@pobox.com>
10199
10200         * glib/Makefile.am: rearrange a bunch of files and get "make
10201         check" framework set up
10202
10203 2003-08-31  Havoc Pennington  <hp@pobox.com>
10204
10205         * fix build with --disable-tests
10206
10207 2003-08-30  Havoc Pennington  <hp@pobox.com>
10208
10209         * dbus/dbus-connection.c: purge DBusMessageHandler
10210
10211         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
10212         use callbacks everywhere
10213
10214 2003-08-30  Havoc Pennington  <hp@pobox.com>
10215
10216         * test/data/valid-config-files/system.d/test.conf: change to 
10217         root for the user so warnings don't get printed
10218
10219         * dbus/dbus-message.c: add dbus_message_get_path,
10220         dbus_message_set_path
10221         
10222         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
10223         dispatching to a path
10224
10225         * dbus/dbus-string.c (_dbus_string_validate_path): add
10226
10227         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
10228         (_dbus_marshal_object_path): implement
10229
10230         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
10231         to contain the path to the target object
10232         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
10233         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
10234
10235 2003-08-30  Havoc Pennington  <hp@pobox.com>
10236
10237         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
10238
10239 2003-08-29  Havoc Pennington  <hp@pobox.com>
10240
10241         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
10242         registered
10243         (struct DBusObjectSubtree): shrink this
10244         a lot, since we may have a lot of them
10245         (_dbus_object_tree_free_all_unlocked): implement
10246         (_dbus_object_tree_dispatch_and_unlock): implement
10247
10248 2003-08-29  Havoc Pennington  <hp@pobox.com>
10249
10250         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
10251
10252 2003-08-28  Havoc Pennington  <hp@pobox.com>
10253
10254         purge DBusObjectID
10255         
10256         * dbus/dbus-connection.c: port to no ObjectID, create a
10257         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10258
10259         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10260         everything except UnregisterFunction and MessageFunction
10261         
10262         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10263         add DBUS_TYPE_OBJECT_PATH
10264         
10265         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10266         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10267         path-based object IDs
10268
10269 2003-08-25  Havoc Pennington  <hp@pobox.com>
10270
10271         Just noticed that dbus_message_test is hosed, I wonder when I
10272         broke that. I thought make check was passing earlier...
10273         
10274         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10275         container tree, will replace most of dbus-object-registry
10276
10277         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10278         screwup
10279
10280 2003-08-19  Havoc Pennington  <hp@pobox.com>
10281
10282         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10283         (dbus_message_is_error): fix this function
10284
10285         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10286         match
10287
10288         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10289         reflect clarified man page
10290         (bus_client_policy_check_can_send): ditto
10291         
10292         * bus/session.conf.in: fixup
10293
10294         * bus/system.conf.in: fixup
10295
10296 2003-08-18  Havoc Pennington  <hp@redhat.com>
10297
10298         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10299
10300         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10301         dumb bug created earlier (wrong order of args to
10302         decode_header_data())
10303         
10304         * tools/dbus-send.c: port
10305
10306         * tools/dbus-print-message.c (print_message): port
10307
10308         * test/data/*messages: port all messages over
10309         
10310         * dbus/dbus-message-builder.c: support including 
10311         message type
10312         
10313         * bus/driver.c: port over
10314         
10315         * bus/dispatch.c: port over to new stuff
10316
10317         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10318         rename disconnect signal to "Disconnected"
10319
10320 2003-08-17  Havoc Pennington  <hp@pobox.com>
10321
10322         This doesn't compile yet, but syncing up so I can hack on it from
10323         work. What are branches for if not broken code? ;-)
10324         
10325         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10326         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10327         DBUS_HEADER_FIELD_ERROR_NAME
10328         
10329         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10330         for the interface+member pairs
10331         (string_hash): change to use g_str_hash algorithm
10332         (find_direct_function, find_string_function): refactor these to
10333         share most code.
10334         
10335         * dbus/dbus-message.c: port all of this over to support 
10336         interface/member fields instead of name field
10337
10338         * dbus/dbus-object-registry.c: port over
10339         
10340         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10341         from _dbus_string_validate_name
10342
10343         * bus/dbus-daemon-1.1: change file format for the 
10344         <deny>/<allow> stuff to match new message naming scheme
10345
10346         * bus/policy.c: port over
10347
10348         * bus/config-parser.c: parse new format
10349         
10350 2003-08-16  Havoc Pennington  <hp@pobox.com>
10351
10352         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10353         broken assertion
10354
10355         * glib/dbus-gproxy.c: some hacking
10356
10357 2003-08-15  Havoc Pennington  <hp@redhat.com>
10358
10359         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10360
10361         * dbus/dbus-connection.c
10362         (dbus_connection_send_with_reply_and_block): factor out internals;
10363         change to convert any error replies to DBusError instead of 
10364         returning them as a message
10365
10366 2003-08-15  Havoc Pennington  <hp@pobox.com>
10367
10368         * dbus/dbus-connection.c, 
10369         dbus/dbus-pending-call.c: Finish the pending call stuff
10370
10371 2003-08-14  Havoc Pennington  <hp@redhat.com>
10372
10373         * dbus/dbus-pending-call.c: start on new object that will replace
10374         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10375         replies
10376
10377         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10378         with remote interfaces
10379
10380         * dbus/dbus-gidl.c: do the boring boilerplate in here
10381         
10382 2003-08-12  Havoc Pennington  <hp@pobox.com>
10383
10384         * bus/dispatch.c (bus_dispatch): make this return proper 
10385         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10386
10387         * dbus/dbus-errors.c (dbus_set_error): use
10388         _dbus_string_append_printf_valist
10389
10390         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10391         (_dbus_string_append_printf): new
10392
10393         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10394         UNKNOWN_METHOD
10395
10396         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10397         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10398         message is unhandled.
10399
10400 2003-08-11  Havoc Pennington  <hp@pobox.com>
10401
10402         * bus/test.c (client_disconnect_handler): change to return
10403         HANDLED (would have been REMOVE_MESSAGE)
10404
10405         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10406         HANDLED/NOT_YET_HANDLED instead of
10407         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10408         should be used.
10409
10410 2003-08-10  Havoc Pennington  <hp@pobox.com>
10411
10412         * tools/dbus-send.c (main): add --type argument, for now
10413         supporting only method_call and signal types.
10414
10415         * tools/dbus-print-message.c: print message type
10416
10417         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10418         init connection->objects
10419
10420         * doc/dbus-specification.sgml: fix sgml
10421
10422         * bus/*.c: port over to object-instance API changes
10423
10424         * test/test-service.c: ditto
10425         
10426         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10427         name, we will have to fix up the rest of the code to also handle
10428         this
10429         (dbus_message_new): generic message-creation call
10430         (set_string_field): allow appending name field
10431
10432 2003-08-06  Havoc Pennington  <hp@pobox.com>
10433
10434         * dbus/dbus-object-registry.c: implement signal connection 
10435         and dispatch
10436
10437         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10438
10439         * dbus/dbus-internals.c (_dbus_memdup): new function
10440
10441 2003-08-02  Havoc Pennington  <hp@pobox.com>
10442
10443         * dbus/dbus-message.c (dbus_message_get_no_reply)
10444         (dbus_message_set_no_reply): add these and remove
10445         set_is_error/get_is_error
10446
10447         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10448         remove the ERROR flag, since there's now an ERROR type
10449
10450 2003-08-01  Havoc Pennington  <hp@pobox.com>
10451
10452         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10453         implement
10454
10455         * dbus/dbus-message.c (dbus_message_get_type): new function
10456
10457         * doc/dbus-specification.sgml: add "type" byte to messages
10458
10459 2003-08-01  Havoc Pennington  <hp@pobox.com>
10460
10461         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10462         a message type enum to distinguish kinds of message
10463         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10464         that need not be replied to
10465
10466 2003-08-01  Havoc Pennington  <hp@pobox.com>
10467
10468         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10469         (unpack_8_octets): fix no-64-bit-int bug
10470
10471         * dbus/dbus-object-registry.c (validate_id): validate the 
10472         connection ID bits, not just the instance ID.
10473
10474         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10475         the connection-global 33 bits of the object ID
10476
10477         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10478         object ID in the new way
10479
10480         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10481         define server/client/instance bits.
10482
10483 2003-07-30  Havoc Pennington  <hp@pobox.com>
10484
10485         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10486         build
10487
10488 2003-07-13  Havoc Pennington  <hp@pobox.com>
10489
10490         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10491         fields to DBusObjectVTable and DBusObjectInfo
10492
10493 2003-07-12  Havoc Pennington  <hp@pobox.com>
10494
10495         * dbus/dbus-object-registry.c: implement unit test,
10496         fix bugs discovered in process
10497
10498         * dbus/dbus-connection.c: remove handler_table and
10499         register_handler(), add DBusObjectRegistry usage
10500
10501         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10502         (dbus_object_id_set_null): new functions
10503
10504 2003-07-08  Havoc Pennington  <hp@pobox.com>
10505
10506         * dbus/dbus-object.c: implement some of this
10507
10508         * dbus/dbus-object-registry.c
10509         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10510         param
10511         (_dbus_object_registry_new): handle OOM
10512
10513 2003-07-08  Havoc Pennington  <hp@pobox.com>
10514
10515         * dbus/dbus-object.h: sketch out an API for registering objects
10516         with a connection, that allows us to use as little as 24 bytes
10517         per object and lets application code represent an object in 
10518         any conceivable way.
10519
10520         * dbus/dbus-object-registry.c: implement the hard bits of the
10521         DBusConnection aspect of object API. Not yet wired up.
10522         
10523 2003-07-06  Havoc Pennington  <hp@pobox.com>
10524
10525         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10526         (_dbus_marshal_object_id): new
10527         (_dbus_demarshal_object_id): new
10528         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10529         consolidate identical switch cases. Don't conditionalize handling
10530         of DBUS_TYPE_UINT64, need to handle the type always.
10531         (_dbus_marshal_validate_arg): consolidate identical cases, and
10532         handle DBUS_TYPE_OBJECT_ID
10533
10534         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10535
10536         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10537
10538 2003-09-28  Havoc Pennington  <hp@pobox.com>
10539
10540         * real 0.13 release
10541
10542 2003-09-28  Havoc Pennington  <hp@pobox.com>
10543
10544         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10545         to work with Debian db2html
10546
10547 2003-09-28  Havoc Pennington  <hp@pobox.com>
10548
10549         * configure.in: 0.13
10550
10551         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10552         stylesheet-images for benefit of Debian
10553         
10554         Change back to using filesystem-linked sockets for the system
10555         bus, so only root can create the default system bus address.
10556         
10557         * bus/system.conf.in: change to use
10558         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10559
10560         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10561         from here.
10562
10563         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10564         here, and AC_DEFINE DBUS_SYSTEM_PATH
10565
10566 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10567
10568         * doc/TODO:
10569         * doc/busconfig.dtd:
10570         Add busconfig DTD.
10571         
10572 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10573
10574         * doc/dbus-specification.sgml:
10575         Add activation reply values.
10576         
10577 2003-08-05  Havoc Pennington  <hp@redhat.com>
10578
10579         * configure.in: 0.12
10580
10581 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10582
10583         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10584         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10585         (add_watch), (remove_watch), (create_source):
10586         Refcount fds, fixes some reentrancy issues.
10587         
10588 2003-07-30  Havoc Pennington  <hp@redhat.com>
10589
10590         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10591         bus address to be abstract if we have abstract sockets
10592
10593         * NEWS: update
10594
10595 2003-07-28  Havoc Pennington  <hp@redhat.com>
10596
10597         * bus/messagebus.in: fix to avoid processname/servicename 
10598         confusion, from Michael Kearey
10599         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10600         
10601 2003-07-23  Havoc Pennington  <hp@pobox.com>
10602
10603         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10604         fix from Andy Hanton to remove broken "+1"
10605
10606 2003-07-16  Havoc Pennington  <hp@pobox.com>
10607
10608         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10609         babysitter process, as suggested by Thomas Leonard, so 
10610         an "eval `dbus-launch --exit-with-session`" will actually 
10611         return
10612
10613 2003-07-16  Havoc Pennington  <hp@pobox.com>
10614
10615         * configure.in: print out EXPANDED_* variables in the summary at
10616         the end; clean up the code that computes EXPANDED_ variables and
10617         get the ones using exec_prefix right. Should make things work
10618         when you build without --prefix
10619
10620 2003-06-29  Havoc Pennington  <hp@pobox.com>
10621
10622         * mono/Test.cs (class Test): fire up a main loop and run it
10623
10624         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10625         done once, the app has to do it
10626
10627 2003-06-26  Havoc Pennington  <hp@pobox.com>
10628
10629         * mono/Connection.cs: set up connection with the glib main loop
10630
10631 2003-07-01  Havoc Pennington  <hp@redhat.com>
10632
10633         * doc/dbus-specification.sgml: clarify the format of a type code,
10634         change suggested by Jim Blandy
10635
10636 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10637
10638         * doc/Makefile.am:
10639         * tools/Makefile.am: Don't assume srcdir == builddir.
10640
10641         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10642         the allocated block.
10643         (_dbus_memory_test): New function.
10644         * dbus/dbus-test.h: Add _dbus_memory_test ().
10645         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10646
10647         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10648         of %c%c%c%c.
10649         (dbus_message_new): Remove obsolete @todo.
10650
10651         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10652         (_dbus_marshal_set_uint64): Fix comment.
10653
10654         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10655         hardcode FIELD_REPLY_SERIAL.
10656
10657         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10658         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10659
10660         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10661         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10662
10663 2003-06-24  Havoc Pennington  <hp@pobox.com>
10664
10665         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10666
10667 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10668
10669         * configure.in:
10670         * gcj/.cvsignore:
10671         * gcj/Hello.java:
10672         * gcj/Makefile.am:
10673         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10674         * gcj/org/.cvsignore:
10675         * gcj/org/Makefile.am:
10676         * gcj/org/freedesktop/.cvsignore:
10677         * gcj/org/freedesktop/Makefile.am:
10678         * gcj/org/freedesktop/dbus/.cvsignore:
10679         * gcj/org/freedesktop/dbus/Makefile.am:
10680         * gcj/org/freedesktop/dbus/Message.java: (Message),
10681         (Message.Message):
10682         * gcj/org/freedesktop/dbus/natMessage.cc:
10683         Fix the build system.
10684
10685 2003-06-22  Havoc Pennington  <hp@pobox.com>
10686
10687         * mono/Connection.cs: add more bindings
10688
10689         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10690         more than once.
10691
10692 2003-06-22  Havoc Pennington  <hp@pobox.com>
10693
10694         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10695         Start wrapping more stuff.
10696
10697 2003-06-22  Havoc Pennington  <hp@pobox.com>
10698
10699         * mono/Message.cs: implement Message.Wrap() that ensures we only
10700         have a single C# wrapper per DBusMessage, assuming it works which
10701         it probably doesn't.
10702
10703         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10704         (dbus_message_free_data_slot): new
10705         (dbus_message_set_data): new
10706         (dbus_message_get_data): new
10707
10708 2003-06-22  Havoc Pennington  <hp@pobox.com>
10709
10710         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10711         (_dbus_data_slot_allocator_alloc): rework these to keep a
10712         reference count on each slot and automatically manage a global
10713         slot ID variable passed in by address
10714
10715         * bus/bus.c: convert to new dataslot API
10716
10717         * dbus/dbus-bus.c: convert to new dataslot API
10718
10719         * dbus/dbus-connection.c: convert to new dataslot API
10720
10721         * dbus/dbus-server.c: convert to new dataslot API
10722
10723         * glib/dbus-gmain.c: ditto
10724
10725         * bus/test.c: ditto
10726
10727         * bus/connection.c: ditto
10728
10729 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10730
10731         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10732         after the gcj checks so that the correct configuration tags
10733         will be added to libtool.
10734
10735         * dbus-glib-1.pc.in: No need to specify any includes since
10736         dbus-1.pc.in has those.
10737
10738 2003-06-22  Havoc Pennington  <hp@pobox.com>
10739
10740         * mono/*, gcj/*, configure.in, Makefile.am:
10741         Check in makefiles and subdirs for mono and gcj bindings.
10742         Neither binding actually exists, just trying to get through
10743         all the build and other boring bits.
10744
10745 2003-06-21  Philip Blundell  <philb@gnu.org>
10746
10747         * tools/dbus-monitor.1: Updated.
10748
10749         * tools/dbus-send.1: Likewise.
10750
10751 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10752
10753         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10754         for hangup and error after checking read so we won't discard
10755         pending data if both hangup and read are set.
10756
10757 2003-06-19  Philip Blundell  <philb@gnu.org>
10758
10759         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10760
10761         * tools/dbus-send.c: Accept both --system and --session.
10762
10763         * tools/dbus-monitor.c: Same here.
10764
10765 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10766
10767         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10768         from C++ (Patch by Miloslav Trmac).
10769
10770 2003-06-15  Joe Shaw  <joe@assbarn.com>
10771
10772         * configure.in: Check for socklen_t.
10773
10774         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10775
10776         * test/test-segfault.c: Add #include <sys/time.h>
10777
10778         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10779         dbus-launch needs it.
10780
10781 2003-06-09  Havoc Pennington  <hp@redhat.com>
10782
10783         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10784         SUN_LEN, it breaks abstract socket usage
10785
10786         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10787         starts of lines.
10788
10789 2003-06-04  Havoc Pennington  <hp@pobox.com>
10790
10791         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10792         using unix:abstract=/foo, and when listening in a tmpdir
10793         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10794
10795         * dbus/dbus-transport.c (_dbus_transport_open): support
10796         unix:abstract=/foo
10797
10798         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10799         support abstract sockets
10800
10801         * dbus/dbus-transport-unix.c
10802         (_dbus_transport_new_for_domain_socket): support abstract sockets
10803
10804         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10805         toggle as an argument, implement abstract namespace support
10806         (_dbus_listen_unix_socket): ditto
10807
10808         * configure.in: add --enable-abstract-sockets and implement
10809         a configure check for autodetection of the right value.
10810
10811 2003-06-01  Havoc Pennington  <hp@pobox.com>
10812
10813         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10814         in /tmp (though on Linux this will end up being useless,
10815         when we add abstract namespace support)
10816
10817         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10818         subst'ing it
10819
10820 2003-05-28  Colin Walters  <walters@verbum.org>
10821
10822         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10823
10824 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10825
10826         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10827
10828 2003-05-17  Colin Walters  <walters@gnu.org>
10829
10830         * tools/dbus-send.c: Don't exit with an error code if --help was
10831         passed.  Default to using the session bus instead of the system
10832         one.
10833
10834         * tools/dbus-launch.c: Ditto.
10835
10836         * tools/dbus-monitor.c: Ditto.
10837
10838         * tools/dbus-send.1: Update with new arguments.
10839
10840         * tools/dbus-launch.c: Emit code to export variables.  New
10841         arguments -s and -c to specify shell syntax, and a bit of code to
10842         autodetect syntax.  Also, allow specifying a program to run.
10843
10844         * tools/dbus-launch.1: Update with new arguments.
10845
10846         * tools/dbus-send.1: Ditto.
10847
10848         * tools/dbus-monitor.1: Ditto.
10849
10850 2003-05-17  Havoc Pennington  <hp@pobox.com>
10851
10852         * bus/config-parser.c (merge_included): merge in policies from
10853         child configuration file.
10854
10855         * bus/policy.c (bus_policy_merge): function to merge two policies
10856         together
10857
10858 2003-05-16  Havoc Pennington  <hp@redhat.com>
10859
10860         * dbus/dbus-connection.c: disable verbose lock spew
10861
10862         * tools/dbus-send.c: add --print-reply command line option
10863
10864         * tools/dbus-print-message.h (print_message): new util function
10865         shared by dbus-send and dbus-monitor
10866
10867         * tools/dbus-monitor.c (handler_func): exit on disconnect
10868
10869         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10870         disconnected, don't try to use the read_watch
10871
10872         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10873         so we can find this bug more easily
10874
10875 2003-05-16  Havoc Pennington  <hp@redhat.com>
10876
10877         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10878         NULL as DBusHashTable is annoyingly likely to do.
10879
10880 2003-05-16  Colin Walters  <walters@verbum.org>
10881
10882         * tools/dbus-monitor.c: Add --session argument and usage()
10883         function.
10884
10885         * tools/dbus-monitor.1: Update with new --session arg.
10886
10887         * bus/Makefile.am (install-data-hook): Create
10888         $(libdir)/dbus-1.0/services so that the session bus is happy.
10889
10890 2003-05-15  Havoc Pennington  <hp@redhat.com>
10891
10892         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10893         on non-x86. ifdef's are evil.
10894
10895 2003-05-15  Havoc Pennington  <hp@redhat.com>
10896
10897         * configure.in: 0.11
10898
10899         * NEWS: update
10900
10901         * bus/Makefile.am (initddir): apparently we are supposed to put
10902         init scripts in /etc/rc.d/init.d not /etc/init.d
10903
10904         * bus/Makefile.am: remove the "you must --enable-tests to make
10905         check" as it broke distcheck
10906
10907         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10908
10909 2003-05-13  James Willcox  <jwillcox@gnome.org>
10910
10911         * configure.in:
10912         * bus/activation.c: (bus_activation_service_created),
10913         (bus_activation_activate_service):
10914         * bus/driver.c: (bus_driver_send_service_deleted),
10915         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10916         (bus_driver_send_service_acquired),
10917         (bus_driver_send_welcome_message),
10918         (bus_driver_handle_list_services):
10919         * bus/session.conf.in:
10920         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10921         (dbus_bus_service_exists), (dbus_bus_activate_service):
10922         * dbus/dbus-bus.h:
10923
10924         Add some convenience API which lets you activate a service, and did a
10925         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10926         and dbus_message_get_args()
10927
10928 2003-05-11  Havoc Pennington  <hp@pobox.com>
10929
10930         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10931         calling _dbus_marshal_validate_arg() for every byte in a byte
10932         array, etc.
10933
10934         * dbus/dbus-message-handler.c: use atomic reference counting to
10935         reduce number of locks slightly; the global lock in here sucks
10936
10937         * dbus/dbus-connection.c
10938         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10939         update_dispatch_status that can be called with lock held; then use
10940         in a couple places to reduce locking/unlocking
10941         (dbus_connection_send): hold the lock over the whole function
10942         instead of acquiring it twice.
10943
10944         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10945
10946         * bus/connection.c (bus_connections_setup_connection): fix access
10947         to already-freed memory.
10948
10949         * dbus/dbus-connection.c: keep a little cache of linked list
10950         nodes, to avoid using the global linked list alloc lock in the
10951         normal send-message case. Instead we just use the connection lock
10952         that we already have to take.
10953
10954         * dbus/dbus-list.c (_dbus_list_find_last): new function
10955
10956         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10957         change to use a struct for the atomic type; fix docs,
10958         they return value before increment, not after increment.
10959
10960         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10961         (_dbus_string_append_8_aligned): new functions to try to
10962         microoptimize this operation.
10963         (reallocate_for_length): break this out of set_length(), to
10964         improve profile info, and also so we can consider inlining the
10965         set_length() part.
10966
10967         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10968         strings with some preallocation, cuts down on our calls to realloc
10969         a fair bit. Though if we can get the "move entire string to empty
10970         string" optimization below to kick in here, it would be better.
10971
10972         * dbus/dbus-string.c (_dbus_string_move): just call
10973         _dbus_string_move_len
10974         (_dbus_string_move_len): add a special case for moving
10975         an entire string into an empty string; we can just
10976         swap the string data instead of doing any reallocs.
10977         (_dbus_string_init_preallocated): new function
10978
10979 2003-05-11  Havoc Pennington  <hp@pobox.com>
10980
10981         Write a "test-profile" that does echo client-server with threads;
10982         profile reveals lock contention, memcpy/realloc of buffers, and
10983         UTF-8 validation as hot spots. 20% of lock contention eliminated
10984         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10985         contention is global mempool locks for GList and DBusList.
10986
10987         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10988         x86 implementation
10989
10990         * dbus/dbus-connection.c (struct DBusConnection): use
10991         dbus_atomic_t for the reference count
10992
10993         * dbus/dbus-message.c (struct DBusMessage): declare
10994         dbus_atomic_t values as volatile
10995
10996         * configure.in: code to detect ability to use atomic integer
10997         operations in assembly, from GLib patch
10998
10999         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
11000         time, tired of it being wrong in threads and forked processes
11001
11002         * glib/test-profile.c: a little program to bounce messages back
11003         and forth between threads and eat CPU
11004
11005         * dbus/dbus-connection.c: add debug spew macros for debugging
11006         thread locks; include config.h at top; fix deadlock in
11007         dbus_connection_flush()
11008
11009 2003-05-08  Havoc Pennington  <hp@pobox.com>
11010
11011         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
11012         data from getting written, and there wasn't a good reason to
11013         use _exit really.
11014
11015         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
11016         dbus_verbose lines in test coverage
11017         (main): add list of functions sorted by # of untested blocks
11018         to the coverage report
11019
11020         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
11021
11022         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
11023
11024         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
11025         extend test coverage
11026
11027         * test/data/auth/cancel.auth-script: test canceling an
11028         authentication
11029
11030         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
11031         aren't used. in CVS history if we end up needing them.
11032
11033 2003-05-04  Havoc Pennington  <hp@pobox.com>
11034
11035         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
11036         unit test
11037
11038         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
11039         function, which assumed length was in # of strings, not bytes
11040
11041         * dbus/dbus-message.c (_dbus_message_test): add tests for some
11042         missing coverage
11043
11044         * dbus/dbus-connection.c
11045         (_dbus_connection_queue_received_message): disable function for
11046         now, we are only using it in test mode
11047
11048         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11049         remove a mistaken FIXME
11050
11051 2003-05-04  Havoc Pennington  <hp@pobox.com>
11052
11053         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
11054         unlock mutex on successful return, patch from Anders Gustafsson
11055
11056 2003-05-04  Havoc Pennington  <hp@pobox.com>
11057
11058         * dbus-glib-1.pc.in (Requires): fix dependencies, from
11059         Anders Gustafsson
11060
11061 2003-05-04  Havoc Pennington  <hp@pobox.com>
11062
11063         * tools/dbus-launch.c: implement
11064
11065         * bus/main.c (main), bus/bus.c (bus_context_new):
11066         implement --print-pid and --fork
11067
11068 2003-05-03  Havoc Pennington  <hp@redhat.com>
11069
11070         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
11071         the address had no value, and add to test suite. Fix and
11072         regression test from Miloslav Trmac
11073
11074 2003-05-03  Havoc Pennington  <hp@pobox.com>
11075
11076         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
11077         watch is invalid when handled
11078
11079         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
11080         dbus-launch utility to launch the bus from a shell script.  Didn't
11081         actually implement dbus-launch yet, it's just a placeholder still.
11082
11083 2003-05-03  Havoc Pennington  <hp@pobox.com>
11084
11085         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
11086         daemon; also documents daemon config file, so replaces
11087         doc/config-file.txt. Corrected some stuff from config-file.txt in
11088         the process of moving it.
11089
11090 2003-05-03  Havoc Pennington  <hp@pobox.com>
11091
11092         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
11093         add some man pages
11094
11095 2003-05-03  Colin Walters  <walters@verbum.org>
11096
11097         * dbus/dbus-sysdeps.c (fill_user_info): Test against
11098         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
11099
11100         * Makefile.am: Update to use new .pc versioning scheme.
11101
11102 2003-05-02  Havoc Pennington  <hp@redhat.com>
11103
11104         * bus/system.conf.in: allow send/receive to/from message bus
11105         service
11106
11107 2003-04-30  Havoc Pennington  <hp@redhat.com>
11108
11109         * configure.in: print a note when building with unit tests and
11110         without assertions
11111
11112 2003-04-30  Havoc Pennington  <hp@redhat.com>
11113
11114         * Makefile.am: add a check-local that complains if you didn't
11115         configure with --enable-tests
11116
11117 2003-04-29  Havoc Pennington  <hp@redhat.com>
11118
11119         * glib/dbus-gmain.c: docs cleanups
11120
11121         * dbus/dbus-types.h: add docs on int64 types
11122
11123         * dbus/dbus-memory.c: fix docs to avoid putting private API in
11124         public API docs section
11125
11126 2003-04-29  Havoc Pennington  <hp@redhat.com>
11127
11128         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
11129         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
11130         parallel install API version, not with the D-BUS package version.
11131
11132         * HACKING: move some of README over here
11133
11134         * README: updates, and document API/ABI policy
11135
11136         * configure.in: reindentation
11137
11138 2003-04-29  Havoc Pennington  <hp@redhat.com>
11139
11140         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
11141         to use this library" to be sure people have the right
11142         expectations.
11143
11144 2003-04-28  Havoc Pennington  <hp@redhat.com>
11145
11146         * configure.in: add --enable-docs which by default is auto yes if
11147         doxygen and db2html found, no otherwise; but can be forced on/off
11148
11149         * doc/Makefile.am: conditionalize whether to build docs on
11150         --enable-docs
11151
11152 2003-04-28  Havoc Pennington  <hp@redhat.com>
11153
11154         * configure.in: 0.10
11155
11156         * NEWS: update
11157
11158         * bus/system.conf.in: add <includedir>system.d</includedir>
11159
11160         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
11161         username was provided but not uid
11162
11163         * bus/config-parser.c (struct BusConfigParser): keep track of
11164         whether the parser is toplevel or was included; change some
11165         of the error handling if it's included.
11166
11167 2003-04-27  Havoc Pennington  <hp@pobox.com>
11168
11169         Unbreak my code...
11170
11171         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11172         report correct status if we finish processing authentication
11173         inside this function.
11174
11175         * bus/activation.c (try_send_activation_failure): use
11176         bus_transaction_send_error_reply
11177
11178         * bus/connection.c (bus_connection_get_groups): return an error
11179         explaining the problem
11180
11181         * bus/bus.c (bus_context_check_security_policy): implement
11182         restriction here that inactive connections can only send the
11183         hello message. Also, allow bus driver to send anything to
11184         any recipient.
11185
11186         * bus/connection.c (bus_connection_complete): create the
11187         BusClientPolicy here instead of on-demand.
11188         (bus_connection_get_policy): don't return an error
11189
11190         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
11191         sender field in message being replied to
11192
11193         * bus/bus.c (bus_context_check_security_policy): fix silly typo
11194         causing it to return FALSE always
11195
11196         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
11197         we checked sender rather than destination
11198
11199 2003-04-25  Havoc Pennington  <hp@redhat.com>
11200
11201         test suite is slightly hosed at the moment, will fix soon
11202
11203         * bus/connection.c (bus_connections_expire_incomplete): fix to
11204         properly disable the timeout when required
11205         (bus_connection_set_name): check whether we can remove incomplete
11206         connections timeout after we complete each connection.
11207
11208         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
11209         probably still broken.
11210
11211         * bus/services.c (bus_registry_acquire_service): implement max
11212         number of services owned, and honor allow/deny rules on which
11213         services a connection can own.
11214
11215         * bus/connection.c (bus_connection_get_policy): report errors here
11216
11217         * bus/activation.c: implement limit on number of pending
11218         activations
11219
11220 2003-04-25  Havoc Pennington  <hp@redhat.com>
11221
11222         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
11223         where we used >= 0 instead of != DBUS_UID_UNSET.
11224
11225 2003-04-25  Havoc Pennington  <hp@redhat.com>
11226
11227         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
11228         were toggled without add/remove, fix from Anders Gustafsson
11229
11230 2003-04-24  Havoc Pennington  <hp@redhat.com>
11231
11232         * test/data/valid-config-files/basic.conf: add <limit> tags to
11233         this test
11234
11235         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
11236         <limit> tag in configuration file.
11237
11238 2003-04-24  Havoc Pennington  <hp@redhat.com>
11239
11240         * bus/dispatch.c: somehow missed some name_is
11241
11242         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
11243         (_dbus_timeout_set_interval): new
11244
11245         * bus/connection.c (bus_connections_setup_connection): record time
11246         when each connection is first set up, and expire them after the
11247         auth timeout passes.
11248
11249 2003-04-24  Havoc Pennington  <hp@redhat.com>
11250
11251         * dbus/dbus-message.c (dbus_message_name_is): rename
11252         (dbus_message_service_is): rename
11253         (dbus_message_sender_is): rename
11254         (dbus_message_get_service): rename
11255
11256 2003-04-24  Havoc Pennington  <hp@redhat.com>
11257
11258         * configure.in: add --enable-checks
11259
11260         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11261
11262         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11263         to use thread locks.
11264         (_dbus_connection_handler_destroyed_locked): move some private
11265         functions into proper docs group
11266
11267         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11268         _dbus_return_val_if_fail
11269
11270         Throughout: use dbus_return_if_fail
11271
11272 2003-04-23  James Willcox  <jwillcox@gnome.org>
11273
11274         * glib/dbus-glib.h:
11275         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11276         (dbus_connection_setup_with_g_main),
11277         (dbus_server_setup_with_g_main):
11278         * glib/test-dbus-glib.c: (main):
11279         * glib/test-thread-client.c: (main):
11280         * glib/test-thread-server.c: (new_connection_callback), (main):
11281         * tools/dbus-monitor.c: (main):
11282
11283         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11284         and dbus_server_setup_with_g_main().
11285
11286 2003-04-20  Havoc Pennington  <hp@pobox.com>
11287
11288         * doc/dbus-specification.sgml: document the restrictions on
11289         message and service names
11290
11291 2003-04-22  Havoc Pennington  <hp@redhat.com>
11292
11293         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11294         support, and do some code cleanups to share more code and
11295         speed up array marshal/demarshal.
11296
11297         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11298
11299         * configure.in: generate dbus-arch-deps.h
11300
11301         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11302         64-bit typecodes
11303
11304 2003-04-22  Havoc Pennington  <hp@redhat.com>
11305
11306         * test/data/valid-messages/opposite-endian.message: fix test
11307         to use proper type for rply field
11308
11309         * test/data/invalid-messages: add tests for below validation
11310
11311         * dbus/dbus-message.c (decode_header_data): validate field types,
11312         and validate that named fields are valid names
11313         (decode_name_field): consider messages in the
11314         org.freedesktop.Local. namespace to be invalid.
11315
11316         * dbus/dbus-string.c (_dbus_string_validate_name): new
11317
11318 2003-04-19  Havoc Pennington  <hp@pobox.com>
11319
11320         * bus/driver.c (bus_driver_handle_hello): check limits and
11321         return an error if they are exceeded.
11322
11323         * bus/connection.c: maintain separate lists of active and inactive
11324         connections, and a count of each. Maintain count of completed
11325         connections per user. Implement code to check connection limits.
11326
11327         * dbus/dbus-list.c (_dbus_list_unlink): export
11328
11329         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11330         number of bytes in the message queue for a connection
11331
11332 2003-04-18  Havoc Pennington  <hp@pobox.com>
11333
11334         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11335
11336         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11337         memleaks
11338
11339         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11340         on realloc be sure to update the pointer in the keyring
11341
11342         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11343         offset to avoid writing to unallocated memory
11344
11345         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11346         try the next mechanism, so we properly handle OOM
11347
11348         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11349         on OOM.
11350         (_dbus_keyring_new): fix OOM bug
11351         (_dbus_keyring_new_homedir): always set error; impose a maximum
11352         number of keys we'll load from the file, mostly to speed up the
11353         test suite and make its OOM checks more useful, but also for
11354         general sanity.
11355
11356         * dbus/dbus-auth.c (process_error_server): reject authentication
11357         if we get an error from the client
11358         (process_cancel): on cancel, send REJECTED, per the spec
11359         (process_error_client): send CANCEL if we get an error from the
11360         server.
11361
11362 2003-04-18  Havoc Pennington  <hp@pobox.com>
11363
11364         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11365         debug spew
11366
11367         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11368         handling problem
11369
11370         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11371         about DBUS_TEST_HOMEDIR once
11372
11373         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11374         the environment
11375
11376         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11377         config file so we test the right thing
11378
11379         Throughout: assorted docs improvements
11380
11381 2003-04-18  Havoc Pennington  <hp@pobox.com>
11382
11383         * glib/dbus-gmain.c: adapt to watch changes
11384
11385         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11386
11387         * dbus/dbus-server.h: remove dbus_server_handle_watch
11388
11389         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11390
11391         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11392         like DBusTimeout, so we don't need dbus_connection_handle_watch
11393         etc.
11394
11395 2003-04-17  Havoc Pennington  <hp@redhat.com>
11396
11397         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11398         database usage so it all goes via the DBusUserDatabase cache.
11399
11400 2003-04-17  Havoc Pennington  <hp@redhat.com>
11401
11402         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11403         there was an OOM watch we skipped, we always return TRUE so we
11404         iterate again to have a look at it again. Fixes test suite hang.
11405         Code rearrangement also lets us lose some memset and only iterate
11406         over callbacks once.
11407
11408         * bus/driver.c (bus_driver_handle_message): sense of test for
11409         reply was backward
11410
11411 2003-04-16  Havoc Pennington  <hp@pobox.com>
11412
11413         * doc/dbus-specification.sgml: make spec say serials are unsigned
11414
11415         * dbus/dbus-message.h: change message serials to unsigned
11416
11417         * dbus/dbus-connection.c: adapt to message serials being unsigned
11418
11419 2003-04-15  Havoc Pennington  <hp@pobox.com>
11420
11421         * bus/bus.c: create and keep around a shared DBusUserDatabase
11422         object.
11423
11424         * bus/connection.c (bus_connection_get_groups): don't cache
11425         groups for user in the connection object, since user database
11426         object now does that.
11427
11428 2003-04-16  Havoc Pennington  <hp@redhat.com>
11429
11430         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11431         list of size counters
11432         (_dbus_message_loader_putback_message_link): put back a popped link
11433
11434         * dbus/dbus-connection.c
11435         (dbus_connection_set_max_live_messages_size): rename
11436         max_received_size
11437         (dbus_connection_get_outgoing_size): get size of outgoing
11438         queue
11439         (_dbus_connection_set_connection_counter): remove this cruft
11440
11441 2003-04-14  Havoc Pennington  <hp@redhat.com>
11442
11443         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11444         caching, but at some point we might want to be able to use a
11445         different database.
11446
11447         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11448         SHA1 conf file to test the sha1 auth mechanism, since the regular
11449         test always uses EXTERNAL when available.
11450
11451         * configure.in,
11452         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11453         add conf file that requires use of sha1 auth
11454
11455 2003-04-13  Havoc Pennington  <hp@pobox.com>
11456
11457         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11458         from Philip Blundell to send messages and monitor them.
11459
11460 2003-04-13  Havoc Pennington  <hp@pobox.com>
11461
11462         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11463         callbacks
11464
11465         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11466         users
11467
11468         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11469         fix to only recover unused bytes if we're already authenticated
11470         (_dbus_transport_get_is_authenticated): fix to still mark us
11471         authenticated if there are unused bytes.
11472
11473         * bus/dispatch.c: implement security policy checking
11474
11475         * bus/connection.c (bus_transaction_send_from_driver): new
11476
11477         * bus/bus.c (bus_context_check_security_policy): new
11478
11479         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11480         now we just set the DBusError and it gets converted to an error
11481         reply.
11482
11483         * bus/connection.c (allow_user_function): enable code using actual
11484         data from the config file
11485
11486         * bus/policy.c (list_allows_user): handle wildcard rules for
11487         user/group connection perms
11488
11489 2003-04-13  Havoc Pennington  <hp@pobox.com>
11490
11491         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11492
11493         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11494
11495         * bus/policy.c (bus_policy_append_mandatory_rule)
11496         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11497         (bus_policy_append_group_rule): new functions
11498
11499 2003-04-12  Havoc Pennington  <hp@pobox.com>
11500
11501         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11502
11503         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11504         the pid/gid/uid, just for paranoia.
11505
11506         * test/break-loader.c (randomly_do_n_things): find a byte
11507         containing a type code, and randomly change it to a different
11508         type code.
11509
11510 2003-04-12  Havoc Pennington  <hp@pobox.com>
11511
11512         * bus/policy.h: change BusPolicy to be the thing from the config
11513         file, and rename old BusPolicy to BusClientPolicy
11514
11515         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11516         match change in how policy works
11517
11518         * dbus/dbus-internals.h: mark assert_not_reached as
11519         __attribute((noreturn))__
11520
11521 2003-04-11  Havoc Pennington  <hp@redhat.com>
11522
11523         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11524         the broadcast service. Use boolean return for ServiceExists.
11525
11526 2003-04-11  Havoc Pennington  <hp@redhat.com>
11527
11528         * configure.in: add another directory to look for qt in.
11529
11530 2003-04-11  Havoc Pennington  <hp@redhat.com>
11531
11532         * AUTHORS: add Colin Walters
11533
11534 2003-04-11  Havoc Pennington  <hp@redhat.com>
11535
11536         * NEWS: update
11537
11538         * configure.in: 0.9
11539
11540 2003-04-11  Havoc Pennington  <hp@redhat.com>
11541
11542         * bus/messagebus.in: remove pid file when stopping the
11543         message bus, since the bus won't have privileges to remove it
11544         itself.
11545
11546 2003-04-11  Havoc Pennington  <hp@redhat.com>
11547
11548         * bus/bus.c (bus_context_new): move credentials change after
11549         creating pidfile
11550
11551 2003-04-11  Havoc Pennington  <hp@pobox.com>
11552
11553         * test/decode-gcov.c: add "below average functions" to the
11554         coverage report, and change how some of the code works.
11555
11556         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11557         not in the coverage stats.
11558
11559         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11560         couple places so running the test suite doesn't result in megaspam.
11561
11562 2003-04-11  Havoc Pennington  <hp@pobox.com>
11563
11564         * bus/dispatch.c (check_existent_service_activation): accept a no
11565         memory error in a place we didn't before
11566
11567         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11568         in case the first one failed," since the test suite is less
11569         broken now.
11570
11571 2003-04-10  Havoc Pennington  <hp@pobox.com>
11572
11573         * bus/dispatch.c (check_segfault_service_activation): add test
11574         for launching an executable that just crashes.
11575
11576         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11577         don't leave a million cores. We'll see how portable this is.
11578
11579 2003-04-10  Havoc Pennington  <hp@pobox.com>
11580
11581         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11582         the possible parent failures before we fork, so that we don't
11583         fail to create a babysitter after creating the child.
11584
11585         * bus/activation.c (bus_activation_activate_service): kill child
11586         if we don't successfully complete the activation.
11587
11588 2003-04-10  Havoc Pennington  <hp@redhat.com>
11589
11590         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11591         the connection if it's disconnected
11592
11593         * bus/activation.c (bus_activation_service_created): use new
11594         transaction features to roll back removal of pending activation if
11595         we don't successfully create the service after all. Don't remove
11596         pending activation if the function fails.
11597
11598         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11599         (_dbus_list_insert_after_link): new code to facilitate
11600         services.c fixes
11601
11602         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11603         new functionality, so we can preallocate the ability to insert
11604         into a hash table.
11605
11606         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11607         allowing us to put custom hooks in a transaction to be used for
11608         cancelling said transaction
11609
11610         * doc/dbus-specification.sgml: add some discussion of secondary
11611         service owners, and disallow zero-length service names
11612
11613         * bus/services.c (bus_registry_acquire_service): new function,
11614         splits out part of bus_driver_handle_acquire_service() and fixes
11615         a bug where we didn't remove the service doing the acquiring
11616         from the secondary queue if we failed to remove the current owner
11617         from the front of the queue.
11618
11619 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11620
11621         * doc/dbus-specification.sgml:
11622         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11623
11624 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11625
11626         * bus/.cvsignore:
11627         * glib/.cvsignore:
11628         * test/.cvsignore:
11629         Added files to cvsignore
11630
11631         * dbus/dbus-message.h:
11632         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11633         Make get_named() take two out argument and return a boolean.
11634         (dbus_message_iter_get_args_valist):
11635         Update usage of get_named().
11636         (dbus_message_iter_append_byte):
11637         Fix typo
11638         (dbus_message_iter_append_named)
11639         Fix typo
11640         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11641         More tests.
11642
11643 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11644
11645         * dbus/dbus-marshal.[ch]:
11646         Add array_type_pos argument to _dbus_marshal_validate_arg.
11647         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11648
11649         * dbus/dbus-message.[ch]:
11650         Multi-dimensional arrays have full type specification in the
11651         outermost array. Iter code re-arranged to handle this.
11652         Added some more iter tests.
11653
11654         * doc/dbus-specification.sgml:
11655         Add me to authors.
11656         Remove old FIXME.
11657         Update new array encoding description.
11658         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11659
11660         * test/data/invalid-messages/array-with-mixed-types.message:
11661         * test/data/valid-messages/array-of-array-of-uint32.message:
11662         Change to the new array format.
11663
11664         * test/data/invalid-messages/too-short-dict.message:
11665         Fix bug in test.
11666
11667         * test/data/valid-messages/recursive-types.message:
11668         Fix up and extend test.
11669
11670 2003-04-10  Havoc Pennington  <hp@pobox.com>
11671
11672         * bus/dispatch.c: lots of fixes
11673
11674         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11675         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11676         that was crack, broke the test service.
11677
11678         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11679         handling to avoid piling up errors if we get a failure on the
11680         first address.
11681
11682         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11683         pid in assertion failures.
11684
11685         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11686         to some fixed size of file descriptor array. Don't return TRUE
11687         anytime a timeout exists, that led to lots of busy loop silliness
11688         in the tests.
11689
11690 2003-04-09  Havoc Pennington  <hp@redhat.com>
11691
11692         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11693         I'd checked this in earlier but hadn't.
11694
11695 2003-04-09  Havoc Pennington  <hp@redhat.com>
11696
11697         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11698         the activation test (man this is getting old!)
11699
11700 2003-04-09  Havoc Pennington  <hp@redhat.com>
11701
11702         * test/test-utils.c: use dispatch status function to fix this up
11703
11704         * bus/connection.c (connection_watch_callback): don't dispatch
11705         from here
11706         (connection_timeout_callback): don't dispatch from here
11707         (bus_connections_setup_connection): set the dispatch status function
11708         (bus_connection_disconnected): unset it
11709
11710         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11711         used to add a connection to be dispatched
11712         (_dbus_loop_iterate): do the dispatching at the end of each
11713         iteration
11714
11715         * dbus/dbus-connection.c
11716         (dbus_connection_set_dispatch_status_function): new function
11717         allowing us to fix up main loop usage
11718         (_dbus_connection_last_unref): free all the various function
11719         user data
11720         (dbus_connection_dispatch): call the DispatchStatusFunction
11721         whenever this function returns
11722         (dbus_connection_handle_watch): call DispatchStatusFunction
11723         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11724         (reply_handler_timeout): call DispatchStatusFunction
11725         (dbus_connection_flush): call DispatchStatusFunction
11726
11727 2003-04-09  Havoc Pennington  <hp@redhat.com>
11728
11729         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11730         a memory leak
11731
11732         * bus/dispatch.c (check_service_activated): fix bug in test
11733
11734         * dbus/dbus-mainloop.c (check_timeout): fix this up
11735
11736         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11737         verbose output so we can sort out output from different processes,
11738         e.g. in the activation case.
11739
11740 2003-04-08  Colin Walters  <walters@gnu.org>
11741
11742         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11743         the pid file.
11744         (bus_context_new): Set it.
11745         (bus_context_unref): Use it to delete the pid file.
11746
11747 2003-04-08  Havoc Pennington  <hp@redhat.com>
11748
11749         * test/data/invalid-messages/array-with-mixed-types.message:
11750         regression test that fails for the moment
11751
11752         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11753         tests for convenience
11754
11755         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11756         array of nil, it broke things.
11757
11758         * test/data/invalid-messages/array-of-nil.message: regression test
11759
11760         * test/data/valid-messages/array-of-array-of-uint32.message:
11761         happened to write this so added it to suite
11762
11763 2003-04-08  Havoc Pennington  <hp@redhat.com>
11764
11765         * bus/driver.c (bus_driver_handle_acquire_service): init
11766         retval/reply before checking name
11767
11768         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11769         recursion depth argument
11770
11771         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11772         in the public struct for future extension
11773
11774         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11775         typo
11776
11777         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11778         message
11779
11780         * doc/dbus-specification.sgml: fix typo
11781
11782 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11783
11784         Implemented recursive types, named types and new-style iters
11785
11786         * bus/driver.c:
11787         * glib/test-thread-client.c: (thread_func):
11788         * glib/test-thread-server.c: (handle_test_message):
11789         * test/test-service.c: (handle_echo):
11790         Update to new api
11791
11792         * dbus/Makefile.am:
11793         * dbus/dbus-dict.c:
11794         * dbus/dbus-dict.h:
11795         * dbus/dbus.h
11796         Remove DBusDict
11797
11798         * dbus/dbus-internals.c: (_dbus_type_to_string):
11799         Update for new types.
11800
11801         * dbus/dbus-marshal.[ch]:
11802         Implement recursive types and the new marshalling format.
11803         Remove hardcoded dict marshalling.
11804         Marshal named types.
11805
11806         * dbus/dbus-message-builder.c:
11807         Add BYTE_ARRAY.
11808         Remove references to old types
11809
11810         * dbus/dbus-message.[ch]:
11811         New non-refcounted iter API that supports recursive iters.
11812         Use iters for appending, including support for recursive
11813         iters.
11814         Add byte and named type support.
11815         Update everything to new marshalling formats.
11816         Add tests for new API.
11817
11818         * dbus/dbus-protocol.h:
11819         Remove old array types.
11820         Add types: BYTE, ARRAY, DICT, NAMED
11821
11822         * dbus/dbus-string.c:
11823         * dbus/dbus-sysdeps.c:
11824         Make parse_double locale safe.
11825
11826         * dbus/dbus-test-main.c:
11827         Call setlocale.
11828
11829         * dbus/dbus-test.c:
11830         Kill dict test
11831
11832         * doc/dbus-specification.sgml:
11833         Update spec
11834
11835         * test/data/incomplete-messages/missing-body.message:
11836         * test/data/invalid-messages/bad-boolean.message:
11837         * test/data/invalid-messages/bad-boolean-array.message:
11838         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11839         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11840         * test/data/invalid-messages/too-short-dict.message:
11841         * test/data/valid-messages/dict-simple.message:
11842         * test/data/valid-messages/dict.message:
11843         * test/data/valid-messages/emptiness.message:
11844         * test/data/valid-messages/lots-of-arguments.message:
11845         * test/data/valid-messages/no-padding.message:
11846         * test/data/valid-messages/recursive-types.message:
11847         Add missing NAME fields
11848         Fix up dicts & arrays
11849
11850         * test/data/invalid-messages/dict-with-nil-value.message:
11851         Removed, this is not invalid anymore.
11852
11853         * test/data/valid-messages/recursive-types.message:
11854         Add new test for deeply recursive types.
11855
11856 2003-04-07  Havoc Pennington  <hp@pobox.com>
11857
11858         * bus/driver.c (bus_driver_handle_acquire_service): return an
11859         error if you try to acquire a service that starts with ':'
11860
11861 2003-04-07  Havoc Pennington  <hp@redhat.com>
11862
11863         * doc/dbus-specification.sgml: require that base service names
11864         start with ':' and that the base service is created/deleted
11865         as first and last things a connection does on the bus
11866
11867         * bus/dispatch.c (check_existent_service_activation): lots more
11868         work on the activation test; it doesn't fully pass yet...
11869
11870         * test/test-service.c (main): fix so we don't memleak the
11871         connection to the message bus
11872         (filter_func): accept a message asking us to exit
11873
11874 2003-04-06  Havoc Pennington  <hp@pobox.com>
11875
11876         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11877         from Colin Walters
11878
11879         * configure.in: fixes to Qt detection from Colin Walters
11880
11881         * doc/Makefile.am: Only remove generated docbook dirs if they
11882         exist, from Colin Walters
11883
11884         * dbus/dbus-bus.c: change how we set well-known connections to
11885         NULL, so that it works if a single connection is stored in
11886         two well-known array slots.
11887
11888         * test/Makefile.am: remove a lot of stuff that isn't immediately
11889         useful, it's in CVS history if we want it.
11890
11891         * test/test-service.c: use dbus-mainloop instead of that
11892         watch.[hc] crack
11893
11894 2003-04-06  Havoc Pennington  <hp@pobox.com>
11895
11896         * dbus/Makefile.am: split lists of sources into stuff that goes in
11897         the library, util functions that go in the lib and are also used
11898         elsewhere, and util functions that are used in tests/daemon but
11899         don't go in the lib.
11900
11901         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11902         here so it can be used in test binaries also
11903
11904 2003-04-06  Havoc Pennington  <hp@pobox.com>
11905
11906         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11907         here in the parent process, so we can return an error if it
11908         fails. Also, move some of the code into the child so the parent
11909         is less hosed if we fail midway through.
11910
11911         * bus/bus.c (bus_context_new): move pidfile detection further up
11912         in the function, before we start overwriting sockets and such.
11913
11914         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11915
11916         * configure.in: add --with-system-pid-file and --with-system-socket
11917
11918 2003-04-06  Colin Walters  <walters@verbum.org>
11919
11920         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11921
11922         * bus/system.conf.in: Declare a pidfile.
11923
11924         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11925         create one (if appropriate).
11926
11927         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11928         (struct BusConfigParser) [pidfile]: New.
11929         (element_type_to_name, merge_included, start_busconfig_child)
11930         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11931         (bus_config_parser_unref): Free it.
11932         (bus_config_parser_get_pidfile): New function.
11933
11934         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11935
11936         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11937
11938         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11939
11940         * dbus/dbus-sysdeps.h: Prototype it.
11941
11942 2003-04-06  Havoc Pennington  <hp@pobox.com>
11943
11944         * bus/bus.c (bus_context_new): print the address in here, rather
11945         than in main(), because we need to do it before forking the daemon
11946
11947         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11948         on the service nonexistent error
11949
11950         * bus/driver.c (bus_driver_handle_acquire_service): set the
11951         sender on the AcquireService reply
11952
11953         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11954         server also listen on a UNIX socket so services can connect to it.
11955
11956 2003-04-06  Havoc Pennington  <hp@pobox.com>
11957
11958         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11959         so it detects deadlocks and also we actually init threads when
11960         debugging.
11961
11962 2003-04-06  Havoc Pennington  <hp@pobox.com>
11963
11964         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11965         save the domain socket name, and unlink it when we disconnect the
11966         server. Means that at least when we exit normally, we won't leave
11967         a bunch of junk in /tmp
11968
11969         * dbus/dbus-transport-unix.c
11970         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11971         memory management). (I was making a real change here but then
11972         didn't)
11973
11974 2003-04-06  Havoc Pennington  <hp@pobox.com>
11975
11976         * bus/bus.c (bus_context_new): fix wrong handling of
11977         server_data_slot_unref() in the error case.
11978
11979         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11980         "(condition) != 0" to _dbus_real_assert so that
11981         "_dbus_assert (pointer)" doesn't cause a warning
11982
11983         * bus/main.c (main): accept --print-address option to print out
11984         the message bus address
11985
11986         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11987
11988         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11989         "tmpdir" option to unix: address on client side
11990
11991         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11992         to unix: address
11993
11994         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11995         we can use to create sockets in the test suite.
11996
11997         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11998         cleanly. To be used for testing.
11999
12000         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
12001
12002         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
12003
12004         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12005         handle trying to call this when there's no servers active
12006
12007 2003-04-05  Havoc Pennington  <hp@pobox.com>
12008
12009         * NEWS: update
12010
12011         * configure.in: 0.8
12012
12013 2003-04-05  Havoc Pennington  <hp@pobox.com>
12014
12015         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
12016         crash on startup. Need to get "try starting the daemon"
12017         in the test suite I guess. ;-)
12018
12019         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
12020         tracked the number of open connections; it's better done in
12021         application-specific code as you want it to span all servers etc.
12022
12023 2003-04-05  Havoc Pennington  <hp@pobox.com>
12024
12025         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
12026         patch from Colin Walters
12027
12028 2003-04-05  Havoc Pennington  <hp@pobox.com>
12029
12030         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
12031         reality; in fact multiple mechanisms are allowed.
12032
12033         * dbus/dbus-internals.c (_dbus_real_assert)
12034         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
12035         _dbus_assert_not_reached() into functions, so that they don't show
12036         up in basic block counts for test coverage, and don't use up as
12037         much disk space. Does mean slower execution speed though, so
12038         assumes --disable-asserts is the normal production case.
12039
12040 2003-04-05  Havoc Pennington  <hp@pobox.com>
12041
12042         * test/Makefile.am (dist-hook): also dist *.in files
12043
12044         * NEWS: update
12045
12046         * configure.in: 0.7
12047
12048 2003-04-05  Havoc Pennington  <hp@pobox.com>
12049
12050         * dbus/dbus-string.c: docs warning
12051
12052         * dbus/dbus-spawn.c: missing docs
12053
12054         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
12055
12056 2003-04-05  Havoc Pennington  <hp@pobox.com>
12057
12058         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
12059         magic from GLib
12060
12061         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
12062         to -1 once we've reaped the babysitter
12063         (_dbus_babysitter_handle_watch): do as much work as we can, not
12064         just one go of it
12065
12066         * bus/activation.c: add code using DBusBabysitter so that we
12067         handle it when a service fails to start up properly.
12068         (bus_activation_service_created): don't remove the activation
12069         entries as we go, just let them get removed when we free the pending
12070         activation. Unref reply messages after sending them.
12071
12072 2003-04-05  Havoc Pennington  <hp@pobox.com>
12073
12074         * test/decode-gcov.c (main): print per-directory stats in the report
12075
12076         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
12077
12078 2003-04-05  Havoc Pennington  <hp@pobox.com>
12079
12080         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
12081
12082         * test/decode-gcov.c: hack up a little program to suck data
12083         out of gcov files. Yes this is sort of silly.
12084
12085         * configure.in: define something in config.h and do an
12086         AM_CONDITIONAL when gcov is enabled
12087
12088 2003-04-04  Havoc Pennington  <hp@redhat.com>
12089
12090         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
12091         return a "babysitter" object that is used to monitor the status of
12092         the spawned process and reap it when required.
12093
12094         * test/test-segfault.c, test/test-exit.c,
12095         test/test-sleep-forever.c: binaries that do various lame things,
12096         used in the test suite.
12097
12098         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
12099
12100 2003-04-03  Havoc Pennington  <hp@pobox.com>
12101
12102         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
12103         in preparation for modifying it, dbus-sysdeps is getting
12104         a bit unmanageable.
12105
12106 2003-04-03  Havoc Pennington  <hp@redhat.com>
12107
12108         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
12109         have multiple ones
12110
12111         * bus/*.[hc]: adapt to mainloop change
12112
12113 2003-04-03  Havoc Pennington  <hp@redhat.com>
12114
12115         * bus/activation.c (load_directory): fix up memleaks
12116         (bus_activation_entry_free): free the entry
12117
12118         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
12119         we get one from the message bus; fix memleaks.
12120
12121         * dbus/dbus-message.c (dbus_set_error_from_message): new function
12122
12123 2003-04-03  Havoc Pennington  <hp@pobox.com>
12124
12125         * bus/config-parser.c (bus_config_parser_unref): free
12126         list of mechanisms, bug discovered by test suite enhancements
12127         (putting system.conf and session.conf into suite)
12128
12129         * test/Makefile.am, test/test-service.c: add placeholder for a
12130         test service that we'll activate as part of test suite. Doesn't
12131         do anything yet.
12132
12133         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
12134         setting NULL value, and use system malloc not dbus_malloc()
12135         when we have unavoidable memleakage.
12136
12137         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
12138         didn't work, and support DBUS_BUS_ACTIVATION.
12139
12140         * bus/activation.c (child_setup): pass our well-known bus type to
12141         the child
12142
12143         * bus/config-parser.c: support <type> to specify well-known type
12144
12145         * doc/dbus-specification.sgml: document the env variables to
12146         locate well-known buses and find service activator
12147
12148 2003-04-02  Havoc Pennington  <hp@redhat.com>
12149
12150         * test/Makefile.am (all-local): add a rule to copy tests to
12151         builddir, so we can have generated tests. Use this to remove the
12152         silly hack for testing system.conf and session.conf. Will use this
12153         shortly to generate .service files pointing to test binaries.
12154
12155 2003-04-02  Havoc Pennington  <hp@redhat.com>
12156
12157         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
12158         current alloc and needed new length, not max of the doubled
12159         allocation and needed new length. Also, when building tests,
12160         don't do the double-allocation stuff, just realloc every time.
12161
12162 2003-04-02  Havoc Pennington  <hp@redhat.com>
12163
12164         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
12165         in error messages
12166         (_dbus_string_get_dirname): new
12167         (_dbus_sysdeps_test): new
12168         (_dbus_directory_open): include dirnames in error messages
12169
12170         * bus/config-parser.c: interpret <include> and <includedir> and
12171         <servicedir> relative to config file location if the given
12172         filename is not absolute.
12173
12174         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
12175
12176 2003-04-02  Havoc Pennington  <hp@redhat.com>
12177
12178         * bus/connection.c (bus_transaction_send_error_reply): set sender
12179         service for the error, and unref the reply on success
12180
12181         * bus/activation.c: convert to use BusTransaction so OOM can be
12182         handled correctly
12183         (bus_activation_service_created): set sender of the message
12184
12185 2003-04-01  Havoc Pennington  <hp@redhat.com>
12186
12187         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
12188         <includedir> (at least mostly)
12189
12190         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
12191         first, then the user ID
12192
12193 2003-04-01  Havoc Pennington  <hp@pobox.com>
12194
12195         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
12196         function
12197
12198         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
12199
12200         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
12201
12202         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
12203         socket 0777, and unlink any existing socket.
12204
12205         * bus/bus.c (bus_context_new): change our UID/GID and fork if
12206         the configuration file so specifies; set up auth mechanism
12207         restrictions
12208
12209         * bus/config-parser.c (bus_config_parser_content): add support
12210         for <fork> option and fill in code for <auth>
12211
12212         * bus/system.conf.in: add <fork/> to default configuration,
12213         and limit auth mechanisms to EXTERNAL
12214
12215         * doc/config-file.txt (Elements): add <fork>
12216
12217         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
12218         (_dbus_change_identity): new function
12219
12220 2003-03-31  Havoc Pennington  <hp@redhat.com>
12221
12222         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
12223         (_dbus_listen_unix_socket): fix off-by-one error in null
12224         termination spotted by Nalin
12225
12226 2003-03-31  Havoc Pennington  <hp@redhat.com>
12227
12228         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
12229         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
12230         having a real home directory available.
12231
12232 2003-03-31  Havoc Pennington  <hp@redhat.com>
12233
12234         * bus/Makefile.am (install-data-hook): create /var/run/dbus
12235
12236         * bus/messagebus.in: add init script for Red Hat /etc/init.d
12237
12238         * configure.in: add support for specifying a style of init script
12239         to install
12240
12241 2003-03-31  Havoc Pennington  <hp@redhat.com>
12242
12243         Fix some annoying DBusString API and fix all affected code.
12244
12245         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
12246         max_length argument
12247         (_dbus_string_get_data): change to return string instead of using
12248         an out param
12249         (_dbus_string_get_const_data): ditto
12250         (_dbus_string_get_data_len): ditto
12251         (_dbus_string_get_const_data_len): ditto
12252
12253 2003-03-31  Havoc Pennington  <hp@redhat.com>
12254
12255         * bus/main.c (main): fix up the command line arguments to be nicer
12256
12257 2003-03-31  Havoc Pennington  <hp@redhat.com>
12258
12259         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12260         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12261         final location that lands in the config file
12262
12263         * bus/config-loader-expat.c (bus_config_load): fix type of
12264         XML_Parser variable
12265
12266         * doc/TODO: remove TODO item for dbus_bus_get()
12267
12268         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12269
12270 2003-03-31  Havoc Pennington  <hp@pobox.com>
12271
12272         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12273         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12274         argument since they are always client side
12275
12276         * dbus/dbus-server.c (dbus_server_get_address): new function
12277
12278         * bus/main.c (main): take the configuration file as an argument.
12279
12280         * test/data/valid-config-files/debug-allow-all.conf: new file to
12281         use with dispatch.c tests for example
12282
12283         * bus/test-main.c (main): require test data dir
12284
12285         * bus/bus.c (bus_context_new): change this to take a
12286         configuration file name as argument
12287
12288         * doc/config-file.txt (Elements): add <servicedir>
12289
12290         * bus/system.conf, bus/session.conf: new files
12291
12292         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12293         well-known socket if none set
12294
12295         * configure.in: create system.conf and session.conf
12296
12297 2003-03-30  Havoc Pennington  <hp@pobox.com>
12298
12299         * bus/config-parser.c: hacking
12300
12301         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12302         to shut down, since it could cause weirdness with the DBusList
12303         lock
12304
12305         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12306         link-oriented stack routines
12307         (alloc_link): free the mempool if the first alloc from it fails
12308
12309         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12310
12311         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12312         from GLib
12313         (_dbus_string_skip_white): new
12314
12315         * doc/config-file.txt (Elements): add <includedir>
12316
12317 2003-03-28  Havoc Pennington  <hp@pobox.com>
12318
12319         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12320         (_dbus_string_copy_data): new functions
12321
12322 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12323
12324         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12325         * dbus/dbus-bus.h:
12326         Add dbus_bus_get.
12327
12328         * dbus/dbus-memory.c:
12329         Fix a doc comment.
12330
12331 2003-03-28  Havoc Pennington  <hp@pobox.com>
12332
12333         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12334         I think it may have just been superstition. Not sure.
12335
12336         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12337         failures that were not being handled.
12338
12339         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12340
12341         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12342         row that will fail on out-of-memory.
12343
12344         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12345         function for testing out-of-memory handling.
12346
12347         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12348         allocation functions, they do map exactly to the expat ones.
12349
12350 2003-03-27  Havoc Pennington  <hp@redhat.com>
12351
12352         * bus/config-loader-libxml.c (bus_config_load): add another error
12353         check
12354
12355 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12356
12357         * doc/TODO:
12358         Add note about automatic service activation.
12359
12360         * doc/dbus-specification.sgml:
12361         Rename the specification and clarify a few things.
12362
12363 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12364
12365         * Doxyfile.in:
12366         * dbus/dbus-address.c:
12367         * dbus/dbus-dict.c:
12368         * dbus/dbus-marshal.c:
12369         * dbus/dbus-server-debug-pipe.c:
12370         * dbus/dbus-transport-unix.c:
12371         Fix documentation warnings.
12372
12373 2003-03-26  Havoc Pennington  <hp@pobox.com>
12374
12375         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12376         after every test so it's quick and easy to see which leaked, and
12377         so we test multiple dbus_shutdown() calls
12378
12379         * configure.in: change configure.in XML stuff to also support
12380         expat
12381
12382         * config-loader-libxml.c: some hacking
12383
12384         * config-loader-expat.c: some hacking
12385
12386         * config-parser.c: some hacking, plus tests
12387
12388 2003-03-25  Havoc Pennington  <hp@redhat.com>
12389
12390         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12391
12392         * configure.in: add --with-xml option to specify XML library,
12393         right now only libxml is supported.
12394
12395         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12396         nonworking code between home and work, still just stubs
12397
12398 2003-03-24  Havoc Pennington  <hp@redhat.com>
12399
12400         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12401         file
12402
12403         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12404         NULL argument for "message" if the error is a well-known one,
12405         fill in a generic message in this case.
12406
12407         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12408         favor of DBusError
12409
12410         * bus/test.c (bus_test_flush_bus): add
12411
12412         * bus/policy.c (bus_policy_test): test code stub
12413
12414 2003-03-24  Havoc Pennington  <hp@pobox.com>
12415
12416         * bus/connection.c (bus_connections_setup_connection): set up
12417         the "can this user connect" function, but it always returns
12418         TRUE until we have a config file parser so we can have a config
12419         file that allows connections.
12420
12421 2003-03-23  Havoc Pennington  <hp@pobox.com>
12422
12423         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12424         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12425         the mutex, so we can check for proper memory management
12426         and OOM handling.
12427
12428         * dbus/dbus-dataslot.c: remove the mutex from
12429         DBusDataSlotAllocator and lock it manually when using it,
12430         to simplify fitting it into the global slots framework.
12431
12432         * dbus/dbus-threads.c (init_static_locks): rework how we're
12433         handling global locks so they are easily shut down.
12434
12435         * bus/policy.c (bus_policy_append_rule): fix
12436
12437         * bus/test-main.c (main): check for memleaks
12438
12439         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12440         test suite check for memleaks
12441
12442         * dbus/dbus-memory.c: add support in test mode for tracking
12443         number of outstanding blocks
12444
12445 2003-03-23  Havoc Pennington  <hp@pobox.com>
12446
12447         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12448         policies code
12449
12450         * dbus/dbus-hash.h: add ULONG hash keys
12451
12452         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12453         (_dbus_get_group_id): new function
12454
12455 2003-03-20  Havoc Pennington  <hp@redhat.com>
12456
12457         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12458         new function
12459         (dbus_connection_get_unix_user): new function
12460
12461 2003-03-20  Havoc Pennington  <hp@pobox.com>
12462
12463         * bus/connection.c (bus_connection_send_oom_error): assert that
12464         message has a sender
12465         (connection_execute_transaction): ditto
12466         (bus_connection_preallocate_oom_error): fix to set the sender, and
12467         set recipient to the destination service, not the bus driver
12468
12469         * bus/policy.c: hacking
12470
12471         * dbus/dbus-message.c (dbus_message_service_is): new function
12472         (dbus_message_sender_is): new
12473
12474 2003-03-19  Havoc Pennington  <hp@redhat.com>
12475
12476         * bus/policy.c: start sketching code for policy restrictions on
12477         what connections can do.
12478
12479 2003-03-18  Havoc Pennington  <hp@redhat.com>
12480
12481         * doc/TODO: some notes on high-level todo items. Little nitpick
12482         stuff is all in @todo, so no need to add it here.
12483
12484         * doc/config-file.txt: some notes on how config file might look
12485
12486 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12487
12488         * configure.in: 0.6
12489
12490         * NEWS: Update.
12491
12492 2003-03-17  Havoc Pennington  <hp@redhat.com>
12493
12494         * dbus/dbus-internals.h: add gcc attributes so that
12495         our printf-style functions warn on bad arguments to
12496         format
12497
12498         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12499         format bug
12500
12501         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12502         printf format bug
12503
12504 2003-03-17  Havoc Pennington  <hp@redhat.com>
12505
12506         * bus/test-main.c (main): make it print something as it runs
12507         so make check doesn't look stuck
12508
12509         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12510         from CVS, now obsolete
12511
12512 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12513
12514         * bus/dispatch.c: (bus_dispatch):
12515         Refetch the service name since it may have been reallocated
12516         when dbus_message_set_sender was called.
12517
12518         * dbus/dbus-sysdeps.c: (_dbus_accept):
12519         Add address and address length variables and use them to stop
12520         valgrind from complaining.
12521
12522 2003-03-17  Havoc Pennington  <hp@pobox.com>
12523
12524         All tests pass, no memleaks, no valgrind complaints.
12525
12526         * bus/test.c: refcount handler_slot
12527
12528         * bus/connection.c (bus_connections_new): refcount
12529         connection_data_slot
12530
12531         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12532         bytes so that auth scripts pass.
12533
12534         * bus/dispatch.c: init message_handler_slot so it gets allocated
12535         properly
12536
12537         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12538
12539         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12540         dealloc server_pipe_hash when no longer used for benefit of
12541         leak checking
12542
12543         * dbus/dbus-auth.c (process_command): memleak fix
12544
12545         * bus/dispatch.c (check_hello_message): memleak fix
12546
12547 2003-03-16  Havoc Pennington  <hp@pobox.com>
12548
12549         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12550
12551 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12552
12553         * bus/activation.c (bus_activation_activate_service): Append
12554         the pending activation entry to the list of pending activations.
12555
12556 2003-03-16  Havoc Pennington  <hp@pobox.com>
12557
12558         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12559         connections
12560
12561         * dbus/dbus-address.c (create_entry): fix OOM handling when
12562         failing to alloc entry->method
12563
12564 2003-03-16  Havoc Pennington  <hp@pobox.com>
12565
12566         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12567         the watch
12568
12569         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12570         add some missing dbus_set_result
12571
12572         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12573         alloc the DBusMessageHandler
12574
12575         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12576         the transport here, since we call this from the finalizer; it
12577         resulted in a double-finalize.
12578
12579         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12580         where we tried to use transport->connection that was NULL,
12581         happened when transport was disconnected early on due to OOM
12582
12583         * bus/*.c: adapt to handle OOM for watches/timeouts
12584
12585         * dbus/dbus-transport-unix.c: port to handle OOM during
12586         watch handling
12587
12588         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12589         reference to unused bytes instead of a copy
12590
12591         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12592         out of memory
12593
12594         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12595         FALSE on OOM
12596
12597         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12598         of memory
12599
12600 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12601
12602         * doc/dbus-specification.sgml:
12603         Document reply message for ActivateService.
12604
12605 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12606
12607         * bus/activation.c: (bus_pending_activation_entry_free),
12608         (bus_pending_activation_free), (bus_activation_new),
12609         (bus_activation_unref), (bus_activation_service_created),
12610         (bus_activation_activate_service):
12611         * bus/activation.h:
12612         * bus/bus.c: (bus_context_new):
12613         * bus/desktop-file.c: (new_section):
12614         * bus/driver.c: (bus_driver_send_service_deleted),
12615         (bus_driver_handle_activate_service):
12616         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12617         * bus/services.h:
12618         * dbus/dbus-connection.c:
12619         (dbus_connection_send_with_reply_and_block):
12620         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12621         * dbus/dbus-protocol.h:
12622         Make activation work better. Now pending activations will be queued
12623         and the daemon won't try to activate services that are already registered.
12624
12625 2003-03-16  Havoc Pennington  <hp@pobox.com>
12626
12627         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12628         connection data
12629
12630         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12631         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12632
12633 2003-03-16  Havoc Pennington  <hp@pobox.com>
12634
12635         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12636         this. always run the test suite before commit...
12637
12638         * bus/*: adapt to DBusConnection API changes
12639
12640         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12641         requires renaming stuff to avoid dbus_connection_dispatch name
12642         conflict.
12643
12644         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12645         function
12646
12647         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12648         separate from _dbus_message_loader_return_buffer()
12649
12650         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12651         this, because it's now always broken to use; the number of
12652         messages in queue vs. the number still buffered by the message
12653         loader is undefined/meaningless. Should use
12654         dbus_connection_get_dispatch_state().
12655         (dbus_connection_dispatch): rename from
12656         dbus_connection_dispatch_message
12657
12658 2003-03-16  Havoc Pennington  <hp@pobox.com>
12659
12660         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12661         implementation
12662
12663 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12664
12665         * dbus/dbus-connection.c:
12666         (dbus_connection_send_with_reply_and_block):
12667         Decrease connection->n_incoming when removing an entry
12668         from the list.
12669         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12670         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12671         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12672         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12673         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12674         (dbus_dict_get_byte_array):
12675         Handle NULL arrays and strings. Also add support for byte arrays.
12676
12677         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12678         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12679         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12680         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12681         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12682         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12683         * dbus/dbus-marshal.h:
12684         Add support for marshalling and demarshalling empty arrays and strings.
12685
12686         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12687         (dbus_message_append_string_array),
12688         (dbus_message_iter_get_boolean),
12689         (dbus_message_iter_get_boolean_array),
12690         (dbus_message_iter_get_int32_array),
12691         (dbus_message_iter_get_uint32_array),
12692         (dbus_message_iter_get_double_array),
12693         (dbus_message_iter_get_byte_array),
12694         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12695         (check_message_handling):
12696         Add support for getting empty arrays and dicts.
12697
12698         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12699         Don't do any validation at all for now, that's better than just checking
12700         for ASCII.
12701
12702         * test/data/valid-messages/emptiness.message:
12703         New test message with lots of empty arrays.
12704
12705 2003-03-16  Havoc Pennington  <hp@pobox.com>
12706
12707         * dbus/dbus-connection.c
12708         (_dbus_connection_queue_received_message_link): new function that
12709         can't fail due to OOM
12710
12711         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12712         new function pops a message together with a list link
12713         containing it.
12714
12715         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12716         message queuing functions to avoid needing to alloc memory
12717
12718 2003-03-16  Havoc Pennington  <hp@pobox.com>
12719
12720         Oops - test code was only testing failure of around 30 of the
12721         mallocs in the test path, but it turns out there are 500+
12722         mallocs. I believe this was due to misguided linking setup such
12723         that there was one copy of dbus_malloc etc. in the daemon and one
12724         in the shared lib, and only daemon mallocs were tested. In any
12725         case, the test case now tests all 500+ mallocs, and doesn't pass
12726         yet, though there are lots of fixes in this patch.
12727
12728         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12729         this so that it doesn't need to allocate memory, since it
12730         has no way of indicating failure due to OOM (and would be
12731         annoying if it did).
12732
12733         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12734
12735         * bus/Makefile.am: rearrange to create two self-contained
12736         libraries, to avoid having libraries with overlapping symbols.
12737         that was resulting in weirdness, e.g. I'm pretty sure there
12738         were two copies of global static variables.
12739
12740         * dbus/dbus-internals.c: move the malloc debug stuff to
12741         dbus-memory.c
12742
12743         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12744         empty.
12745
12746         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12747
12748         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12749         on failure.
12750
12751         * bus/dispatch.c (bus_dispatch_add_connection): free
12752         message_handler_slot when no longer using it, so
12753         memory leak checkers are happy for the test suite.
12754
12755         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12756
12757         * bus/bus.c (new_connection_callback): disconnect in here if
12758         bus_connections_setup_connection fails.
12759
12760         * bus/connection.c (bus_connections_unref): fix to free the
12761         connections
12762         (bus_connections_setup_connection): if this fails, don't
12763         disconnect the connection, just be sure there are no side
12764         effects.
12765
12766         * dbus/dbus-string.c (undo_alignment): unbreak this
12767
12768         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12769         leaking
12770         (_dbus_auth_new): fix the order in which we free strings
12771         on OOM failure
12772
12773         * bus/connection.c (bus_connection_disconnected): fix to
12774         not send ServiceDeleted multiple times in case of memory
12775         allocation failure
12776
12777         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12778         get the base service name
12779         (dbus_bus_register_client): don't return base service name,
12780         instead store it on the DBusConnection and have an accessor
12781         function for it.
12782         (dbus_bus_register_client): rename dbus_bus_register()
12783
12784         * bus/dispatch.c (check_hello_message): verify that other
12785         connections on the bus also got the correct results, not
12786         just the one sending hello
12787
12788 2003-03-15  Havoc Pennington  <hp@pobox.com>
12789
12790         Make it pass the Hello handling test including all OOM codepaths.
12791         Now to do other messages...
12792
12793         * bus/services.c (bus_service_remove_owner): fix crash when
12794         removing owner from an empty list of owners
12795         (bus_registry_ensure): don't leave service in the list of
12796         a connection's owned services if we fail to put the service
12797         in the hash table.
12798
12799         * bus/connection.c (bus_connection_preallocate_oom_error): set
12800         error flag on the OOM error.
12801
12802         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12803         handle _dbus_transport_set_connection failure
12804
12805         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12806         to create watches up front and simply enable/disable them as
12807         needed.
12808         (unix_connection_set): this can now fail on OOM
12809
12810         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12811         of enabling/disabling a watch or timeout.
12812
12813         * bus/loop.c (bus_loop_iterate): don't touch disabled
12814         watches/timeouts
12815
12816         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12817
12818 2003-03-15  Havoc Pennington  <hp@pobox.com>
12819
12820         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12821         write useful test code, after all that futzing around ;-)
12822
12823         Test does not yet pass because we can't handle OOM in
12824         _dbus_transport_messages_pending (basically,
12825         dbus_connection_preallocate_send() does not prealloc the write
12826         watch). To fix this, I think we need to add new stuff to
12827         set_watch_functions, namely a SetEnabled function so we can alloc
12828         the watch earlier, then enable it later.
12829
12830         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12831         dbus-memory.c to the convenience lib
12832
12833         * bus/test.c: rename some static functions to keep them clearly
12834         distinct from stuff in connection.c. Handle client disconnection.
12835
12836 2003-03-14  Havoc Pennington  <hp@pobox.com>
12837
12838         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12839         transport, tests more of the real codepath. Set up clients
12840         with bus_setup_debug_client.
12841
12842         * bus/test.c (bus_setup_debug_client): function to set up debug
12843         "clients" on the main loop
12844
12845         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12846         support
12847
12848         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12849         server type
12850
12851         * dbus/dbus-server-debug.c: support a debug server based on pipes
12852
12853         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12854         (_dbus_close): new function
12855
12856         * configure.in: check for socketpair
12857
12858 2003-03-14  Havoc Pennington  <hp@redhat.com>
12859
12860         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12861         cheesy hack
12862
12863         * dbus/dbus-transport-debug.c: rework this a good bit to be
12864         less complicated. hopefully still works.
12865
12866         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12867         manually
12868
12869         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12870         after running it
12871
12872         * dbus/dbus-message.c (dbus_message_copy): rename from
12873         dbus_message_new_from_message, fix it up to copy
12874         all the message fields, add test case
12875
12876         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12877         not quite passing yet
12878
12879 2003-03-14  Havoc Pennington  <hp@pobox.com>
12880
12881         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12882         until no work remains" in test code. (the large diff here
12883         is just code movement, no actual changes)
12884
12885         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12886         1, no point waiting around for test code.
12887         (_dbus_server_debug_accept_transport): unref the timeout
12888         after adding it (right?)
12889
12890         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12891
12892 2003-03-13  Havoc Pennington  <hp@redhat.com>
12893
12894         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12895         out of memory
12896
12897         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12898         of memory
12899
12900         * dbus/dbus-connection.h: Make AddWatchFunction and
12901         AddTimeoutFunction return a bool so they can fail on out-of-memory
12902
12903         * bus/bus.c (bus_context_new): set up timeout handlers
12904
12905         * bus/connection.c (bus_connections_setup_connection): set up
12906         timeout handlers
12907
12908         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12909         can fail
12910
12911         * bus/bus.c (bus_context_new): adapt to changes
12912
12913         * bus/connection.c: adapt to changes
12914
12915         * test/watch.c: adapt to DBusWatch changes
12916
12917         * bus/dispatch.c (bus_dispatch_test): started adding this but
12918         didn't finish
12919
12920 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12921
12922         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12923
12924 2003-03-13  Havoc Pennington  <hp@pobox.com>
12925
12926         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12927         set up a test framework as for the library
12928
12929 2003-03-12  Havoc Pennington  <hp@pobox.com>
12930
12931         Throughout: purge global variables, introduce BusActivation,
12932         BusConnections, BusRegistry, etc. objects instead.
12933
12934         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12935         message bus object
12936
12937         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12938         going to redo this a bit differently I think
12939
12940 2003-03-12  Havoc Pennington  <hp@redhat.com>
12941
12942         Mega-patch that gets the message bus daemon initially handling
12943         out-of-memory. Work still needed. Also lots of random
12944         moving stuff to DBusError instead of ResultCode.
12945
12946         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12947
12948         * dbus/dbus-connection.c
12949         (dbus_connection_send_with_reply_and_block): use DBusError
12950
12951         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12952         DBusResultCode
12953
12954         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12955         code here, as the only failure possible is OOM.
12956
12957         * bus/connection.c (bus_connection_disconnect):
12958         rename bus_connection_disconnected as it's a notification only
12959
12960         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12961         "name" on get_args failure, should be done by get_args;
12962         don't disconnect client for bad args, just return an error.
12963         (bus_driver_handle_service_exists): ditto
12964
12965         * bus/services.c (bus_services_list): NULL-terminate returned array
12966
12967         * bus/driver.c (bus_driver_send_service_lost)
12968         (bus_driver_send_service_acquired): send messages from driver to a
12969         specific client to the client's unique name, not to the broadcast
12970         service.
12971
12972         * dbus/dbus-message.c (decode_header_data): reject messages that
12973         contain no name field
12974         (_dbus_message_get_client_serial): rename to
12975         dbus_message_get_serial and make public
12976         (_dbus_message_set_serial): rename from set_client_serial
12977         (_dbus_message_set_reply_serial): make public
12978         (_dbus_message_get_reply_serial): make public
12979
12980         * bus/connection.c (bus_connection_foreach): allow stopping
12981         iteration by returning FALSE from foreach function.
12982
12983         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12984         (dbus_connection_free_preallocated_send)
12985         (dbus_connection_preallocate_send): new API for sending a message
12986         without possibility of malloc failure.
12987         (dbus_connection_send_message): rename to just
12988         dbus_connection_send (and same for whole function family)
12989
12990         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12991
12992         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12993
12994         * bus/activation.c: handle/return errors
12995
12996         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12997
12998         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12999         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
13000         (_dbus_result_from_errno): move to this file
13001
13002 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
13003
13004         * dbus/dbus-marshal.c:
13005         (_dbus_marshal_set_string):
13006         Take a length argument so we can marshal the correct string
13007         length.
13008
13009         (_dbus_marshal_dict), (_dbus_demarshal_dict),
13010         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
13011         (_dbus_marshal_test):
13012         * dbus/dbus-marshal.h:
13013         Add support for marshalling and demarshalling dicts.
13014
13015         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13016         Add support for TYPE DICT.
13017
13018         * dbus/dbus-message.c: (set_string_field):
13019         Adjust header padding.
13020
13021         (dbus_message_append_args_valist), (dbus_message_append_dict),
13022         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
13023         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
13024         (check_message_handling), (check_have_valid_message):
13025         * dbus/dbus-message.h:
13026         Add functions for setting and getting dicts.
13027
13028         * dbus/dbus-protocol.h:
13029         Add DBUS_TYPE_DICT.
13030
13031         * dbus/dbus.h:
13032         Add dbus-dict.h
13033
13034         * doc/dbus-specification.sgml:
13035         Add information about how dicts are marshalled.
13036
13037         * test/data/invalid-messages/dict-with-nil-value.message:
13038         * test/data/invalid-messages/too-short-dict.message:
13039         * test/data/valid-messages/dict-simple.message:
13040         * test/data/valid-messages/dict.message:
13041         Add sample messages containing dicts.
13042
13043 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
13044
13045         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
13046
13047 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13048
13049         * dbus/Makefile.am:
13050         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13051         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
13052         (dbus_dict_set_int32), (dbus_dict_set_uint32),
13053         (dbus_dict_set_double), (dbus_dict_set_string),
13054         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
13055         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
13056         (dbus_dict_set_string_array), (_dbus_dict_test):
13057         * dbus/dbus-dict.h:
13058         Fix according to comments from Havoc.
13059
13060 2003-03-06  Michael Meeks  <michael@server.home>
13061
13062         * configure.in: if we don't have kde-config, disable have_qt.
13063
13064 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
13065
13066         * dbus/Makefile.am:
13067         Add dbus-dict.[ch]
13068
13069         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
13070         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
13071         (dbus_dict_remove), (dbus_dict_get_value_type),
13072         (dbus_dict_get_keys), (dbus_dict_put_boolean),
13073         (dbus_dict_put_int32), (dbus_dict_put_uint32),
13074         (dbus_dict_put_double), (dbus_dict_put_string),
13075         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
13076         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
13077         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
13078         (dbus_dict_get_int32), (dbus_dict_get_uint32),
13079         (dbus_dict_get_double), (dbus_dict_get_string),
13080         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
13081         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
13082         (dbus_dict_get_string_array), (_dbus_dict_test):
13083         * dbus/dbus-dict.h:
13084         Add DBusDict implementation
13085
13086         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
13087         * dbus/dbus-test.h:
13088         Add _dbus_dict_test
13089
13090 2003-03-04  Havoc Pennington  <hp@pobox.com>
13091
13092         * test/data/auth/*: adapt to changes
13093
13094         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
13095         USERID_BASE64 and change USERNAME_BASE64 to put in username not
13096         userid
13097
13098         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
13099         more stuff from being in a context name, to make the protocol
13100         simpler to deal with
13101
13102         * dbus/dbus-errors.c (dbus_error_has_name): new function
13103         (dbus_error_is_set): new function
13104
13105         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
13106         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
13107
13108         * dbus/dbus-connection.c (dbus_connection_flush): also read
13109         messages during a flush operation
13110
13111         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
13112
13113 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13114
13115         * configure.in: Check for gethostbyname on Solaris.
13116
13117         * dbus/dbus-transport.c: (_dbus_transport_open):
13118         Remove duplicate "tcp" entry.
13119
13120         * doc/dbus-specification.sgml:
13121         Clarify some things.
13122
13123 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13124
13125         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
13126         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
13127         (_dbus_keyring_test):
13128         * dbus/dbus-md5.c: (_dbus_md5_compute):
13129         * dbus/dbus-sha.c: (_dbus_sha_compute):
13130         Plug memory leaks.
13131
13132 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
13133
13134         * README: Add some things.
13135
13136 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
13137
13138         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
13139         after case DBUS_TYPE_BOOELAN.
13140
13141 2003-03-02  Havoc Pennington  <hp@pobox.com>
13142
13143         * test/break-loader.c (randomly_set_extreme_ints): add test that
13144         sets really huge and small integers
13145
13146         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
13147         that length of boolean array fits in the string, and that
13148         string has room for boolean value in single-bool case.
13149
13150         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
13151         optional value to "ALIGN" command which is what to fill the
13152         alignment with.
13153
13154         * test/data/valid-messages/no-padding.message: add regression
13155         test for the message padding problem
13156
13157 2003-03-02  Havoc Pennington  <hp@pobox.com>
13158
13159         * dbus/dbus-message.c (decode_header_data): fix to always init
13160         message_padding, from Benjamin Dauvergne
13161
13162 2003-03-02  Havoc Pennington  <hp@pobox.com>
13163
13164         * configure.in: 0.5
13165
13166         * NEWS: Update.
13167
13168 2003-03-01  Joe Shaw  <joe@assbarn.com>
13169
13170         * configure.in: Check for "struct cmsgcred" and try to access its
13171         members for BSD-like unices.
13172
13173         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
13174         _dbus_read_credentials_unix_socket().
13175         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
13176         read() for reading the credential byte off the unix socket.  Use
13177         struct cmsgcred on systems that support it.
13178
13179 2003-02-27  Alexander Larsson  <alexl@redhat.com>
13180
13181         * glib/Makefile.am:
13182         * configure.in:
13183         Make gthreads-2.0 dependency optional. Don't build thread test if
13184         its not found.
13185
13186 2003-02-27  Havoc Pennington  <hp@pobox.com>
13187
13188         * dbus/dbus-connection.c
13189         (dbus_connection_send_message_with_reply_and_block): fix doh!
13190         doh! doh! bug that resulted in never removing a reply from the
13191         queue, no wonder we called get_reply_serial so much ;-)
13192
13193         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
13194         and client serial instead of demarshaling them every time
13195
13196 2003-02-27  Havoc Pennington  <hp@pobox.com>
13197
13198         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
13199         more inlined, using dbus-string-private.h, speeds things up
13200         substantially
13201
13202         * dbus/dbus-string.c (_dbus_string_free): apply align offset
13203         when freeing the string
13204         (_dbus_string_steal_data): fix for align offset
13205         (undo_alignment): new function
13206
13207 2003-02-26  Havoc Pennington  <hp@redhat.com>
13208
13209         All kinds of audit fixes from Owen, plus initial attempt to
13210         handle unaligned memory returned from malloc.
13211
13212         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
13213         leave room for align_offset and nul byte
13214         (fixup_alignment): function to track an align_offset and
13215         ensure real->str is aligned
13216         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
13217         to allow a nul byte plus align offset
13218         (_dbus_string_lock): fix overflow issue
13219         (_dbus_string_init_const_len): add assertions on sanity of len,
13220         assign allocated to be ALLOCATION_PADDING larger than len
13221         (set_length): fixup the overflow handling
13222         (_dbus_string_get_data_len): fix overflow in assertion
13223         (open_gap): detect overflow in size of gap to be opened
13224         (_dbus_string_lengthen): add overflow check
13225         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
13226         (_dbus_string_append): add overflow check
13227         (_dbus_string_append_unichar): overflow
13228         (_dbus_string_delete): fix overflow in assertion
13229         (_dbus_string_copy_len): overflow in assertion
13230         (_dbus_string_replace_len): overflows in assertions
13231         (_dbus_string_find): change to implement in terms of
13232         _dbus_string_find_to
13233         (_dbus_string_find_to): assorted fixage
13234         (_dbus_string_equal_c_str): assert c_str != NULL,
13235         fix logic so the function works
13236         (_dbus_string_ends_with_c_str): fix overflow thingy
13237         (_dbus_string_base64_encode): overflow fix
13238         (_dbus_string_validate_ascii): overflow
13239         (_dbus_string_validate_nul): overflow
13240
13241 2003-02-26  Havoc Pennington  <hp@redhat.com>
13242
13243         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
13244
13245 2003-02-26  Alexander Larsson  <alexl@redhat.com>
13246
13247         * configure.in:
13248         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
13249
13250         * dbus/dbus-connection.c:
13251         * dbus/dbus-connection.h:
13252         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13253         Add dbus_connection_set_wakeup_main_function and use it when queueing
13254         incoming and outgoing messages.
13255
13256
13257         * dbus/dbus-dataslot.c:
13258         Threadsafe usage of DBusDataSlotAllocator
13259
13260         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13261         dbus_new can fail.
13262
13263         * dbus/dbus-server-unix.c:
13264         Add todo comment
13265
13266         * glib/dbus-gmain.c:
13267         Implement the new wakeup functions for glib.
13268
13269         * glib/Makefile.am:
13270         * glib/test-thread-client.c:
13271         * glib/test-thread-server.c:
13272         * glib/test-thread.h:
13273         Initial cut at some thread test code. Not really done yet.
13274
13275 2003-02-26  Havoc Pennington  <hp@pobox.com>
13276
13277         * dbus/dbus-connection.c
13278         (dbus_connection_send_message_with_reply_and_block): fix crash
13279         where we ref'd the outgoing message instead of the returned reply
13280
13281         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13282         at the end of this function, so if we didn't need to read for
13283         authentication, we reinstall it for receiving messages
13284
13285         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13286         a NULL sender for peer-to-peer case
13287
13288         * dbus/dbus-transport-unix.c (check_read_watch): handle
13289         !authenticated case correctly
13290
13291         * glib/dbus-gmain.c: add support for DBusServer
13292
13293         * dbus/dbus-server.c: add data slot support
13294
13295         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13296         return values and handle errors
13297
13298         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13299         DBusConnection
13300
13301         * Doxyfile.in (INPUT): add glib subdir
13302
13303         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13304         setup_with_g_main instead of hookup_with_g_main; write docs
13305
13306 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13307
13308         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13309         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13310         * dbus/dbus-message.c: (dbus_message_append_boolean),
13311         (dbus_message_append_boolean_array),
13312         (dbus_message_get_args_valist), (_dbus_message_test):
13313         * dbus/dbus-message.h:
13314         * doc/dbus-specification.sgml:
13315         Various fixes as pointed out by Havoc.
13316
13317         * test/data/invalid-messages/bad-boolean-array.message:
13318         * test/data/invalid-messages/bad-boolean.message:
13319         Add invalid boolean value test cases.
13320
13321 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13322
13323         * dbus/dbus-internals.c: (_dbus_type_to_string):
13324         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13325         (_dbus_marshal_validate_arg):
13326         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13327         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13328         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13329         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13330         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13331         (dbus_message_iter_get_double),
13332         (dbus_message_iter_get_boolean_array), (message_iter_test):
13333         * dbus/dbus-message.h:
13334         * dbus/dbus-protocol.h:
13335         * doc/dbus-specification.sgml:
13336         * test/data/valid-messages/lots-of-arguments.message:
13337         Add support for boolean and boolean array types.
13338
13339 2003-02-23  Havoc Pennington  <hp@pobox.com>
13340
13341         * dbus/dbus-keyring.c: finish most of this implementation and
13342         simple unit test
13343
13344         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13345         these barf if the error isn't cleared to NULL
13346
13347         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13348         (_dbus_create_directory): new function
13349
13350         * dbus/dbus-errors.c (dbus_set_error): fix warning
13351
13352         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13353         (_dbus_string_hex_decode): new function
13354         (test_hex_roundtrip): test code
13355
13356         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13357
13358         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13359
13360         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13361         the save-to-temp/rename trick to atomically write the new file
13362         (_dbus_string_parse_uint): new function
13363
13364 2003-02-22  Havoc Pennington  <hp@pobox.com>
13365
13366         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13367
13368 2003-02-22  Havoc Pennington  <hp@pobox.com>
13369
13370         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13371         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13372
13373         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13374
13375         * dbus/test/data/sha-1: add US government test suite for SHA-1
13376
13377 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13378
13379         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13380         Make string arrays NULL-terminated.
13381
13382         * dbus/dbus-memory.c: (dbus_free_string_array):
13383         * dbus/dbus-memory.h:
13384         New function for freeing NULL-terminated string arrays.
13385
13386         * dbus/dbus-message-builder.c: (append_quoted_string),
13387         (_dbus_message_data_load):
13388         Add support for array types.
13389
13390         * dbus/dbus-message.c: (check_message_handling):
13391         Add more types as test cases.
13392
13393         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13394         (_dbus_string_parse_double):
13395         Add the start offset to the end offset.
13396
13397         * test/data/valid-messages/lots-of-arguments.message:
13398         New test message with lots of arguments.
13399
13400 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13401
13402         * dbus/dbus-message.c: (dbus_message_append_nil),
13403         (dbus_message_append_int32), (dbus_message_append_uint32),
13404         (dbus_message_append_double), (dbus_message_append_string),
13405         (dbus_message_append_int32_array),
13406         (dbus_message_append_uint32_array),
13407         (dbus_message_append_double_array),
13408         (dbus_message_append_byte_array),
13409         (dbus_message_append_string_array):
13410         Fix all out-of-memory handling in these functions.
13411
13412 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13413
13414         * dbus/dbus-message.c: (dbus_message_append_nil):
13415         Fix a silly.
13416
13417 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13418
13419         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13420         (dbus_message_append_nil), (dbus_message_append_int32_array),
13421         (dbus_message_append_uint32_array),
13422         (dbus_message_append_double_array),
13423         (dbus_message_append_byte_array),
13424         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13425         (dbus_message_iter_get_int32_array),
13426         (dbus_message_iter_get_uint32_array),
13427         (dbus_message_iter_get_double_array),
13428         (dbus_message_iter_get_byte_array),
13429         (dbus_message_iter_get_string_array):
13430
13431         * dbus/dbus-message.h:
13432         Add functions for appending and getting arrays.
13433
13434 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13435
13436         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13437         element size at least 8 bytes, fixes mempool tests on
13438         64-bit machines.
13439
13440 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13441
13442         * dbus/dbus-transport-unix.c (unix_do_iteration):
13443         Unlock the connection mutex during a blocking select call.
13444         Add todo about how we need a way to wake up the select.
13445
13446         * dbus/dbus-connection-internal.h:
13447         * dbus/dbus-connection.c:
13448         Add _dbus_connection_lock and _dbus_connection_unlock.
13449
13450 2003-02-19  Havoc Pennington  <hp@pobox.com>
13451
13452         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13453         Doxyfile.in, not Doxyfile
13454
13455         * dbus/dbus-keyring.c: do some hacking on this
13456
13457         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13458
13459         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13460         dbus_error_init
13461         (dbus_set_error): remove dbus_error_init, check for message ==
13462         NULL *before* we sprintf into it, and add @todo about including
13463         system headers in this file
13464
13465         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13466
13467         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13468
13469         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13470         get various bits of user information based on either username
13471         or user ID
13472         (_dbus_homedir_from_username): new function
13473
13474 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13475
13476         * configure.in:
13477         Add check for nonposix getpwnam_r
13478
13479         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13480         Align the pool element size to a sizeof (void *) boundary.
13481
13482         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13483         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13484         General Solaris fixes.
13485
13486         * test/data/valid-messages/simplest-manual.message:
13487         Explicitly state that we want little-endian packing.
13488
13489 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13490
13491         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13492
13493         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13494         Added to create a transport connecting using a tcp/ip socket.
13495
13496         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13497         to a tcp socket at given host and port.
13498         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13499         hostname and port.
13500
13501         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13502
13503         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13504         Added to create a server listening on a TCP/IP socket.
13505
13506 2003-02-19  Havoc Pennington  <hp@pobox.com>
13507
13508         Throughout: mop up all the Doxygen warnings and undocumented
13509         stuff.
13510
13511         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13512         to search any paths.
13513
13514         * dbus/dbus-threads.c: move global mutex initializers to
13515         dbus-internals.h, multiple prototypes was confusing doxygen
13516         besides being kind of ugly
13517
13518         * Doxyfile (PREDEFINED): have Doxygen define
13519         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13520         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13521         (do not abuse the feature! it's for stuff like the autogenerated
13522         macros in dbus-md5.c, not just for things you don't feel like
13523         documenting...)
13524
13525 2003-02-18  Havoc Pennington  <hp@pobox.com>
13526
13527         * dbus/dbus-string.c (_dbus_string_zero): new function
13528
13529         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13530         wrap it in some dbus-friendly API
13531
13532         * dbus/dbus-types.h: add 16-bit types
13533
13534 2003-02-18  Joe Shaw  <joe@assbarn.com>
13535
13536         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13537         credentials from our currently running process.
13538         (get_word): Fix a buglet where we were copying the entire length
13539         instead of relative to our position.
13540
13541         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13542         keys on the stack... it's 640k of data.
13543
13544         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13545         read the credentials byte off the socket, even if we don't have
13546         SO_PEERCRED.
13547         (_dbus_poll): Implement poll() using select() for systems which
13548         don't have it.
13549
13550         * glib/test-dbus-glib.c (main): Print out an error if no
13551         parameters are given.
13552
13553         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13554         can fallback to a secondary auth mechanism if the first fails.
13555
13556 2003-02-18  Havoc Pennington  <hp@pobox.com>
13557
13558         * AUTHORS: add Alex
13559
13560 2003-02-17  Havoc Pennington  <hp@pobox.com>
13561
13562         * doc/dbus-specification.sgml: lots of cosmetic
13563         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13564         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13565         s/server/bus/ (except in authentication section). Add a section
13566         "Message Bus Message Routing"
13567
13568 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13569
13570         Release 0.4
13571
13572         * NEWS: Update
13573
13574 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13575
13576         * doc/dbus-specification.sgml:
13577         Specification updates.
13578
13579 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13580
13581         * bus/activation.c: (bus_activation_init), (child_setup),
13582         (bus_activation_activate_service):
13583         * bus/activation.h:
13584         * bus/main.c: (main):
13585         Set DBUS_ADDRESS environment variable.
13586
13587         * dbus/dbus-errors.c: (dbus_set_error):
13588         Don't use va_copy since that's a C99 feature.
13589
13590         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13591         (_dbus_spawn_async):
13592         * dbus/dbus-sysdeps.h:
13593         Add child_setup_func to _dbus_spawn_async.
13594
13595         * doc/dbus-specification.sgml:
13596         Update specification.
13597
13598         * test/spawn-test.c: (setup_func), (main):
13599         Fix test.
13600
13601 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13602
13603         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13604         Added todo.
13605
13606 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13607
13608         * doc/.cvsignore:
13609         * doc/Makefile.am:
13610         * doc/dbus-test-plan.sgml:
13611         Add test plan document.
13612
13613         * test/Makefile.am:
13614         Fix distcheck.
13615
13616 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13617
13618         * dbus/dbus-message.c: (decode_header_data),
13619         (_dbus_message_loader_return_buffer):
13620         Set the header padding amount when loading a message.
13621
13622 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13623
13624         * bus/dispatch.c: (send_one_message):
13625         Only send broadcast messages to registered connections.
13626
13627         * dbus/dbus-message.c: (dbus_message_name_is):
13628         * dbus/dbus-message.h:
13629         New convenience function.
13630
13631         * dbus/dbus-transport-debug.c: (do_reading):
13632         Only dispatch one message per run.
13633
13634         * test/Makefile.am:
13635         * test/bus-test.c: (new_connection_callback), (die),
13636         (test_hello_client1_handler), (test_hello_client2_handler),
13637         (test_hello_replies), (main):
13638
13639         * test/bus-test-loop.[ch]:
13640         Add these.
13641
13642 2003-02-16  Havoc Pennington  <hp@pobox.com>
13643
13644         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13645         backward conditional
13646
13647 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13648
13649         * dbus/dbus-connection.c:
13650         Implement sent_message_with_reply. (with_reply_and block is still
13651         busted).
13652         Made dispatch_message not lose message if OOM.
13653
13654         * dbus/dbus-errors.h:
13655         Add NoReply error (for reply timeouts).
13656
13657 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13658
13659         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13660         Actually free keys and values when destroying hashtable.
13661
13662 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13663
13664         * dbus/dbus-auth.c: (client_try_next_mechanism):
13665         Plug a leak.
13666
13667         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13668         Return TRUE if there's no thread implementation around.
13669
13670         * glib/dbus-gmain.c: (free_source),
13671         (dbus_connection_hookup_with_g_main):
13672         Make sure to remove the GSource when the connection is finalized.
13673
13674 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13675
13676         * bus/dispatch.c: (bus_dispatch_message_handler):
13677         * dbus/dbus-errors.h:
13678         Return an error if someone tries to send a message to a service
13679         that doesn't exist.
13680
13681 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13682
13683         * bus/activation.c: (load_directory), (bus_activation_init),
13684         (bus_activation_activate_service):
13685         * bus/activation.h:
13686         * bus/driver.c:
13687         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13688         More work on the activation handling.
13689
13690         * dbus/dbus-errors.h:
13691         Add some error messages
13692
13693         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13694         * dbus/dbus-message.h:
13695         New function that creates an error message.
13696
13697         * dbus/dbus-protocol.h:
13698         Add ACTIVATE_SERVER message.
13699
13700         * dbus/dbus-server-unix.c: (unix_handle_watch),
13701         (_dbus_server_new_for_domain_socket):
13702         Call _dbus_fd_set_close_on_exec.
13703
13704         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13705         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13706         (_dbus_fd_set_close_on_exec):
13707         * dbus/dbus-sysdeps.h:
13708         Add _dbus_fd_set_close_on exec function. Also add function that checks
13709         that all open fds are set to close-on-exec and warns otherwise.
13710
13711         * dbus/dbus-transport-unix.c:
13712         (_dbus_transport_new_for_domain_socket):
13713         Call _dbus_fd_set_close_on_exec.
13714
13715 2003-02-16  Havoc Pennington  <hp@pobox.com>
13716
13717         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13718         allow people to avoid setting SIGPIPE to SIG_IGN
13719         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13720         we've been asked not to
13721
13722 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13723
13724         * dbus/dbus-list.c: (_dbus_list_append_link),
13725         (_dbus_list_prepend_link):
13726         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13727         (dbus_realloc):
13728         Warning fixes.
13729
13730 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13731
13732         * bus/Makefile.am:
13733         * bus/activation.c: (bus_activation_entry_free),
13734         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13735         * bus/activation.h:
13736         * bus/main.c: (main):
13737         Add simple activation support, doesn't work yet though.
13738
13739 2003-02-15   Zack Rusin  <zack@kde.org>
13740
13741         * qt/dbus-qthread.cpp:  small casting fix
13742
13743 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13744
13745         * dbus/dbus-errors.c: (dbus_set_error):
13746         * dbus/dbus-errors.h:
13747         Add a few errors and make dbus_set_error void.
13748
13749         * dbus/dbus-sysdeps.c:
13750         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13751         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13752         * dbus/dbus-sysdeps.h:
13753         Add _dbus_spawn_async.
13754
13755         * test/spawn-test.c: (main):
13756         Test for _dbus_spawn_async.
13757
13758 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13759
13760         * dbus/dbus-internals.h:
13761         Fix build without tests.
13762
13763         * dbus/dbus-list.c: (alloc_link):
13764         Fix a segfault when a malloc fails.
13765
13766         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13767         (dbus_malloc0), (dbus_realloc):
13768         Add support for malloc debugging.
13769
13770 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13771
13772         * dbus/dbus-threads.c:
13773         * dbus/dbus-threads.h:
13774         Add condvars. Remove static mutext from API.
13775         Implement static mutexes by initializing them from threads_init.
13776
13777         * glib/dbus-gthread.c:
13778         * qt/dbus-qthread.cpp:
13779         Update with the thread api changes.
13780
13781
13782         * dbus/dbus-list.c:
13783         * dbus/dbus-list.h:
13784         Turn StaticMutex into normal mutex + init function.
13785         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13786         _dbus_list_append_link, _dbus_list_prepend_link
13787
13788
13789         * dbus/dbus-sysdeps.c:
13790         * dbus/dbus-sysdeps.h:
13791         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13792         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13793
13794         * dbus/dbus-protocol.h:
13795         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13796
13797         * dbus/dbus-message.c:
13798         Make ref/unref atomic.
13799         Fix some docs.
13800
13801         * dbus/dbus-connection-internal.h:
13802         * dbus/dbus-connection.c:
13803         * dbus/dbus-connection.h:
13804         Make threadsafe.
13805         Change _peek to _borrow,_return & _steal_borrowed.
13806         Change disconnect callback to event.
13807         Make dbus_connection_dispatch_messages reentrant.
13808
13809         * dbus/dbus-transport.c:
13810         Don't ref the connection on calls to the transport
13811         implementation.
13812
13813         * dbus/dbus-message-handler.c:
13814         Make threadsafe.
13815
13816         * glib/dbus-gmain.c:
13817         Don't use peek_message anymore
13818
13819         * test/Makefile.am:
13820         * test/debug-thread.c:
13821         * test/debug-thread.h:
13822         Simple thread implementation that asserts() on deadlocks in
13823         single-threaded code.
13824
13825         * test/bus-test.c:
13826         (main) Call debug_threads_init.
13827
13828         * test/watch.c:
13829         Use disconnect message instead of disconnect callback.
13830
13831         * bus/connection.c:
13832         * bus/connection.h:
13833         Don't call dbus_connection_set_disconnect_function. Instead export
13834         bus_connection_disconnect.
13835
13836         * bus/dispatch.c:
13837         Call bus_connection_disconnect when we get a disconnected message.
13838
13839 2003-02-15  Havoc Pennington  <hp@pobox.com>
13840
13841         * dbus/dbus-message.c (dbus_message_new): fool around with the
13842         docs
13843
13844 2003-02-14  Havoc Pennington  <hp@pobox.com>
13845
13846         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13847
13848         * dbus/dbus-memory.c: fail if the debug functions indicate we
13849         should
13850
13851         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13852         (_dbus_decrement_fail_alloc_counter): debug functions to
13853         simulate memory allocation failures
13854
13855 2003-02-14  Havoc Pennington  <hp@pobox.com>
13856
13857         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13858         to DBusError
13859
13860 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13861
13862         * bus/driver.c: (bus_driver_handle_hello):
13863         * bus/driver.h:
13864         * bus/services.c: (bus_service_lookup):
13865         Reorder message sending so we get a more sane order.
13866
13867         * test/bus-test.c: (message_handler):
13868         Fix tyop.
13869
13870 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13871
13872         * bus/driver.c: (bus_driver_send_service_deleted),
13873         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13874         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13875         (bus_driver_send_welcome_message),
13876         (bus_driver_handle_list_services),
13877         (bus_driver_handle_acquire_service),
13878         (bus_driver_handle_service_exists):
13879         * dbus/dbus-bus.c: (dbus_bus_register_client),
13880         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13881         * dbus/dbus-errors.c: (dbus_result_to_string):
13882         * dbus/dbus-errors.h:
13883         * dbus/dbus-message.c: (dbus_message_append_args),
13884         (dbus_message_append_args_valist), (dbus_message_get_args),
13885         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13886         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13887         (dbus_message_iter_get_byte_array),
13888         (dbus_message_iter_get_string_array), (message_iter_test),
13889         (check_message_handling), (_dbus_message_test):
13890         * dbus/dbus-message.h:
13891         * test/bus-test.c: (main):
13892         Change fields to arguments in messages, so that they won't be
13893         confused with header fields.
13894
13895         * glib/test-dbus-glib.c: (main):
13896         Remove append_fields from hello message.
13897
13898 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13899
13900         * dbus/dbus-errors.c:
13901         * dbus/dbus-message.c:
13902         * dbus/dbus-string.c:
13903         Documentation fixes.
13904
13905 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13906
13907         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13908         (remove_timeout):
13909         Implement support for timeouts in dbus-glib.
13910
13911 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13912
13913         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13914         * dbus/dbus-message.c: (process_test_subdir):
13915         * test/break-loader.c: (find_breaks_based_on):
13916         Plug some memory leaks.
13917
13918 2003-02-13  Richard Hult  <rhult@codefactory.se>
13919
13920         * bus/main.c: Fix build.
13921
13922         * dbus/dbus-errors.h:
13923         * dbus/dbus-errors.c: Fix copyright for Anders.
13924
13925 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13926
13927         * bus/Makefile.am:
13928         Add utils.[ch]
13929
13930         * bus/connection.c: (bus_connection_foreach):
13931         Fix a warning.
13932
13933         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13934         (unescape_string), (new_section), (parse_section_start),
13935         (parse_key_value), (report_error), (bus_desktop_file_load),
13936         (bus_desktop_file_get_string):
13937         * bus/desktop-file.h:
13938         Use DBusError for error reporting.
13939
13940         * bus/dispatch.c: (send_one_message),
13941         (bus_dispatch_message_handler):
13942         * bus/driver.c: (bus_driver_send_service_deleted),
13943         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13944         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13945         (bus_driver_send_welcome_message),
13946         (bus_driver_handle_list_services),
13947         (bus_driver_handle_acquire_service),
13948         (bus_driver_handle_service_exists):
13949         * bus/loop.c: (bus_loop_run):
13950         * bus/main.c:
13951         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13952
13953         * bus/utils.c: (bus_wait_for_memory):
13954         * bus/utils.h:
13955         New files with general utility functions.
13956
13957         * dbus/dbus-internals.h:
13958         Remove _DBUS_HANDLE_OOM.
13959
13960 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13961
13962         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13963         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13964         * dbus/dbus-errors.h:
13965         Add DBusError structure.
13966
13967 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13968
13969         * test/data/valid-messages/standard-acquire-service.message:
13970         * test/data/valid-messages/standard-hello.message:
13971         * test/data/valid-messages/standard-list-services.message:
13972         * test/data/valid-messages/standard-service-exists.message:
13973         Add some standard messages.
13974
13975 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13976
13977         * bus/driver.c: (bus_driver_send_welcome_message),
13978         (bus_driver_handle_list_services),
13979         (bus_driver_handle_acquire_service),
13980         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13981         Update for API changes in libdbus.
13982
13983         * dbus/dbus-message.c: (dbus_message_new_reply):
13984         * dbus/dbus-message.h:
13985         Remove the name argument. The spec states that replies shouldn't
13986         have a name.
13987
13988 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13989
13990         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13991         (report_error), (bus_desktop_file_load), (lookup_section),
13992         (lookup_line), (bus_desktop_file_get_raw),
13993         (bus_desktop_file_get_string):
13994         * bus/desktop-file.h:
13995         Some fixes, and new functions for getting a key value from a section.
13996
13997 2003-02-13  Havoc Pennington  <hp@pobox.com>
13998
13999         * test/data/auth/fail-after-n-attempts.auth-script: new test
14000
14001         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
14002         reject the client.
14003
14004 2003-02-13  Havoc Pennington  <hp@pobox.com>
14005
14006         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
14007         dbus_credentials_match were backward
14008
14009         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
14010         NO_CREDENTIALS and ROOT_CREDENTIALS
14011
14012         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
14013         into here. Never process more commands after we've reached an
14014         end state; store further data as unused bytes.
14015
14016         * test/data/auth/*: add more auth tests
14017
14018         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
14019         command to match exact string and EXPECT_UNUSED to match unused
14020         bytes
14021
14022         * test/Makefile.am (dist-hook): fix to dist all the test stuff
14023
14024 2003-02-12  Havoc Pennington  <hp@pobox.com>
14025
14026         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
14027         \r off of popped lines
14028
14029         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
14030         scripts
14031
14032         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
14033         SEND, append \r\n
14034
14035 2003-02-12  Havoc Pennington  <hp@pobox.com>
14036
14037         * dbus/Makefile.am: remove break-loader from the build, since it
14038         moved.
14039
14040         * configure.in: add --enable-gcov to turn on coverage profiling
14041         flags and disable optimization
14042
14043 2003-02-10  Havoc Pennington  <hp@pobox.com>
14044
14045         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
14046         initial cut at test framework for DBusAuth from laptop.
14047         Doesn't quite work yet but it compiles and I need to get
14048         it off the 266mhz laptop. ;-)
14049
14050         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
14051         fix a memleak in error case
14052
14053 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
14054
14055         * bus/Makefile.am:
14056         * bus/desktop-file.c:
14057         * bus/desktop-file.h:
14058         Add a desktop file parser.
14059
14060 2003-02-11  Zack Rusin  <zack@kde.org>
14061
14062         * qt/message.[h|cpp]: sample implementation
14063         of the KDE wrapper for DBusMessage
14064
14065 2003-02-09  Zack Rusin  <zack@kde.org>
14066
14067         * test/bus-test.c: make_it_compile
14068         * doc/dbus-specification.sgml: minimal semantic fix
14069
14070 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14071
14072         Release 0.3
14073
14074         * NEWS: Update
14075
14076 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
14077
14078         * dbus/Makefile.am:
14079         * dbus/dbus-break-loader.c:
14080         * test/Makefile.am:
14081         * test/break-loader.c:
14082         Move dbus-break-loader to test/ and rename it to break-loader.
14083
14084 2003-02-02  Havoc Pennington  <hp@pobox.com>
14085
14086         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
14087         for code to manage cookies in your home directory
14088
14089         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
14090
14091         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
14092         to authenticate, then disconnect the client.
14093
14094 2003-02-03  Alexander Larsson  <alexl@redhat.com>
14095
14096         * dbus/dbus-message.c (dbus_message_append_fields):
14097         Correct docs.
14098
14099 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14100
14101         * doc/dbus-specification.sgml:
14102         Update address format section.
14103
14104 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14105
14106         * test/Makefile.am:
14107         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
14108         (message_handler), (new_connection_callback), (loop_quit),
14109         (loop_run), (main):
14110         Add bus test.
14111
14112 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14113
14114         * bus/driver.c: (bus_driver_handle_service_exists):
14115         Simplify the code a bit.
14116
14117         * dbus/dbus-bus.c: (dbus_bus_service_exists):
14118         Fix a silly.
14119
14120 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14121
14122         * bus/Makefile.am:
14123         Add libdbus-daemon.la and link to it.
14124
14125 2003-02-01  James Willcox  <jwillcox@gnome.org>
14126
14127         * bus/driver.c: (bus_driver_handle_own_service):
14128         Actually include the service reply code in the message.
14129
14130 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14131
14132         * bus/driver.c: (bus_driver_handle_service_exists):
14133         Don't unref the incoming message.
14134
14135 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14136
14137         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
14138
14139 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
14140
14141         * dbus/dbus-server.c: (dbus_server_listen):
14142         * dbus/dbus-transport.c: (_dbus_transport_open):
14143         ifdef out the calls to the debug transport and server.
14144
14145 2003-02-02  Alexander Larsson  <alexl@redhat.com>
14146
14147         * dbus/dbus-watch.c (dbus_watch_get_flags):
14148         Add note in the docs that ERROR or HANGUP won't be returned
14149         and are assumed always on.
14150
14151         * glib/dbus-gmain.c (add_watch):
14152         Always add IO_ERR | IO_HUP
14153
14154         * dbus/dbus-message.h:
14155         Add semicolon after dbus_message_iter_get_string_array().
14156         Makes qt code build again
14157
14158 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
14159
14160         * bus/driver.c: (create_unique_client_name),
14161         (bus_driver_handle_hello):
14162         Don't take a name, just use a numeric id to identify
14163         each client.
14164
14165         * dbus/Makefile.am:
14166         * dbus/dbus-bus.c: (dbus_bus_register_client),
14167         (dbus_bus_acquire_service), (dbus_bus_service_exists):
14168         * dbus/dbus-bus.h:
14169         Add new convenience functions for communicating with the bus.
14170
14171         * dbus/dbus-message.h:
14172
14173         * dbus/dbus-protocol.h:
14174         Fix a typo.
14175
14176 2003-02-01  Alexander Larsson  <alexl@redhat.com>
14177
14178         * dbus/dbus-message.c (dbus_message_append_fields):
14179         Add some more doc comments.
14180
14181 2003-02-01  Havoc Pennington  <hp@pobox.com>
14182
14183         * dbus/dbus-break-loader.c (randomly_modify_length): change
14184         a 4-byte value in the message as if it were a length
14185
14186         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
14187         execute bit on saved files
14188
14189 2003-02-01  Havoc Pennington  <hp@pobox.com>
14190
14191         * dbus/dbus-break-loader.c (main): new program to find messages
14192         that break the loader.
14193
14194         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
14195         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
14196
14197         * dbus/dbus-string.c (_dbus_string_set_byte): new
14198
14199 2003-01-31  Havoc Pennington  <hp@pobox.com>
14200
14201         * dbus/dbus-message.c: refactor the test code to be more general,
14202         in preparation for writing a "randomly permute test cases to
14203         try to break the loader" program.
14204
14205 2003-01-31  Havoc Pennington  <hp@pobox.com>
14206
14207         * doc/dbus-specification.sgml: work on the specification
14208
14209         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
14210         the protocol version of the message.
14211
14212         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
14213         no longer specifies that.
14214         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
14215         1/2/3/4)
14216
14217         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
14218         "break" for DBUS_TYPE_NIL, remove @todo
14219
14220 2003-01-31  Havoc Pennington  <hp@pobox.com>
14221
14222         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
14223         just set_is_error/get_is_error as this is a commonly-used
14224         function, and write docs.
14225
14226 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
14227
14228         * dbus/dbus-address.c: (dbus_address_entry_free):
14229         Free key and value lists.
14230
14231         * dbus/dbus-internals.c: (_dbus_type_to_string):
14232         Add the types we didn't have.
14233
14234         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
14235         (_dbus_marshal_validate_arg):
14236         Add NIL types.
14237
14238         * dbus/dbus-message.c: (dbus_message_set_sender):
14239         Remove todo about being able to set sender to NULL.
14240
14241         (dbus_message_set_is_error_reply),
14242         (dbus_message_get_is_error_reply):
14243         * dbus/dbus-message.h:
14244         New functions.
14245
14246         * dbus/dbus-protocol.h:
14247         Add error reply flag.
14248
14249         * test/data/valid-messages/opposite-endian.message:
14250         Add NIL type to test.
14251
14252 2003-01-31  Havoc Pennington  <hp@pobox.com>
14253
14254         * doc/dbus-specification.sgml: fully specify the header.  Add
14255         flags and major protocol version, and change header/body len to
14256         unsigned.
14257
14258         * dbus/dbus-message-builder.c (append_saved_length): append length
14259         as uint32
14260
14261         * dbus/dbus-message.c (dbus_message_create_header): change header
14262         length and body length to unsigned. Add the new fields from the
14263         spec
14264         (_dbus_message_loader_return_buffer): unsigned header/body len
14265
14266 2003-01-30  Havoc Pennington  <hp@pobox.com>
14267
14268         * dbus/dbus-auth.c: rework to use only REJECTED, no
14269         MECHANISMS
14270
14271         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14272         use REJECTED, suggested by Mark McLoughlin
14273
14274 2003-01-30  Havoc Pennington  <hp@pobox.com>
14275
14276         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14277         a better way to report errors here. e.g.  "unix address lacks
14278         path" or something. also "no such file" when the path doesn't
14279         exist, etc.
14280
14281         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14282         leaking list nodes
14283         (dbus_parse_address): add @todo about documenting address format,
14284         and allowing , and ; to be escaped
14285
14286 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14287
14288         * dbus/Makefile.am:
14289         Add dbus-address.[ch]
14290
14291         * dbus/dbus-address.c: (dbus_address_entry_free),
14292         (dbus_address_entries_free), (create_entry),
14293         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14294         (dbus_parse_address), (_dbus_address_test):
14295         * dbus/dbus-address.h:
14296         New files for dealing with address parsing.
14297
14298         * dbus/dbus-connection.c:
14299         Document timeout functions.
14300
14301         * dbus/dbus-message.c:
14302         Document dbus_message_new_from_message.
14303
14304         * dbus/dbus-server-debug.c:
14305         Document.
14306
14307         * dbus/dbus-server.c: (dbus_server_listen):
14308         Parse address and use correct server implementation.
14309
14310         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14311         * dbus/dbus-string.h:
14312         New function with test.
14313
14314         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14315         * dbus/dbus-test.h:
14316         Add address tests.
14317
14318         * dbus/dbus-transport-debug.c:
14319         Document.
14320
14321         * dbus/dbus-transport.c: (_dbus_transport_open):
14322         Parse address and use correct transport implementation.
14323
14324 2003-01-30  Havoc Pennington  <hp@pobox.com>
14325
14326         * dbus/dbus-message.c: use message->byte_order instead of
14327         DBUS_COMPILER_BYTE_ORDER throughout.
14328         (dbus_message_create_header): pad header to align the
14329         start of the body of the message to 8-byte boundary
14330
14331         * dbus/dbus-marshal.h: make all the demarshalers take const
14332         DBusString arguments.
14333
14334         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14335         validate message args here, so we don't have to do slow validation
14336         later, and so we catch bad messages as they are incoming. Also add
14337         better checks on header_len and body_len. Also fill in
14338         message->byte_order
14339
14340         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14341         implemented properly)
14342         (_dbus_string_validate_nul): new function to check all-nul
14343
14344         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14345         get_arg_end_pos and remove all validation
14346         (_dbus_marshal_validate_arg): actually do validation here.
14347
14348 2003-01-29  Havoc Pennington  <hp@pobox.com>
14349
14350         * dbus/dbus-message.c (check_message_handling): fix assertion
14351         failure on set_client_serial
14352
14353 2003-01-28  Havoc Pennington  <hp@pobox.com>
14354
14355         * dbus/dbus-server-debug.c: Add doc section comments
14356
14357         * dbus/dbus-transport-debug.c: add doc section comments
14358
14359 2003-01-28  Havoc Pennington  <hp@redhat.com>
14360
14361         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14362         the reverse order from how I had it
14363         (_dbus_string_base64_encode): reverse encoding order. I was
14364         basically byteswapping everything during encoding.
14365
14366 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14367
14368         * dbus/dbus-connection-internal.h:
14369         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14370         (_dbus_connection_remove_timeout):
14371         Add functions for adding and removing timeouts.
14372
14373         * dbus/dbus-message.c: (dbus_message_new_from_message):
14374         Add new function that takes a message and creates an exact
14375         copy of it, but with the refcount set to 1.
14376         (check_message_handling):
14377         Fix build error.
14378
14379         * dbus/dbus-server-protected.h:
14380         * dbus/dbus-server.c: (_dbus_server_init_base),
14381         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14382         (dbus_server_set_timeout_functions):
14383         (_dbus_server_remove_timeout):
14384         New functions so that a server can add and remove timeouts.
14385
14386         (dbus_server_listen):
14387         Add commented out call to dbus_server_debug_new.
14388
14389         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14390         Actually set the handler, doh.
14391
14392         * dbus/dbus-transport.c: (_dbus_transport_open):
14393         Add commented out call to dbus_transport_debug_client_new.
14394
14395         * dbus/Makefile.am:
14396         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14397
14398 2003-01-28  Havoc Pennington  <hp@pobox.com>
14399
14400         * dbus/dbus-message.c (check_message_handling): function to check
14401         on the loaded message, iterates over it etc.
14402
14403 2003-01-28  Havoc Pennington  <hp@pobox.com>
14404
14405         * test/Makefile.am (dist-hook): fix make distdir
14406
14407         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14408
14409 2003-01-27  Havoc Pennington  <hp@pobox.com>
14410
14411         * dbus/dbus-mempool.c (time_for_size): replace printf with
14412         _dbus_verbose
14413
14414         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14415         empty lines; fix the SAVE_LENGTH stuff to be
14416         START_LENGTH/END_LENGTH so it actually works; couple other
14417         bugfixes
14418
14419         * test/Makefile.am (dist-hook): add dist-hook for .message files
14420
14421         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14422         can be constant or locked.
14423         (_dbus_string_free): allow freeing a const string as
14424         documented/intended
14425
14426         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14427
14428         * dbus/dbus-test-main.c (main): take an argument which is the
14429         directory containing test data
14430
14431         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14432         argument to this and load all the messages in test/data/
14433         checking that they can be loaded or not loaded as appropriate.
14434
14435 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14436
14437         * bus/dispatch.c: (bus_dispatch_message_handler):
14438         Dispatch messages sent to services.
14439
14440         * bus/driver.c: (bus_driver_send_service_deleted),
14441         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14442         (bus_driver_send_service_acquired):
14443         Add helper functions for sending service related messages.
14444
14445         (bus_driver_send_welcome_message):
14446         Send HELLO_REPLY instead of WELCOME.
14447
14448         (bus_driver_handle_list_services):
14449         Send LIST_SERVICES_REPLY instead of SERVICES.
14450
14451         (bus_driver_handle_own_service),
14452         (bus_driver_handle_service_exists):
14453         New message handlers.
14454
14455         (bus_driver_handle_message):
14456         Invoke new message handlers.
14457
14458         (bus_driver_remove_connection):
14459         Don't remove any services here since that's done automatically
14460         by bus_service_remove_owner now.
14461
14462         * bus/driver.h:
14463         New function signatures.
14464
14465         * bus/services.c: (bus_service_add_owner):
14466         Send ServiceAcquired message if we're the only primary owner.
14467
14468         (bus_service_remove_owner):
14469         Send ServiceAcquired/ServiceLost messages.
14470
14471         (bus_service_set_prohibit_replacement),
14472         (bus_service_get_prohibit_replacement):
14473         Functions for setting prohibit replacement.
14474
14475         (bus_service_has_owner):
14476         New function that checks if a connection is in the owner queue of
14477         a certain service.
14478
14479         * bus/services.h:
14480         Add new function signatures.
14481
14482         * dbus/dbus-list.c: (_dbus_list_test):
14483         Add tests for _dbus_list_remove_last and traversing the list backwards.
14484
14485         * dbus/dbus-list.h:
14486         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14487         go any further, so return NULL then.
14488
14489         * dbus/dbus-protocol.h:
14490         Add new messages, service flags and service replies.
14491
14492 2003-01-26  Havoc Pennington  <hp@pobox.com>
14493
14494         * dbus/dbus-message-builder.c: implement, completely untested.
14495
14496         * test/data/*: add data to be used in testing.
14497         ".message" files are our simple loadable text format.
14498         ".message-raw" will be binary dumps of messages.
14499
14500         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14501
14502 2003-01-26  Havoc Pennington  <hp@pobox.com>
14503
14504         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14505
14506         * dbus/dbus-errors.c (dbus_result_to_string): add
14507         file errors
14508
14509         * dbus/dbus-message-builder.c: new file, will contain code to load
14510         up messages from files. Not implemented yet.
14511
14512 2003-01-26  Havoc Pennington  <hp@pobox.com>
14513
14514         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14515         the sender by setting to NULL
14516
14517 2003-01-26  Havoc Pennington  <hp@pobox.com>
14518
14519         The unit tests pass, but otherwise untested.  If it breaks, the
14520         tests should have been better. ;-)
14521
14522         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14523         the connection.
14524
14525         * dbus/dbus-message.c: redo everything so we maintain
14526         message->header as the only copy of the various fields.
14527         This avoids the possibility of out-of-memory in some cases,
14528         for example dbus_message_lock() can't run out of memory anymore,
14529         and avoids extra copying. Figured I may as well go ahead and do
14530         this since it was busted for dbus_message_lock to not return
14531         failure on OOM, and dbus_message_write_header was totally
14532         unchecked for OOM. Also fixed some random other bugs.
14533
14534         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14535         that strings are nul-terminated. Also, end_pos can be equal
14536         to string length just not greater than, I think.
14537         (_dbus_marshal_set_int32): new function
14538         (_dbus_marshal_set_uint32): new function
14539         (_dbus_marshal_set_string): new function
14540
14541         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14542         a warning, init timeout_list to NULL
14543         (dbus_connection_send_message): don't use uninitialized variable
14544         "serial"
14545
14546         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14547
14548 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14549
14550         * bus/driver.c: (bus_driver_handle_hello),
14551         (bus_driver_send_welcome_message):
14552         Plug leaks
14553
14554 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14555
14556         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14557         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14558         (dbus_connection_unref):
14559         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14560         * dbus/dbus-message.c: (dbus_message_unref),
14561         Plug memory leaks.
14562
14563         (dbus_message_get_fields):
14564         Remove debugging printout.
14565
14566         (_dbus_message_loader_return_buffer):
14567         Don't store the header string.
14568
14569         (_dbus_message_test):
14570         Plug leaks.
14571
14572 2003-01-26  Richard Hult  <rhult@codefactory.se>
14573
14574         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14575         the file descriptor list, since it can change under us.
14576
14577 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14578
14579         * glib/dbus-gmain.c: (dbus_connection_prepare),
14580         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14581         (remove_watch), (dbus_connection_hookup_with_g_main):
14582         Rewrite the glib handling to use its own GSource instead of a
14583         GIOChannel so we can catch messages put in the queue while waiting
14584         for a reply.
14585
14586 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14587
14588         * bus/Makefile.am:
14589         * bus/connection.c: (connection_disconnect_handler),
14590         (connection_watch_callback), (bus_connection_setup):
14591         * bus/dispatch.c: (send_one_message),
14592         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14593         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14594         * bus/dispatch.h:
14595         * bus/driver.c: (bus_driver_send_service_deleted),
14596         (bus_driver_send_service_created), (bus_driver_handle_hello),
14597         (bus_driver_send_welcome_message),
14598         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14599         (bus_driver_handle_message):
14600         * bus/driver.h:
14601         Refactor code, put the message dispatching in its own file. Use
14602         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14603         is disconnected.
14604
14605 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14606
14607         * dbus/dbus-internals.h:
14608         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14609
14610         * dbus/dbus-message.c: (dbus_message_get_sender):
14611         * dbus/dbus-message.h:
14612         Implement dbus_message_get_sender.
14613
14614         * dbus/dbus-protocol.h:
14615         Add message and service defines.
14616
14617 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14618
14619         * dbus/dbus-connection.c: (dbus_connection_send_message):
14620         * dbus/dbus-message-internal.h:
14621         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14622         (dbus_message_write_header):
14623         Remove _dbus_messag_unlock and don't set the client serial on a
14624         message if one already exists.
14625
14626 2003-01-24  Havoc Pennington  <hp@pobox.com>
14627
14628         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14629         list_pool
14630
14631         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14632         on OOM
14633
14634 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14635
14636         * dbus/dbus-list.c: (alloc_link), (free_link):
14637         Use a memory pool for the links.
14638
14639 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14640
14641         * bus/connection.c: (bus_connection_foreach):
14642         * bus/connection.h:
14643         Add new bus_connection_foreach function.
14644
14645         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14646         Add function that broadcasts a message to all clients.
14647
14648         (bus_driver_send_service_created), (bus_driver_handle_hello),
14649         (bus_driver_send_welcome_message),
14650         (bus_driver_handle_list_services), (bus_driver_message_handler):
14651         Implement functions that take care of listing services, and notifying
14652         clients when new services are created.
14653
14654         * bus/services.c: (bus_services_list):
14655         * bus/services.h:
14656         Add new function that returns an array of strings with the currently
14657         registered services.
14658
14659         * glib/dbus-glib.h:
14660         * glib/dbus-gmain.c:
14661         Update copyright year.
14662
14663 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14664
14665         * dbus/dbus-connection.c: (dbus_connection_send_message):
14666         Unlock the message in case it was sent earlier.
14667
14668         (dbus_connection_send_message_with_reply_and_block):
14669         Remove the reply message from the list.
14670
14671         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14672         Set array_len and new_pos correctly.
14673
14674         (_dbus_marshal_test):
14675         Remove debug output.
14676
14677         * dbus/dbus-message-internal.h:
14678         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14679         New function that returns the reply serial.
14680
14681         (_dbus_message_unlock):
14682         New function that unlocks a message and resets its header.
14683
14684         (dbus_message_append_string_array),
14685         (dbus_message_get_fields_valist),
14686         (dbus_message_iter_get_field_type),
14687         (dbus_message_iter_get_string_array),
14688         (dbus_message_get_fields),
14689         (dbus_message_append_fields_valist):
14690         Handle string arrays.
14691
14692         (dbus_message_set_sender):
14693         Make this function public since the bus daemon needs it.
14694
14695         (decode_header_data):
14696         Set the reply serial to -1 initially.
14697
14698         * dbus/dbus-message.h:
14699         Add dbus_message_set_sender.
14700
14701 2003-01-24  Havoc Pennington  <hp@pobox.com>
14702
14703         * doc/dbus-specification.sgml: add some stuff
14704
14705 2003-01-22  Havoc Pennington  <hp@pobox.com>
14706
14707         * doc/dbus-specification.sgml: Start to document the protocol.
14708
14709 2003-01-22  Havoc Pennington  <hp@pobox.com>
14710
14711         * dbus/dbus-connection.c
14712         (dbus_connection_send_message_with_reply_and_block): add some @todo
14713
14714         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14715
14716 2003-01-21  Havoc Pennington  <hp@pobox.com>
14717
14718         (patch untested because can't compile)
14719
14720         * bus/driver.c (create_unique_client_name): make this function
14721         never recycle client names. Also, caller should initialize
14722         the DBusString.
14723
14724         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14725
14726 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14727
14728         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14729         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14730         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14731         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14732         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14733         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14734         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14735         * dbus/dbus-marshal.h:
14736         * dbus/dbus-protocol.h:
14737         Add support for marshalling and demarshalling integer, double
14738         and string arrays.
14739
14740 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14741
14742         * bus/Makefile.am:
14743         Add driver.[ch]
14744
14745         * bus/connection.c: (connection_disconnect_handler):
14746         Remove the connection from the bus driver's list.
14747
14748         (connection_watch_callback): Dispatch messages.
14749
14750         (free_connection_data): Free connection name.
14751
14752         (bus_connection_setup): Add connection to the bus driver's list.
14753         (bus_connection_remove_owned_service):
14754         (bus_connection_set_name), (bus_connection_get_name):
14755         Add functions for setting and getting the connection's name.
14756
14757         * bus/connection.h:
14758         Add function headers.
14759
14760         * bus/driver.c: (create_unique_client_name),
14761         (bus_driver_handle_hello_message),
14762         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14763         (bus_driver_add_connection), (bus_driver_remove_connection):
14764         * bus/driver.h:
14765         * bus/main.c:
14766         * bus/services.c: (bus_service_free):
14767         * bus/services.h:
14768         New file that handles communication and registreation with the bus
14769         itself.
14770
14771 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14772
14773         * dbus/dbus-connection.c: (dbus_connection_send_message):
14774         Add a new client_serial parameter.
14775
14776         (dbus_connection_send_message_with_reply):
14777         Remove a @todo since we've implemented the blocking function.
14778
14779         (dbus_connection_send_message_with_reply_and_block):
14780         New function that sends a message and waits for a reply and
14781         then returns the reply.
14782
14783         * dbus/dbus-connection.h:
14784         Add new functions.
14785
14786         * dbus/dbus-errors.c: (dbus_result_to_string):
14787         * dbus/dbus-errors.h:
14788         Add new DBUS_RESULT.
14789
14790         * dbus/dbus-message-internal.h:
14791         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14792         (_dbus_message_set_sender), (dbus_message_write_header),
14793         (dbus_message_new_reply), (decode_header_data),
14794         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14795         * dbus/dbus-message.h:
14796         Add new functions that set the reply serial and sender.
14797         Also marshal and demarshal them correctly and add test.
14798
14799         * dbus/dbus-protocol.h:
14800         Add new DBUS_MESSAGE_TYPE_SENDER.
14801
14802         * glib/dbus-glib.h:
14803         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14804         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14805         (dbus_connection_hookup_with_g_main):
14806         * glib/test-dbus-glib.c: (main):
14807         Rewrite to use GIOChannel and remove the GSource crack.
14808
14809         * test/echo-client.c: (main):
14810         * test/watch.c: (check_messages):
14811         Update for changed APIs
14812
14813 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14814
14815         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14816
14817         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14818         Create a DBusTimeoutList.
14819         (dbus_connection_set_timeout_functions): Add new function to
14820         set timeout callbacks
14821
14822         * dbus/dbus-connection.h: Add public DBusTimeout API.
14823
14824         * dbus/dbus-message.c: (dbus_message_get_service):
14825         * dbus/dbus-message.h:  New function.
14826
14827         * dbus/dbus-server.c: Fix small doc typo.
14828
14829         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14830
14831 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14832
14833         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14834         of the string, just as long as specified.
14835
14836 2003-01-19  Havoc Pennington  <hp@pobox.com>
14837
14838         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14839         new function
14840
14841         * dbus/dbus-server.c (dbus_server_set_max_connections)
14842         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14843         keep track of current number of connections, and add API for
14844         setting a max (but haven't implemented enforcing the max yet)
14845
14846 2003-01-18  Havoc Pennington  <hp@pobox.com>
14847
14848         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14849         reading/writing if read_watch != NULL or write_watch != NULL.
14850
14851         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14852         the message loader code to actually load message->header and
14853         message->body into the newly-created message.
14854
14855         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14856         in OOM case
14857
14858         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14859         (dbus_connection_get_max_message_size)
14860         (dbus_connection_set_max_live_messages_size)
14861         (dbus_connection_get_max_live_messages_size): implement some
14862         resource limitation functions
14863
14864         * dbus/dbus-resources.c: new file implementing some of the
14865         resource limits stuff
14866
14867         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14868         missing docs, add @todo to handle OOM etc.
14869
14870         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14871         docs
14872
14873 2003-01-18  Havoc Pennington  <hp@pobox.com>
14874
14875         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14876         connection if it hasn't been already.
14877
14878         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14879         replace with DisconnectFunction.
14880
14881 2003-01-18  Havoc Pennington  <hp@pobox.com>
14882
14883         Building --disable-verbose-mode --disable-asserts --disable-tests
14884         cuts the library from 112K to 45K or so
14885
14886         * configure.in: check for varargs macro support,
14887         add --enable-verbose-mode, --enable-asserts.
14888
14889         * dbus/dbus-internals.h (_dbus_assert): support
14890         DBUS_DISABLE_ASSERT
14891         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14892
14893 2003-01-18  Havoc Pennington  <hp@pobox.com>
14894
14895         * dbus/dbus-test.c: include config.h so that tests actually run
14896
14897         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14898         so the failure mode when that assumption fails will be plenty
14899         obvious.
14900
14901 2003-01-18  Havoc Pennington  <hp@pobox.com>
14902
14903         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14904
14905         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14906         the distribution
14907
14908         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14909         since we don't want to use those in make check
14910
14911 2003-01-15  Havoc Pennington  <hp@redhat.com>
14912
14913         Release 0.2
14914
14915         * NEWS: update
14916
14917 2003-01-15  Havoc Pennington  <hp@redhat.com>
14918
14919         * test/Makefile.am: fix so that test source code ends up in the
14920         distribution on make distcheck
14921
14922 2003-01-15  Havoc Pennington  <hp@redhat.com>
14923
14924         Release 0.1.
14925
14926         * NEWS: update
14927
14928 2003-01-15  Havoc Pennington  <hp@redhat.com>
14929
14930         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14931         fix build when --disable-tests
14932
14933         * Makefile.am (EXTRA_DIST): put HACKING in here
14934
14935         * HACKING: document procedure for making a tarball release.
14936
14937 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14938
14939         * bus/connection.c: (connection_error_handler),
14940         (bus_connection_setup):
14941         * bus/main.c: (main):
14942         Make sure that the DBusConnectionData struct is NULLed
14943         out to prevent a segfault.
14944
14945         * dbus/dbus-errors.c: (dbus_result_to_string):
14946         * dbus/dbus-errors.h:
14947         * dbus/dbus-message.c: (dbus_message_get_fields),
14948         (dbus_message_get_fields_valist), (_dbus_message_test):
14949         * dbus/dbus-message.h:
14950         Make dbus_message_get_fields return a result code so we can
14951         track invalid fields as well as oom.
14952
14953 2003-01-11  Havoc Pennington  <hp@pobox.com>
14954
14955         * configure.in: change --enable-test/--enable-ansi action-if-given
14956         to enable_foo=$enableval instead of enable_foo=yes
14957
14958 2003-01-08  Havoc Pennington  <hp@pobox.com>
14959
14960         * dbus/dbus-string.c (_dbus_string_align_length): new function
14961
14962         * dbus/dbus-test-main.c: move main() for test app here
14963         * dbus/dbus-test.c
14964         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14965         symbol to run tests, because dbus-test isn't in the main
14966         library
14967
14968         Code review nitpicks.
14969
14970         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14971         for people with narrow emacs ;-). Assert client_serial was filled
14972         in. Assert message->name != NULL.
14973         (dbus_message_append_fields): have "first_field_type" arg separate
14974         from va list, needed for C++ binding that also uses varargs IIRC
14975         and helps with type safety
14976         (dbus_message_new): add @todo about using DBusString to store
14977         service/name internally
14978         (dbus_message_new): don't leak ->service and ->name on OOM later
14979         in the function
14980         (dbus_message_unref): free the service name
14981         (dbus_message_get_fields): same change to varargs
14982         i.e. first_field_type
14983         (_dbus_message_loader_return_buffer): assert that the message data
14984         is aligned (if not it's a bug in our code). Put in verbose griping
14985         about why we set corrupted = TRUE.
14986         (decode_header_data): add FIXME that char* is evil.  Was going to
14987         add FIXME about evil locale-specific string.h strncmp, but just
14988         switched to wacky string-as-uint32 optimization. Move check for
14989         "no room for field name" above get_const_data_len() to avoid
14990         assertion failure in get_const_data_len if we have trailing 2
14991         bytes or the like. Check for service and name fields being
14992         provided twice. Don't leak service/name on error. Require field
14993         names to be aligned to 4 bytes.
14994
14995         * dbus/dbus-marshal.c: move byte swap stuff to header
14996         (_dbus_pack_int32): uscore-prefix
14997         (_dbus_unpack_int32): uscore-prefix
14998         (_dbus_unpack_uint32): export
14999         (_dbus_demarshal_string): add @todo complaining about use of
15000         memcpy()
15001         (_dbus_marshal_get_field_end_pos): add @todo about bad error
15002         handling allowing corrupt data to go unchecked
15003
15004 2003-01-08  Havoc Pennington  <hp@redhat.com>
15005
15006         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
15007         to the select() as needed for authentication. (should be using
15008         _dbus_poll() not select, but for another day)
15009
15010         * dbus/dbus.h: include dbus/dbus-protocol.h
15011
15012 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
15013
15014         * dbus/Makefile.am (dbusinclude_HEADERS): Install
15015         dbus-connection.h
15016
15017 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
15018
15019         * dbus/dbus-internals.c: (_dbus_type_to_string):
15020         New function that returns a string describing a type.
15021
15022         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
15023         * dbus/dbus-marshal.h:
15024         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
15025         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
15026         (dbus_message_iter_get_byte_array):
15027         * dbus/dbus-message.h:
15028         Add new convenience functions for appending and getting message fields.
15029         Also add demarshalling routines for byte arrays.
15030
15031 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15032
15033         * dbus/dbus-connection-internal.h:
15034         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
15035         (_dbus_connection_get_next_client_serial),
15036         (dbus_connection_send_message):
15037         * dbus/dbus-internals.h:
15038         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
15039         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
15040         (_dbus_marshal_uint32), (_dbus_demarshal_double),
15041         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
15042         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
15043         (_dbus_verbose_bytes), (_dbus_marshal_test):
15044         * dbus/dbus-marshal.h:
15045         * dbus/dbus-message-internal.h:
15046         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
15047         (dbus_message_write_header), (_dbus_message_lock),
15048         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
15049         (dbus_message_get_name), (dbus_message_append_int32),
15050         (dbus_message_append_uint32), (dbus_message_append_double),
15051         (dbus_message_append_string), (dbus_message_append_byte_array),
15052         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
15053         (dbus_message_iter_unref), (dbus_message_iter_has_next),
15054         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
15055         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
15056         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
15057         (decode_header_data), (_dbus_message_loader_return_buffer),
15058         (message_iter_test), (_dbus_message_test):
15059         * dbus/dbus-message.h:
15060         * dbus/dbus-protocol.h:
15061         * dbus/dbus-test.c: (main):
15062         * dbus/dbus-test.h:
15063         * glib/test-dbus-glib.c: (message_handler), (main):
15064         * test/echo-client.c: (main):
15065         * test/watch.c: (check_messages):
15066         Make messages sendable and receivable for real.
15067
15068 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15069
15070         * dbus/dbus-marshal.c: (_dbus_marshal_double),
15071         (_dbus_marshal_string), (_dbus_marshal_byte_array):
15072         * dbus/dbus-message.c: (dbus_message_append_int32),
15073         (dbus_message_append_uint32), (dbus_message_append_double),
15074         (dbus_message_append_string), (dbus_message_append_byte_array):
15075         Handle OOM restoration.
15076
15077 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
15078
15079         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15080         (_dbus_demarshal_string), (_dbus_marshal_test):
15081         * dbus/dbus-marshal.h:
15082         * dbus/dbus-message.c: (dbus_message_get_name),
15083         Document these functions.
15084
15085         (dbus_message_append_int32), (dbus_message_append_uint32),
15086         (dbus_message_append_double), (dbus_message_append_string),
15087         (dbus_message_append_byte_array):
15088         * dbus/dbus-message.h:
15089         Add functions for adding message fields of different types.
15090
15091         * dbus/dbus-protocol.h:
15092         Add the different types.
15093
15094 2003-01-05  Havoc Pennington  <hp@pobox.com>
15095
15096         * bus/connection.c: implement routines for handling connections,
15097         first thing is keeping a list of owned services on each connection
15098         and setting up watches etc.
15099
15100         * bus/services.c: implement a mapping from service names to lists
15101         of connections
15102
15103         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
15104
15105         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
15106         to use static mutexes for global data
15107
15108         * dbus/dbus-connection.c (dbus_connection_set_data): add new
15109         collection of functions to set/get application-specific data
15110         on the DBusConnection.
15111
15112 2003-01-04  Havoc Pennington  <hp@pobox.com>
15113
15114         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
15115         (_dbus_poll): new function
15116
15117         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
15118         copied from GLib
15119
15120         * bus/loop.c: initial code for the daemon main loop
15121
15122 2003-01-04  Havoc Pennington  <hp@pobox.com>
15123
15124         * test/watch.c (error_handler): make it safe if the error handler
15125         is called multiple times (if we s/error handler/disconnect
15126         handler/ we should just guarantee it's called only once)
15127
15128         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
15129         error handler on disconnect (it's quite possible we should
15130         just change the error handler to a "disconnect handler," I'm
15131         not sure we have any other meaningful errors)
15132
15133         * configure.in: check for getpwnam_r
15134
15135         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
15136         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
15137         mechanism as in SASL spec, using socket credentials
15138
15139         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
15140         (_dbus_send_credentials_unix_socket): new function
15141
15142         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
15143         dbus_accept()
15144         (_dbus_write): only check errno if <0 returned
15145         (_dbus_write_two): ditto
15146
15147 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
15148
15149         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
15150         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
15151         (_dbus_marshal_test):
15152         * dbus/dbus-marshal.h:
15153         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
15154         to _dbus_marshal_utf8_string. Also fix some tests.
15155
15156 2002-12-28  Harri Porten  <porten@kde.org>
15157
15158         * configure.in: added check for C++ compiler and a very cheesy
15159         check for the Qt integration
15160
15161         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
15162
15163         * qt/Makefile.am: added
15164
15165         * qt/.cvsignore: added
15166
15167         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
15168         latter, added #ifdef QT_THREAD_SUPPORT guard.
15169
15170         * dbus/Makefile.am: added missing headers for make dist
15171
15172 2002-12-28  Kristian Rietveld  <kris@gtk.org>
15173
15174         * dbus/Makefile.am: fixup export-symbols-regex.
15175
15176 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15177
15178         * acinclude.m4: Add this file and put the
15179         PKG_CHECK_MODULE macro in it.
15180
15181 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
15182
15183         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15184         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15185         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15186         (_dbus_marshal_test):
15187         Make the demarshalling routines align the pos argument.
15188         Add string marshalling tests and fix the obvious bugs
15189         discovered.
15190
15191 2002-12-26  Havoc Pennington  <hp@pobox.com>
15192
15193         * dbus/dbus-auth.c: fixes fixes fixes
15194
15195         * dbus/dbus-transport-unix.c: wire up support for
15196         encoding/decoding data on the wire
15197
15198         * dbus/dbus-auth.c (_dbus_auth_encode_data)
15199         (_dbus_auth_decode_data): append to target string
15200         instead of nuking it.
15201
15202 2002-12-26  Havoc Pennington  <hp@pobox.com>
15203
15204         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
15205         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
15206         doh
15207
15208         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
15209         avoid swap_bytes() overhead (ignoring possible assembly stuff for
15210         now). Main point is because I wanted unpack_uint32 to implement
15211         _dbus_verbose_bytes
15212         (_dbus_verbose_bytes): new function
15213
15214         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
15215
15216         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
15217         mechanism to handle a corrupt message stream
15218         (_dbus_message_loader_new): fix preallocation to only prealloc,
15219         not prelengthen
15220
15221         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
15222         (_dbus_string_test): enhance tests for copy/move and fix the
15223         functions
15224
15225         * dbus/dbus-transport-unix.c: Hold references in more places to
15226         avoid reentrancy problems
15227
15228         * dbus/dbus-transport.c: ditto
15229
15230         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
15231         leak reference count in no-message case
15232
15233         * test/watch.c (do_mainloop): handle adding/removing watches
15234         during iteration over the watches. Also, ref the connection/server
15235         stored on a watch, so we don't try to mangle a destroyed one.
15236
15237         * dbus/dbus-transport-unix.c (do_authentication): perform
15238         authentication
15239
15240         * dbus/dbus-auth.c (get_state): add a state
15241         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
15242         (_dbus_auth_get_unused_bytes): append the unused bytes
15243         to the passed in string, rather than prepend
15244
15245         * dbus/dbus-transport.c (_dbus_transport_init_base): create
15246         the auth conversation DBusAuth
15247
15248         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
15249         (_dbus_transport_new_for_domain_socket): when creating a
15250         transport, pass in whether it's a client-side or server-side
15251         transport so we know which DBusAuth to create
15252
15253 2002-12-03  Havoc Pennington  <hp@pobox.com>
15254
15255         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15256         _after_ finalizing the derived members
15257         (unix_connection_set): unref watch if we fail to add it
15258
15259         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15260         transport first, so that the connection owned by the
15261         transport will be valid as the transport finalizes.
15262
15263         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15264         if necessary, and remove watches from the connection.
15265
15266         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15267
15268 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15269
15270         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15271         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15272         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15273         (_dbus_marshal_test):
15274         * dbus/dbus-marshal.h:
15275         Add string marshal functions and have the demarshal functions
15276         return the new position.
15277
15278 2002-12-25  Havoc Pennington  <hp@pobox.com>
15279
15280         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15281         it is a simple protocol that just maps directly to SASL.
15282
15283         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15284         initial implementation, not actually used yet.
15285
15286         * dbus/dbus-string.c (_dbus_string_find): new function
15287         (_dbus_string_equal): new function
15288         (_dbus_string_base64_encode): new function
15289         (_dbus_string_base64_decode): new function
15290
15291 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15292
15293         * dbus/Makefile.am:
15294         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15295         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15296         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15297         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15298         * dbus/dbus-marshal.h:
15299         * dbus/dbus-protocol.h:
15300         * dbus/dbus-test.c: (main):
15301         * dbus/dbus-test.h:
15302         Add un-optimized marshalling/demarshalling routines.
15303
15304 2002-12-25  Harri Porten  <porten@kde.org>
15305
15306         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15307
15308 2002-12-24  Zack Rusin  <zack@kde.org>
15309
15310         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15311         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15312         main loop stuff
15313
15314 2002-12-24  Havoc Pennington  <hp@pobox.com>
15315
15316         * glib/dbus-gthread.c: fix include
15317
15318         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15319         I think glib API needs to change, though, as you don't
15320         want to use DBusMessageFunction, you want to use the
15321         DBusMessageHandler object. Probably
15322         dbus_connection_open_with_g_main_loop()
15323         and dbus_connection_setup_g_main_loop() or something like that
15324         (but think of better names...) that just create a connection
15325         that has watch/timeout functions etc. already set up.
15326
15327         * dbus/dbus-connection.c
15328         (dbus_connection_send_message_with_reply): new function just to
15329         show how the message handler helps us deal with replies.
15330
15331         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15332
15333         * dbus/dbus-string.c (_dbus_string_test): free a string that
15334         wasn't
15335
15336         * dbus/dbus-hash.c: use memory pools for the hash entries
15337         (rebuild_table): be more paranoid about overflow, and
15338         shrink table when we can
15339         (_dbus_hash_test): reduce number of sprintfs and write
15340         valid C89. Add tests for case where we grow and then
15341         shrink the hash table.
15342
15343         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15344
15345         * dbus/dbus-connection.c (dbus_connection_register_handler)
15346         (dbus_connection_unregister_handler): new functions
15347
15348         * dbus/dbus-message.c (dbus_message_get_name): new
15349
15350         * dbus/dbus-list.c: fix docs typo
15351
15352         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15353         an object representing a handler for messages.
15354
15355 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15356
15357         * glib/dbus-glib.h:
15358         * glib/dbus-gthread.c: (dbus_gthread_init):
15359         Don't use the gdbus prefix for public functions.
15360
15361 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15362
15363         * Makefile.am:
15364         * configure.in:
15365         Add GLib checks and fixup .pc files
15366
15367         * glib/Makefile.am:
15368         * glib/dbus-glib.h:
15369         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15370         (gdbus_connection_check), (gdbus_connection_dispatch),
15371         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15372         (dbus_connection_gsource_new):
15373         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15374         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15375         * glib/test-dbus-glib.c: (message_handler), (main):
15376         Add GLib support.
15377
15378 2002-12-15  Harri Porten  <porten@kde.org>
15379
15380         * autogen.sh: check for libtoolize before attempting to use it
15381
15382         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15383         struct.
15384
15385         * .cvsignore: ignore more stamp files
15386
15387         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15388
15389         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15390         without make install.
15391
15392 2002-12-15  Havoc Pennington  <hp@pobox.com>
15393
15394         * dbus/dbus-threads.c: add thread stubs that a higher library
15395         layer can fill in. e.g. the GLib wrapper might fill them in with
15396         GThread stuff. We still need to use this thread API to
15397         thread-safe-ize the library.
15398
15399 2002-12-12  Havoc Pennington  <hp@pobox.com>
15400
15401         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15402         below new interfaces and include fewer system headers.
15403
15404         * dbus/dbus-sysdeps.c (_dbus_read): new function
15405         (_dbus_write): new function
15406         (_dbus_write_two): new function
15407         (_dbus_connect_unix_socket): new function
15408         (_dbus_listen_unix_socket): new function
15409
15410         * dbus/dbus-message-internal.h: change interfaces to use
15411         DBusString
15412
15413 2002-12-11  Havoc Pennington  <hp@pobox.com>
15414
15415         * dbus/dbus-types.h: add dbus_unichar
15416
15417         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15418
15419         * dbus/dbus-connection.c (dbus_connection_send_message): return
15420         TRUE on success
15421
15422         * dbus/dbus-transport.c: include dbus-watch.h
15423
15424         * dbus/dbus-connection.c: include dbus-message-internal.h
15425
15426         * HACKING: add file with coding guidelines stuff.
15427
15428         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15429         handling here, for security purposes (as in vsftpd). Not actually
15430         using this class yet.
15431
15432         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15433         system/libc usage here, as in vsftpd, for ease of auditing (and
15434         should also simplify portability). Haven't actually moved all the
15435         system/libc usage into here yet.
15436
15437 2002-11-25  Havoc Pennington  <hp@pobox.com>
15438
15439         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15440         always print the first verbose message.
15441
15442 2002-11-24  Havoc Pennington  <hp@pobox.com>
15443
15444         * test/echo-client.c, test/echo-server.c: cheesy test
15445         clients.
15446
15447         * configure.in (AC_CHECK_FUNCS): check for writev
15448
15449         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15450         function
15451
15452         * dbus/dbus-list.c (_dbus_list_foreach): new function
15453
15454         * dbus/dbus-internals.c (_dbus_verbose): new function
15455
15456         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15457         representing a server that listens for connections.
15458
15459         * dbus/.cvsignore: create
15460
15461         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15462         public API for reporting errors
15463
15464         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15465         public object representing a connection that
15466         sends/receives messages. (Same object used for
15467         both client and server.)
15468
15469         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15470         Basic abstraction for different kinds of stream
15471         that we might read/write messages from.
15472
15473 2002-11-23  Havoc Pennington  <hp@pobox.com>
15474
15475         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15476         _DBUS_INT_MAX
15477
15478         * dbus/dbus-test.c (main): add list test, and include
15479         dbus-test.h as intended
15480
15481         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15482         (_dbus_hash_table_remove_int): return value indicates
15483         whether the entry existed to remove
15484
15485         * dbus/dbus-list.c: add linked list utility class,
15486         with docs and tests
15487
15488         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15489         array sometimes.
15490
15491 2002-11-23  Havoc Pennington  <hp@pobox.com>
15492
15493         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15494         DBUS_END_DECLS to nothing, that should fix this once and for all
15495
15496         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15497
15498         * dbus/dbus-message.c, dbus/dbus-hash.c:
15499         add some missing @brief
15500
15501 2002-11-23  Havoc Pennington  <hp@pobox.com>
15502
15503         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15504         to avoid confusing Doxygen
15505
15506         * dbus/dbus-hash.c: @} not }@
15507
15508         * dbus/dbus-message.c (struct DBusMessage): split out
15509         internals docs
15510
15511 2002-11-23  Havoc Pennington  <hp@pobox.com>
15512
15513         * configure.in: pile on more warning flags if using gcc
15514
15515         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15516         to document static functions
15517
15518         * configure.in: add summary to end of configure so it
15519         looks nice and attractive
15520
15521         * dbus/dbus-hash.c: finish implementation and write unit
15522         tests and docs
15523
15524         * configure.in: add --enable-tests to enable unit tests
15525
15526         * dbus/dbus-test.c: test program to run unit tests
15527         for all files in dbus/*, initially runs a test for
15528         dbus-hash.c
15529
15530         * dbus/dbus-internals.h: file to hold some internal utility stuff
15531
15532 2002-11-22  Havoc Pennington  <hp@redhat.com>
15533
15534         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15535         "ported" away from Tcl
15536
15537         * dbus/dbus-types.h: header for types such as dbus_bool_t
15538
15539 2002-11-22  Havoc Pennington  <hp@redhat.com>
15540
15541         * dbus/dbus.h: fixups for doc warnings
15542
15543         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15544         macros
15545         (QUIET): make it quiet so we can see warnings
15546
15547         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15548
15549 2002-11-22  Havoc Pennington  <hp@redhat.com>
15550
15551         * Makefile.am: include "Doxyfile" target in all-local
15552
15553         * configure.in: generate the Doxyfile
15554
15555         * Doxyfile.in: move Doxyfile here, so we can use
15556         configure to generate a Doxyfile with the right
15557         version number etc.
15558
15559 2002-11-22  Havoc Pennington  <hp@redhat.com>
15560
15561         * dbus/dbus-message.c: move inline docs into .c file
15562
15563         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15564         so all docs are under doc/
15565         (MAN_EXTENSION): generate man pages. Use extension
15566         ".3dbus" which matches ".3qt" on my system,
15567         I guess this is OK, I don't know really.
15568         (FILE_PATTERNS): look for .c files not .h, makes sense
15569         for plain C I think
15570
15571 2002-11-22  Havoc Pennington  <hp@pobox.com>
15572
15573         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15574         because any app can be a server, and any app can be a client,
15575         the bus is a special kind of server.
15576
15577 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15578
15579         * Doxyfile : adding. Still needs Makefile rules to be generated
15580         automatically (just run "doxygen" in the toplevel dir for now to
15581         generate docs)
15582
15583         * dbus/dbus-message.h : Adding sample docs (javadoc since
15584         resembles gtk-doc a little more)
15585
15586         * dbus/dbus.h : Adding sample docs
15587
15588 2002-11-21  Havoc Pennington  <hp@redhat.com>
15589
15590         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15591         so we can allow ourselves to include files directly,
15592         instead of having to use dbus.h
15593
15594         * dbus/dbus.h: fill in
15595
15596         * dbus/dbus-message.h: sketch out a sample header file.
15597         Include griping if you include it directly instead of
15598         via dbus.h
15599
15600         * dbus/dbus-macros.h: new file with macros for extern "C",
15601         TRUE/FALSE, NULL, etc.
15602
15603         * doc/file-boilerplate.c: put include guards in here
15604
15605 2002-11-21  Havoc Pennington  <hp@redhat.com>
15606
15607         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15608
15609         * COPYING: include the GPL as well, and license code
15610         under both AFL and GPL.
15611
15612 2002-11-21  Havoc Pennington  <hp@redhat.com>
15613
15614         * acconfig.h: get rid of this
15615
15616         * autogen.sh (run_configure): add --no-configure option
15617
15618         * configure.in: remove AC_ARG_PROGRAM to make
15619         autoconf complain less. add AC_PREREQ.
15620         add AC_DEFINE third arg.
15621
15622 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15623
15624         * doc/Makefile.am:
15625         Fix references so we can distcheck.
15626
15627 2002-11-21  Havoc Pennington  <hp@redhat.com>
15628
15629         * Initial module creation
15630